]> gcc.gnu.org Git - gcc.git/blame - gcc/common.opt
Take insn scratch RA requirements into account in IRA.
[gcc.git] / gcc / common.opt
CommitLineData
d7b42618 1; Options for the language- and target-independent parts of the compiler.
50431bc4 2
8d9254fc 3; Copyright (C) 2003-2020 Free Software Foundation, Inc.
d7b42618
NB
4;
5; This file is part of GCC.
6;
7; GCC is free software; you can redistribute it and/or modify it under
8; the terms of the GNU General Public License as published by the Free
9dcd6f09 9; Software Foundation; either version 3, or (at your option) any later
d7b42618 10; version.
c22cacf3 11;
d7b42618
NB
12; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15; for more details.
c22cacf3 16;
d7b42618 17; You should have received a copy of the GNU General Public License
9dcd6f09
NC
18; along with GCC; see the file COPYING3. If not see
19; <http://www.gnu.org/licenses/>.
d7b42618 20
71733172 21; See the GCC internals manual (options.texi) for a description of this file's format.
d7b42618
NB
22
23; Please try to keep this file in ASCII collating order.
24
e90afde6
JM
25Variable
26int target_flags
27
46625112
JM
28Variable
29int optimize
30
31Variable
32int optimize_size
33
bf7a7185
RG
34Variable
35int optimize_debug
36
0a8134ca
JM
37; Not used directly to control optimizations, only to save -Ofast
38; setting for "optimize" attributes.
39Variable
40int optimize_fast
41
a7d0d30f
JM
42; True if this is the lto front end. This is used to disable gimple
43; generation and lowering passes that are normally run on the output
44; of a front end. These passes must be bypassed for lto since they
45; have already been done before the gimple was written.
46Variable
47bool in_lto_p = false
48
1ff9ed6f 49; This variable is set to non-0 only by LTO front-end. 1 indicates that
46a27415 50; the output produced will be used for incremental linking (thus weak symbols
5b42d196
JH
51; can still be bound) and 2 indicates that the IL is going to be linked and
52; and output to LTO object file.
1ff9ed6f 53Variable
5b42d196 54enum incremental_link flag_incremental_link = INCREMENTAL_LINK_NONE
1ff9ed6f 55
a75bfaa6
JM
56; 0 means straightforward implementation of complex divide acceptable.
57; 1 means wide ranges of inputs must work for complex divide.
58; 2 means C99-like requirements for complex multiply and divide.
59Variable
60int flag_complex_method = 1
61
a75bfaa6
JM
62; Language specific warning pass for unused results.
63Variable
64bool flag_warn_unused_result = false
65
d5478783
JM
66; Nonzero if we should write GIMPLE bytecode for link-time optimization.
67Variable
68int flag_generate_lto
69
f0d78df9
IV
70; Nonzero if we should write GIMPLE bytecode for offload compilation.
71Variable
72int flag_generate_offload = 0
73
d5478783
JM
74; Nonzero means we should be saving declaration info into a .X file.
75Variable
76int flag_gen_aux_info = 0
77
78; Nonzero if we are compiling code for a shared library, zero for
79; executable.
80Variable
81int flag_shlib
82
6a1f6c9c
JM
83; These two are really VEC(char_p,heap) *.
84
85Variable
86void *flag_instrument_functions_exclude_functions
87
88Variable
89void *flag_instrument_functions_exclude_files
90
69ccdddb
JM
91; Generic structs (e.g. templates not explicitly specialized)
92; may not have a compilation unit associated with them, and so
93; may need to be treated differently from ordinary structs.
94;
95; Structs only handled by reference (indirectly), will also usually
96; not need as much debugging information.
97
98Variable
99enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
100
101Variable
102enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
103
0576d21f
JM
104; True if we should exit after parsing options.
105Variable
106bool exit_after_options
107
108; Type(s) of debugging information we are producing (if any). See
109; flag-types.h for the definitions of the different possible types of
110; debugging information.
111Variable
112enum debug_info_type write_symbols = NO_DEBUG
113
114; Level of debugging information we are producing. See flag-types.h
115; for the definitions of the different possible levels.
116Variable
117enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
118
119; Nonzero means use GNU-only extensions in the generated symbolic
120; debugging information. Currently, this only has an effect when
d7d5f241 121; write_symbols is set to DBX_DEBUG or XCOFF_DEBUG.
0576d21f
JM
122Variable
123bool use_gnu_debug_info_extensions
124
299404a1
JM
125; Original value of maximum field alignment in bytes, specified via
126; -fpack-struct=<value>.
127Variable
128unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
129
5e471ea6
JM
130; Type of stack check.
131Variable
132enum stack_check_type flag_stack_check = NO_STACK_CHECK
133
a11e0df4
EB
134; True if stack usage information needs to be computed.
135Variable
136bool flag_stack_usage_info = false
137
299404a1
JM
138; -dA causes debug commentary information to be produced in
139; the generated assembly code (to make it more readable). This option
140; is generally only of use to those who actually need to read the
141; generated assembly code (perhaps while debugging the compiler itself).
142; Currently, this switch is only used by dwarf2out.c; however, it is intended
143; to be a catchall for printing debug information in the assembler file.
144Variable
145int flag_debug_asm
146
417ca011
TD
147; How many NOP insns to place at each function entry by default
148Variable
149HOST_WIDE_INT function_entry_patch_area_size
150
151; And how far the real asm entry point is into this area
152Variable
153HOST_WIDE_INT function_entry_patch_area_start
6592d14b
PMR
154
155; Balance between GNAT encodings and standard DWARF to emit.
156Variable
157enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT
158
299404a1
JM
159; -dP causes the rtl to be emitted as a comment in assembly.
160Variable
161int flag_dump_rtl_in_asm
162
163; Whether -da was passed (used only in handle_common_deferred_options).
164Variable
165bool flag_dump_all_passed
166
167; Other flags saying which kinds of debugging dump have been requested.
168
169Variable
170int rtl_dump_and_exit
171
172Variable
173int flag_print_asm_name
174
a803773f
JM
175; Name of top-level original source file (what was input to cpp).
176; This comes from the #-command at the beginning of the actual input.
177; If there isn't any there, then this is the cc1 input file name.
178Variable
179const char *main_input_filename
180
181; Pointer to base name in main_input_filename, with directories and a
182; single final extension removed, and the length of this base
183; name.
184
185Variable
186const char *main_input_basename
187
188Variable
189int main_input_baselength
190
1dedc12d
AO
191; The base name used for auxiliary output files.
192; dump_base_name minus dump_base_ext.
193
194Variable
195const char *aux_base_name
196
299404a1
JM
197; Which options have been printed by --help.
198Variable
199char *help_printed
200
e6d4b984
JM
201; Which enums have been printed by --help. 0 = not printed, no
202; relevant options seen, 1 = relevant option seen, not yet printed, 2
203; = printed.
204Variable
205char *help_enum_printed
206
299404a1
JM
207; The number of columns for --help output.
208Variable
209unsigned int help_columns
210
211; Whether this options structure has been through finish_options
212Variable
213bool flag_opts_finished
214
de5a5fa1
MP
215; What the sanitizer should instrument
216Variable
217unsigned int flag_sanitize
218
d95a2703
JJ
219; What sanitizers should recover from errors
220Variable
45b2222a 221unsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN)
d95a2703 222
f6e50a7d
WW
223; What the coverage sanitizers should instrument
224Variable
225unsigned int flag_sanitize_coverage
95e7bbb8 226
91035653
JJ
227; Flag whether a prefix has been added to dump_base_name
228Variable
229bool dump_base_name_prefixed = false
230
603349bf
JM
231###
232Driver
233
e200444e
JM
234-assemble
235Driver Alias(S)
236
237-compile
238Driver Alias(c)
239
d86c7648
ML
240-completion=
241Common Driver Joined Undocumented
242Provide bash completion for options starting with provided string.
243
e200444e
JM
244-coverage
245Driver Alias(coverage)
246
247-debug
248Common Alias(g)
249
250-dump
251Common Separate Alias(d)
252
253-dump=
254Common Joined Alias(d)
255
256-dumpbase
1dedc12d
AO
257Driver Common Separate Alias(dumpbase)
258
259-dumpbase-ext
260Driver Common Separate Alias(dumpbase-ext)
e200444e
JM
261
262-dumpdir
1dedc12d 263Driver Common Separate Alias(dumpdir)
e200444e
JM
264
265-entry
266Driver Separate Alias(e)
267
268-entry=
269Driver Joined Alias(e)
270
271-extra-warnings
272Common Warning Alias(Wextra)
273
274-for-assembler
275Driver Separate Alias(Xassembler)
276
277-for-assembler=
278Driver JoinedOrMissing Alias(Xassembler)
279
280-for-linker
281Driver Separate Alias(Xlinker)
282
283-for-linker=
284Driver JoinedOrMissing Alias(Xlinker)
285
286-force-link
287Driver Separate Alias(u)
288
289-force-link=
290Driver Joined Alias(u)
291
d185d268 292-help
e200444e 293Common Driver Var(help_flag)
a7b2e184 294Display this information.
d185d268 295
c662432e 296-help=
603349bf 297Common Driver Report Joined
a7b2e184 298--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params.
903caebf 299
e200444e
JM
300-language
301Driver Separate Alias(x)
302
303-language=
304Driver Joined Alias(x)
305
306-library-directory
307Driver Separate Alias(L)
308
309-library-directory=
310Driver Joined Alias(L)
311
312-no-canonical-prefixes
313Driver Alias(no-canonical-prefixes)
314
315-no-standard-libraries
316Driver Alias(nostdlib)
317
28b4fc51
JM
318-no-sysroot-suffix
319Driver Var(no_sysroot_suffix)
320
e200444e
JM
321-no-warnings
322Common Alias(w)
323
324-optimize
325Common Alias(O)
326
327-output
328Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
329
330-output=
331Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
332
333-pass-exit-codes
334Driver Alias(pass-exit-codes)
335
336-pedantic
c1771a20 337Common Alias(Wpedantic)
e200444e
JM
338
339-pedantic-errors
340Common Alias(pedantic-errors)
341
342-pie
5460e1fc 343Driver Alias(pie)
e200444e 344
b4fed890
L
345-static-pie
346Driver Alias(static-pie)
347
e200444e
JM
348-pipe
349Driver Alias(pipe)
350
351-prefix
352Driver Separate Alias(B)
353
354-prefix=
355Driver JoinedOrMissing Alias(B)
356
357-preprocess
358Driver Alias(E)
359
360-print-file-name
361Driver Separate Alias(print-file-name=)
362
363-print-file-name=
364Driver JoinedOrMissing Alias(print-file-name=)
365
366-print-libgcc-file-name
367Driver Alias(print-libgcc-file-name)
368
369-print-multi-directory
370Driver Alias(print-multi-directory)
371
372-print-multi-lib
373Driver Alias(print-multi-lib)
374
375-print-multi-os-directory
376Driver Alias(print-multi-os-directory)
377
e0cdc09f
MK
378-print-multiarch
379Driver Alias(print-multiarch)
380
e200444e
JM
381-print-prog-name
382Driver Separate Alias(print-prog-name=)
383
384-print-prog-name=
385Driver JoinedOrMissing Alias(print-prog-name=)
386
387-print-search-dirs
388Driver Alias(print-search-dirs)
389
390-print-sysroot
391Driver Alias(print-sysroot)
392
393-print-sysroot-headers-suffix
394Driver Alias(print-sysroot-headers-suffix)
395
396-profile
397Common Alias(p)
398
399-save-temps
400Driver Alias(save-temps)
401
402-shared
5460e1fc 403Driver Alias(shared)
e200444e
JM
404
405-specs
406Driver Separate Alias(specs=)
407
408-specs=
409Driver Joined Alias(specs=)
410
411-static
412Driver Alias(static)
413
414-symbolic
415Driver Alias(symbolic)
416
d185d268 417-target-help
603349bf 418Common Driver
a7b2e184 419Alias for --help=target.
c662432e 420
e200444e
JM
421-time
422Driver Alias(time)
423
424-verbose
425Driver Alias(v)
426
427;; The driver used to convert options such as --help into forms such
428;; as -fhelp; the following four entries are for compatibility with
429;; any direct uses of those (undocumented) -f forms
c662432e 430fhelp
e200444e 431Common Driver Alias(-help)
c662432e
NC
432
433fhelp=
e200444e 434Common Driver Joined Alias(-help=)
c662432e
NC
435
436ftarget-help
e200444e 437Common Driver Alias(-target-help)
c662432e 438
41fd0f9b 439fversion
e200444e 440Common Driver Alias(-version)
41fd0f9b 441
e200444e
JM
442-sysroot
443Driver Separate Alias(-sysroot=)
444
603349bf
JM
445-sysroot=
446Driver JoinedOrMissing
447
d185d268 448-version
603349bf
JM
449Common Driver
450
451B
452Driver Joined Separate
453
454E
455Driver
d185d268 456
d9d16a19
JM
457L
458Driver Joined Separate
459
dd9f93dc
JM
460N
461Driver
462
903caebf 463O
ab442df7 464Common JoinedOrMissing Optimization
a7b2e184 465-O<number> Set optimization level to <number>.
903caebf
NB
466
467Os
ab442df7 468Common Optimization
a7b2e184 469Optimize for space rather than speed.
903caebf 470
be6d3f0e
RG
471Ofast
472Common Optimization
a7b2e184 473Optimize for speed disregarding exact standards compliance.
be6d3f0e 474
bf7a7185
RG
475Og
476Common Optimization
a7b2e184 477Optimize for debugging experience rather than speed or size.
bf7a7185 478
dd9f93dc
JM
479Q
480Driver
481
482Qn
483Driver Negative(Qy)
484
485Qy
486Driver Negative(Qn)
487
6d721f67
JM
488R
489Driver Joined Separate
490
603349bf
JM
491S
492Driver
493
6d721f67
JM
494T
495Driver Joined Separate
496
497Tbss
498Driver Separate
499
e69d7376
JM
500Tbss=
501Driver Joined
502
6d721f67
JM
503Tdata
504Driver Separate
505
e69d7376
JM
506Tdata=
507Driver Joined
508
6d721f67
JM
509Ttext
510Driver Separate
511
e69d7376
JM
512Ttext=
513Driver Joined
514
903caebf 515W
5de8299c 516Common RejectNegative Warning Alias(Wextra)
a7b2e184 517This switch is deprecated; use -Wextra instead.
903caebf 518
603349bf 519Wa,
9ed32e27 520Driver JoinedOrMissing RejectNegative
603349bf
JM
521
522Wl,
9ed32e27 523Driver JoinedOrMissing RejectNegative
603349bf
JM
524
525Wp,
9ed32e27 526Driver JoinedOrMissing RejectNegative
603349bf 527
e01cc6dc 528Waggregate-return
c662432e 529Common Var(warn_aggregate_return) Warning
a7b2e184 530Warn about returning structures, unions or arrays.
e01cc6dc 531
fbd28bc3
JJ
532Waggressive-loop-optimizations
533Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
a7b2e184 534Warn if a loop with constant number of iterations triggers undefined behavior.
fbd28bc3 535
590b1f2d 536Warray-bounds
21af5cdf 537Common Var(warn_array_bounds) Warning
a7b2e184 538Warn if an array is accessed out of bounds.
590b1f2d 539
de1b5c17 540Warray-bounds=
63010089 541Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2)
a7b2e184 542Warn if an array is accessed out of bounds.
de1b5c17 543
5c498b10 544Wattributes
c662432e 545Common Var(warn_attributes) Init(1) Warning
a7b2e184 546Warn about inappropriate attribute usage.
5c498b10 547
5ebfd62b
BE
548Wattribute-alias
549Common Alias(Wattribute_alias=, 1, 0) Warning
d3a02ae5 550Warn about type safety and similar errors and mismatches in declarations with alias attributes.
5ebfd62b 551
79a2c428
MS
552Wattribute-alias=
553Common Joined RejectNegative UInteger Var(warn_attribute_alias) Init(1) Warning IntegerRange(0, 2)
d3a02ae5 554Warn about type safety and similar errors and mismatches in declarations with alias attributes.
79a2c428 555
6902799c
IL
556Wcannot-profile
557Common Var(warn_cannot_profile) Init(1) Warning
558Warn when profiling instrumentation was requested, but could not be applied to
559a certain function.
560
e01cc6dc 561Wcast-align
c662432e 562Common Var(warn_cast_align) Warning
a7b2e184 563Warn about pointer casts which increase alignment.
e01cc6dc 564
1d933576
BE
565Wcast-align=strict
566Common Var(warn_cast_align,2) Warning
567Warn about pointer casts which increase alignment.
568
87cf0651
SB
569Wcpp
570Common Var(warn_cpp) Init(1) Warning
a7b2e184 571Warn when a #warning directive is encountered.
87cf0651 572
e217792b
NM
573Wattribute-warning
574Common Var(warn_attribute_warning) Init(1) Warning
575Warn about uses of __attribute__((warning)) declarations.
576
99063eee
RS
577Wdeprecated
578Common Var(warn_deprecated) Init(1) Warning
579Warn if a deprecated compiler feature, class, method, or field is used.
580
e01cc6dc 581Wdeprecated-declarations
c662432e 582Common Var(warn_deprecated_decl) Init(1) Warning
a7b2e184 583Warn about uses of __attribute__((deprecated)) declarations.
e01cc6dc
NB
584
585Wdisabled-optimization
c662432e 586Common Var(warn_disabled_optimization) Warning
a7b2e184 587Warn when an optimization pass is disabled.
e01cc6dc
NB
588
589Werror
50431bc4 590Common Var(warnings_are_errors)
a7b2e184 591Treat all warnings as errors.
e01cc6dc 592
79cf5994
DD
593Werror=
594Common Joined
a7b2e184 595Treat specified warning as error.
79cf5994 596
903caebf 597Wextra
62a67c94 598Common Var(extra_warnings) Warning
a7b2e184 599Print extra (possibly unwanted) warnings.
903caebf 600
c65a01af 601Wfatal-errors
50431bc4 602Common Var(flag_fatal_errors)
a7b2e184 603Exit on the first error occurred.
c65a01af 604
a214518f 605Wframe-larger-than=
00abf86c
MS
606Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_frame_larger_than_size) Init(HOST_WIDE_INT_MAX)
607-Wframe-larger-than=<byte-size> Warn if a function's stack frame requires in excess of <byte-size>.
a214518f 608
ae962e57
MS
609Wno-frame-larger-than
610Common Alias(Wframe-larger-than=,18446744073709551615EiB,none) Warning
611Disable -Wframe-larger-than= warning. Equivalent to -Wframe-larger-than=<SIZE_MAX> or larger.
612
a3a704a4
MH
613Wfree-nonheap-object
614Common Var(warn_free_nonheap_object) Init(1) Warning
a7b2e184 615Warn when attempting to free a non-heap object.
a3a704a4 616
b2b40051 617Whsa
c56684fd
MJ
618Common Ignore Warning
619Does nothing. Preserved for backward compatibility.
b2b40051 620
81fea426 621Wimplicit-fallthrough
70f6d5e1
JJ
622Common Alias(Wimplicit-fallthrough=,3,0) Warning
623
624Wimplicit-fallthrough=
63010089 625Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5)
81fea426
MP
626Warn when a switch case falls through.
627
e01cc6dc 628Winline
a924bffb 629Common Var(warn_inline) Warning Optimization
a7b2e184 630Warn when an inlined function cannot be inlined.
e01cc6dc 631
86951993
AM
632Winvalid-memory-model
633Common Var(warn_invalid_memory_model) Init(1) Warning
634Warn when an atomic memory model parameter is known to be outside the valid range.
635
e01cc6dc 636Wlarger-than-
5de8299c 637Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
e8fc888d
MLI
638
639Wlarger-than=
00abf86c
MS
640Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_larger_than_size) Init(HOST_WIDE_INT_MAX)
641-Wlarger-than=<byte-size> Warn if an object's size exceeds <byte-size>.
e01cc6dc 642
ae962e57
MS
643Wno-larger-than
644Common Alias(Wlarger-than=,18446744073709551615EiB,none) Warning
645Disable -Wlarger-than= warning. Equivalent to -Wlarger-than=<SIZE_MAX> or larger.
646
bf14eba2
JJ
647Wnonnull-compare
648Var(warn_nonnull_compare) Warning
649Warn if comparing pointer parameter with nonnull attribute with NULL.
650
76787f70 651Wnull-dereference
c2d89095 652Common Var(warn_null_dereference) Warning
a7b2e184 653Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
76787f70 654
f9cc1a70 655Wunsafe-loop-optimizations
ee79110c
JJ
656Common Ignore Warning
657Does nothing. Preserved for backward compatibility.
f9cc1a70 658
e01cc6dc 659Wmissing-noreturn
54d62f51 660Common Warning Alias(Wsuggest-attribute=noreturn)
e01cc6dc 661
c59f7203 662Wodr
a0fd3373 663Common Var(warn_odr_violations) Init(1) Warning
a7b2e184 664Warn about some C++ One Definition Rule violations during link time optimization.
c59f7203 665
71834ad3 666Woverflow
c662432e 667Common Var(warn_overflow) Init(1) Warning
a7b2e184 668Warn about overflow in arithmetic expressions.
71834ad3 669
259d29e3
JH
670Wlto-type-mismatch
671Common Var(warn_lto_type_mismatch) Init(1) Warning
a7b2e184 672During link time optimization warn about mismatched types of global declarations.
259d29e3 673
e01cc6dc 674Wpacked
c662432e 675Common Var(warn_packed) Warning
a7b2e184 676Warn when the packed attribute has no effect on struct layout.
e01cc6dc
NB
677
678Wpadded
c662432e 679Common Var(warn_padded) Warning
a7b2e184 680Warn when padding is required to align structure members.
e01cc6dc 681
c1771a20 682Wpedantic
2b71f4a4 683Common Var(pedantic) Init(0) Warning
a7b2e184 684Issue warnings needed for strict compliance to the standard.
c1771a20 685
b4dfdc11
MG
686Wreturn-local-addr
687Common Var(warn_return_local_addr) Init(1) Warning
688Warn about returning a pointer/reference to a local or temporary variable.
689
e01cc6dc 690Wshadow
c662432e 691Common Var(warn_shadow) Warning
84ff4775
LCW
692Warn when one variable shadows another. Same as -Wshadow=global.
693
694Wshadow=global
695Common Warning Alias(Wshadow)
696Warn when one variable shadows another (globally).
697
698Wshadow=local
699Common Var(warn_shadow_local) Warning EnabledBy(Wshadow)
700Warn when one local variable shadows another local variable or parameter.
701
702Wshadow-local
703Common Warning Undocumented Alias(Wshadow=local)
704
705Wshadow=compatible-local
706Common Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local)
707Warn when one local variable shadows another local variable or parameter of compatible type.
708
709Wshadow-compatible-local
710Common Warning Undocumented Alias(Wshadow=compatible-local)
e01cc6dc 711
7d69de61 712Wstack-protector
c662432e 713Common Var(warn_stack_protect) Warning
a7b2e184 714Warn when not issuing stack smashing protection for some reason.
7d69de61 715
a11e0df4 716Wstack-usage=
00abf86c
MS
717Common Joined RejectNegative Host_Wide_Int ByteSize Var(warn_stack_usage) Warning Init(HOST_WIDE_INT_MAX)
718-Wstack-usage=<byte-size> Warn if stack usage might exceed <byte-size>.
a11e0df4 719
ae962e57
MS
720Wno-stack-usage
721Common Alias(Wstack-usage=,18446744073709551615EiB,none) Warning
722Disable Wstack-usage= warning. Equivalent to Wstack-usage=<SIZE_MAX> or larger.
723
e01cc6dc 724Wstrict-aliasing
c662432e 725Common Warning
a7b2e184 726Warn about code which might break strict aliasing rules.
e01cc6dc 727
5399d643 728Wstrict-aliasing=
65d4f2cd 729Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
a7b2e184 730Warn about code which might break strict aliasing rules.
5399d643 731
6ac01510 732Wstrict-overflow
21af5cdf 733Common Warning
a7b2e184 734Warn about optimizations that assume that signed overflow is undefined.
6ac01510
ILT
735
736Wstrict-overflow=
65d4f2cd 737Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
a7b2e184 738Warn about optimizations that assume that signed overflow is undefined.
6ac01510 739
12b9f3ac
JH
740Wsuggest-attribute=cold
741Common Var(warn_suggest_attribute_cold) Warning
742Warn about functions which might be candidates for __attribute__((cold)).
743
5dc16b19
MLI
744Wsuggest-attribute=const
745Common Var(warn_suggest_attribute_const) Warning
a7b2e184 746Warn about functions which might be candidates for __attribute__((const)).
5dc16b19
MLI
747
748Wsuggest-attribute=pure
749Common Var(warn_suggest_attribute_pure) Warning
a7b2e184 750Warn about functions which might be candidates for __attribute__((pure)).
5dc16b19 751
7ea6b6cf
JH
752Wsuggest-attribute=noreturn
753Common Var(warn_suggest_attribute_noreturn) Warning
a7b2e184 754Warn about functions which might be candidates for __attribute__((noreturn)).
7ea6b6cf 755
0fab169b
PK
756Wsuggest-attribute=malloc
757Common Var(warn_suggest_attribute_malloc) Warning
758Warn about functions which might be candidates for __attribute__((malloc)).
759
91bc34a9
JH
760Wsuggest-final-types
761Common Var(warn_suggest_final_types) Warning
a7b2e184 762Warn about C++ polymorphic types where adding final keyword would improve code quality.
91bc34a9
JH
763
764Wsuggest-final-methods
765Common Var(warn_suggest_final_methods) Warning
a7b2e184 766Warn about C++ virtual methods where adding final keyword would improve code quality.
91bc34a9 767
a7dc5980
MP
768Wswitch-unreachable
769Common Var(warn_switch_unreachable) Warning Init(1)
770Warn about statements between switch's controlling expression and the first
771case.
772
e01cc6dc 773Wsystem-headers
c662432e 774Common Var(warn_system_headers) Warning
a7b2e184 775Do not suppress warnings from system headers.
e01cc6dc 776
8ffadef9
MG
777Wtrampolines
778Common Var(warn_trampolines) Warning
a7b2e184 779Warn whenever a trampoline is generated.
8ffadef9 780
faebccf9 781Wtype-limits
95744782 782Common Var(warn_type_limits) Warning EnabledBy(Wextra)
a7b2e184 783Warn if a comparison is always true or always false due to the limited range of the data type.
faebccf9 784
e01cc6dc 785Wuninitialized
7d5a5747 786Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
a7b2e184 787Warn about uninitialized automatic variables.
e01cc6dc 788
2f964ad6 789Wmaybe-uninitialized
7d5a5747 790Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
a7b2e184 791Warn about maybe uninitialized automatic variables.
2f964ad6 792
e01cc6dc 793Wunreachable-code
f1a62b6f 794Common Ignore Warning
bc3c12a2 795Does nothing. Preserved for backward compatibility.
e01cc6dc 796
903caebf 797Wunused
e73f7547 798Common Var(warn_unused) Init(0) Warning
a7b2e184 799Enable all -Wunused- warnings.
903caebf 800
ebfbbdc5 801Wunused-but-set-parameter
d919140b 802Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
a7b2e184 803Warn when a function parameter is only set, otherwise unused.
ebfbbdc5
JJ
804
805Wunused-but-set-variable
7d5a5747 806Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
a7b2e184 807Warn when a variable is only set, otherwise unused.
ebfbbdc5 808
e01cc6dc 809Wunused-function
7d5a5747 810Common Var(warn_unused_function) Warning EnabledBy(Wunused)
a7b2e184 811Warn when a function is unused.
e01cc6dc
NB
812
813Wunused-label
7d5a5747 814Common Var(warn_unused_label) Warning EnabledBy(Wunused)
a7b2e184 815Warn when a label is unused.
e01cc6dc
NB
816
817Wunused-parameter
d919140b 818Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
a7b2e184 819Warn when a function parameter is unused.
e01cc6dc
NB
820
821Wunused-value
7d5a5747 822Common Var(warn_unused_value) Warning EnabledBy(Wunused)
a7b2e184 823Warn when an expression value is unused.
e01cc6dc
NB
824
825Wunused-variable
7d5a5747 826Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
a7b2e184 827Warn when a variable is unused.
e01cc6dc 828
16c1c158 829Wcoverage-mismatch
650cfcab 830Common Var(warn_coverage_mismatch) Init(1) Warning
a7b2e184 831Warn in case profiles in -fprofile-use do not match.
16c1c158 832
bc162b0e
IB
833Wmissing-profile
834Common Var(warn_missing_profile) Init(1) Warning
835Warn in case profiles in -fprofile-use do not exist.
836
cdbb5ba3
AS
837Wvector-operation-performance
838Common Var(warn_vector_operation_performance) Warning
a7b2e184 839Warn when a vector operation is compiled outside the SIMD.
cdbb5ba3 840
603349bf
JM
841Xassembler
842Driver Separate
843
844Xlinker
845Driver Separate
846
847Xpreprocessor
848Driver Separate
849
dd9f93dc
JM
850Z
851Driver
852
d185d268 853aux-info
d5478783 854Common Separate Var(aux_info_file_name)
a7b2e184 855-aux-info <file> Emit declaration information into <file>.
d185d268
NB
856
857aux-info=
5de8299c 858Common Joined Alias(aux-info)
d185d268 859
e200444e
JM
860coverage
861Driver
862
603349bf
JM
863c
864Driver
d185d268
NB
865
866d
867Common Joined
a7b2e184 868-d<letters> Enable dumps from specific passes of the compiler.
d185d268
NB
869
870dumpbase
1dedc12d 871Driver Common Separate Var(dump_base_name)
a7b2e184 872-dumpbase <file> Set the file basename to be used for dumps.
d185d268 873
1dedc12d
AO
874dumpbase-ext
875Driver Common Separate Var(dump_base_ext)
876-dumpbase-ext .<ext> Drop a trailing .<ext> from the dump basename to name auxiliary output files.
877
d7fb0a6d 878dumpdir
1dedc12d 879Driver Common Separate Var(dump_dir_name)
a7b2e184 880-dumpdir <dir> Set the directory name to be used for dumps.
d7fb0a6d 881
603349bf
JM
882dumpmachine
883Driver
884
885dumpspecs
886Driver
887
888dumpversion
889Driver
890
3c36aa6b
JJ
891dumpfullversion
892Driver
893
e200444e
JM
894e
895Driver Joined Separate
896
fa381cb2
JM
897; This option has historically been passed down to the linker by an
898; accident of a %{e*} spec, so ensure it continues to be passed down
899; as a single option. The supported option for this purpose is
900; -rdynamic. See PR 47390.
901export-dynamic
902Driver Undocumented
903
31b66477
KC
904; The version of the C++ ABI in use. The following values are allowed:
905;
906; 0: The version of the ABI believed most conformant with the C++ ABI
907; specification. This ABI may change as bugs are discovered and fixed.
908; Therefore, 0 will not necessarily indicate the same ABI in different
909; versions of G++.
910;
90d84934 911; 1: The version of the ABI first used in G++ 3.2. No longer selectable.
31b66477 912;
785f21af
JM
913; 2: The version of the ABI first used in G++ 3.4, and the default
914; until GCC 4.9.
abfe01ce
JM
915;
916; 3: The version of the ABI that fixes the missing underscore
917; in template non-type arguments of pointer type.
918;
919; 4: The version of the ABI that introduces unambiguous mangling of
55af847f 920; vector types. First selectable in G++ 4.5.
99a8d35b 921;
67e18edb 922; 5: The version of the ABI that ignores attribute const/noreturn
55af847f 923; in function pointer mangling, and corrects mangling of decltype and
67e18edb 924; function parameters used in other parameters and the return type.
55af847f 925; First selectable in G++ 4.6.
67e18edb 926;
4b6aaa99
JM
927; 6: The version of the ABI that doesn't promote scoped enums to int and
928; changes the mangling of template argument packs, const/static_cast,
929; prefix ++ and --, and a class scope function used as a template
930; argument.
967444bb
JM
931; First selectable in G++ 4.7.
932;
622aac0b
JM
933; 7: The version of the ABI that treats nullptr_t as a builtin type and
934; corrects the mangling of lambdas in default argument scope.
a3ddb738 935; First selectable in G++ 4.8.
0861bec8
JM
936;
937; 8: The version of the ABI that corrects the substitution behavior of
938; function types with function-cv-qualifiers.
603eaec4
JM
939; First selectable in G++ 4.9 and default in G++ 5.
940;
a03c9bf1
JM
941; 9: The version of the ABI that corrects the alignment of nullptr_t.
942; First selectable and default in G++ 5.2.
943;
944; 10: The version of the ABI that mangles attributes that affect type
945; identity, such as ia32 calling convention attributes (stdcall, etc.)
946; Default in G++ 6 (set in c_common_post_options).
0861bec8 947;
31f7f784
JM
948; 11: The version of the ABI that corrects mangling of sizeof... expressions
949; and introduces new inheriting constructor handling.
34bbc4c5
JM
950; Default in G++ 7.
951;
f3ec182d 952; 12: Corrects the calling convention for classes with only deleted copy/move
974aedcc 953; constructors and changes passing/returning of empty records.
34a7a230
JM
954; Default in G++ 8.1.
955;
956; 13: Fixes the accidental change in 12 to the calling convention for classes
957; with deleted copy constructor and trivial move constructor.
958; Default in G++ 8.2.
e0c866dd
KK
959; 14: Corrects the mangling of nullptr expression.
960; Default in G++ 10.
f3ec182d 961;
31b66477
KC
962; Additional positive integers will be assigned as new versions of
963; the ABI become the default version of the ABI.
57782ad8 964fabi-version=
ca0e51a0 965Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
a7b2e184 966The version of the C++ ABI in use.
57782ad8 967
6e616110 968faggressive-loop-optimizations
a7b2e184
MS
969Common Report Var(flag_aggressive_loop_optimizations) Optimization Init(1)
970Aggressively optimize loops using language constraints.
6e616110 971
6ff3a151 972falign-functions
c518c102 973Common Report Var(flag_align_functions) Optimization
a7b2e184 974Align the start of functions.
6ff3a151 975
058de654 976falign-functions=
c518c102 977Common RejectNegative Joined Var(str_align_functions) Optimization
058de654 978
8cac4d85
BS
979flimit-function-alignment
980Common Report Var(flag_limit_function_alignment) Optimization Init(0)
981
6ff3a151 982falign-jumps
c518c102 983Common Report Var(flag_align_jumps) Optimization
a7b2e184 984Align labels which are only reached by jumping.
6ff3a151 985
058de654 986falign-jumps=
c518c102 987Common RejectNegative Joined Var(str_align_jumps) Optimization
058de654 988
6ff3a151 989falign-labels
c518c102 990Common Report Var(flag_align_labels) Optimization
a7b2e184 991Align all labels.
6ff3a151 992
058de654 993falign-labels=
c518c102 994Common RejectNegative Joined Var(str_align_labels) Optimization
058de654 995
6ff3a151 996falign-loops
c518c102 997Common Report Var(flag_align_loops) Optimization
a7b2e184 998Align the start of loops.
6ff3a151 999
058de654 1000falign-loops=
8956e247 1001Common RejectNegative Joined Var(str_align_loops) Optimization
058de654 1002
e622a32d
RB
1003fallow-store-data-races
1004Common Report Var(flag_store_data_races) Optimization
1005Allow the compiler to introduce new data races on stores.
1006
757bf1df
DM
1007fanalyzer
1008Common Var(flag_analyzer)
1009Enable static analysis pass.
1010
6ff3a151 1011fargument-alias
2d2bd949 1012Common Ignore
0d3c82d6 1013Does nothing. Preserved for backward compatibility.
6ff3a151
NB
1014
1015fargument-noalias
2d2bd949 1016Common Ignore
0d3c82d6 1017Does nothing. Preserved for backward compatibility.
6ff3a151
NB
1018
1019fargument-noalias-global
2d2bd949 1020Common Ignore
0d3c82d6 1021Does nothing. Preserved for backward compatibility.
6ff3a151 1022
0698a1d2 1023fargument-noalias-anything
2d2bd949 1024Common Ignore
0d3c82d6 1025Does nothing. Preserved for backward compatibility.
0698a1d2 1026
de5a5fa1
MP
1027fsanitize=
1028Common Driver Report Joined
a7b2e184 1029Select what to sanitize.
32b4b7f5 1030
f6e50a7d
WW
1031fsanitize-coverage=
1032Common Report Joined
cefc0906 1033Select type of coverage sanitization.
f6e50a7d 1034
fd960af2
YG
1035fasan-shadow-offset=
1036Common Joined RejectNegative Var(common_deferred_options) Defer
1037-fasan-shadow-offset=<number> Use custom shadow memory offset.
1038
18af8d16
YG
1039fsanitize-sections=
1040Common Joined RejectNegative Var(common_deferred_options) Defer
1041-fsanitize-sections=<sec1,sec2,...> Sanitize global variables
1042in user-defined sections.
1043
d95a2703
JJ
1044fsanitize-recover=
1045Common Report Joined
a7b2e184 1046After diagnosing undefined behavior attempt to continue execution.
1c33c9b7 1047
d95a2703
JJ
1048fsanitize-recover
1049Common Report
a7b2e184 1050This switch is deprecated; use -fsanitize-recover= instead.
d95a2703 1051
6dc4a604
ML
1052fsanitize-address-use-after-scope
1053Common Driver Report Var(flag_sanitize_address_use_after_scope) Init(0)
1054
1c33c9b7 1055fsanitize-undefined-trap-on-error
0115b91d 1056Common Driver Report Var(flag_sanitize_undefined_trap_on_error) Init(0)
a7b2e184 1057Use trap instead of a library function for undefined behavior sanitization.
1c33c9b7 1058
6ff3a151 1059fasynchronous-unwind-tables
c662432e 1060Common Report Var(flag_asynchronous_unwind_tables) Optimization
a7b2e184 1061Generate unwind tables that are exact at each instruction boundary.
6ff3a151 1062
6fb5fa3c 1063fauto-inc-dec
b16650ac 1064Common Report Var(flag_auto_inc_dec) Init(1) Optimization
a7b2e184 1065Generate auto-inc/dec instructions.
6fb5fa3c 1066
be3c16c4 1067fauto-profile
b16650ac 1068Common Report Var(flag_auto_profile)
be3c16c4
DC
1069Use sample profile information for call graph node weights. The default
1070profile file is fbdata.afdo in 'pwd'.
1071
1072fauto-profile=
1073Common Joined RejectNegative Var(auto_profile_file)
1074Use sample profile information for call graph node weights. The profile
1075file is specified in the argument.
1076
31b66477
KC
1077; -fcheck-bounds causes gcc to generate array bounds checks.
1078; For C, C++ and ObjC: defaults off.
1079; For Java: defaults to on.
1080; For Fortran: defaults to off.
6ff3a151 1081fbounds-check
50431bc4 1082Common Report Var(flag_bounds_check)
a7b2e184 1083Generate code to check bounds before indexing arrays.
6ff3a151
NB
1084
1085fbranch-count-reg
14379e66 1086Common Report Var(flag_branch_on_count_reg) Optimization
a7b2e184 1087Replace add, compare, branch with branch on count register.
6ff3a151
NB
1088
1089fbranch-probabilities
c662432e 1090Common Report Var(flag_branch_probabilities) Optimization
a7b2e184 1091Use profiling information for branch probabilities.
6ff3a151 1092
de32c0cb 1093fbranch-target-load-optimize
f78f73cb
RS
1094Common Ignore
1095Does nothing. Preserved for backward compatibility.
de32c0cb
NB
1096
1097fbranch-target-load-optimize2
f78f73cb
RS
1098Common Ignore
1099Does nothing. Preserved for backward compatibility.
de32c0cb 1100
1194fc79 1101fbtr-bb-exclusive
f78f73cb
RS
1102Common Ignore
1103Does nothing. Preserved for backward compatibility.
1194fc79 1104
3cf3da88
EB
1105fcallgraph-info
1106Common Report RejectNegative Var(flag_callgraph_info) Init(NO_CALLGRAPH_INFO);
1107Output callgraph information on a per-file basis.
1108
1109fcallgraph-info=
1110Common Report RejectNegative Joined
1111Output callgraph information on a per-file basis with decorations.
1112
058de654 1113fcall-saved-
21bf1558 1114Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1115-fcall-saved-<register> Mark <register> as being preserved across functions.
058de654
NB
1116
1117fcall-used-
21bf1558 1118Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1119-fcall-used-<register> Mark <register> as being corrupted by function calls.
058de654 1120
31b66477
KC
1121; Nonzero for -fcaller-saves: allocate values in regs that need to
1122; be saved across function calls, if that produces overall better code.
1123; Optional now, so people can test it.
de32c0cb 1124fcaller-saves
c662432e 1125Common Report Var(flag_caller_saves) Optimization
a7b2e184 1126Save registers around function calls.
de32c0cb 1127
3d8864c0 1128fcheck-data-deps
c0c12356 1129Common Ignore
49b8fe6c 1130This switch is deprecated; do not use.
3d8864c0 1131
2284b034
MG
1132fcheck-new
1133Common Var(flag_check_new)
a7b2e184 1134Check the return value of new in C++.
2284b034 1135
6d27d749 1136fchecking
b06f87c7 1137Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0)
6d27d749
RB
1138Perform internal consistency checkings.
1139
7db11a5a
JJ
1140fchecking=
1141Common Joined RejectNegative UInteger Var(flag_checking)
1142Perform internal consistency checkings.
1143
37ccb0ba
SB
1144fcode-hoisting
1145Common Report Var(flag_code_hoisting) Optimization
1146Enable code hoisting.
1147
ccaeeafe
NC
1148fcombine-stack-adjustments
1149Common Report Var(flag_combine_stack_adjustments) Optimization
1150Looks for opportunities to reduce stack adjustments and stack references.
1151
6ff3a151 1152fcommon
6271dd98 1153Common Report Var(flag_no_common,0) Init(1)
df73e971 1154Put uninitialized globals in the common section.
6ff3a151 1155
603349bf
JM
1156fcompare-debug
1157Driver
1158; Converted by the driver to -fcompare-debug= options.
1159
2153915d 1160fcompare-debug=
603349bf 1161Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
a7b2e184 1162-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump.
2153915d
AO
1163
1164fcompare-debug-second
5e471ea6 1165Common Driver RejectNegative Var(flag_compare_debug)
a7b2e184 1166Run only the second compilation of -fcompare-debug.
2153915d 1167
e692f276
RH
1168fcompare-elim
1169Common Report Var(flag_compare_elim_after_reload) Optimization
a7b2e184 1170Perform comparison elimination after register allocation has finished.
e692f276 1171
b5b8b0ac
AO
1172fconserve-stack
1173Common Var(flag_conserve_stack) Optimization
a7b2e184 1174Do not perform optimizations increasing noticeably stack usage.
b5b8b0ac 1175
6ff3a151 1176fcprop-registers
c662432e 1177Common Report Var(flag_cprop_registers) Optimization
a7b2e184 1178Perform a register copy-propagation optimization pass.
6ff3a151 1179
de32c0cb 1180fcrossjumping
c662432e 1181Common Report Var(flag_crossjumping) Optimization
a7b2e184 1182Perform cross-jumping optimization.
de32c0cb
NB
1183
1184fcse-follow-jumps
c662432e 1185Common Report Var(flag_cse_follow_jumps) Optimization
a7b2e184 1186When running CSE, follow jumps to their targets.
de32c0cb
NB
1187
1188fcse-skip-blocks
2d2bd949 1189Common Ignore
5f39ad47 1190Does nothing. Preserved for backward compatibility.
de32c0cb 1191
c7463669 1192fcx-limited-range
5e46b0c6 1193Common Report Var(flag_cx_limited_range) Optimization SetByCombined
a7b2e184 1194Omit range reduction step when performing complex division.
c7463669 1195
35085f76
JB
1196fcx-fortran-rules
1197Common Report Var(flag_cx_fortran_rules) Optimization
a7b2e184 1198Complex multiplication and division follow Fortran rules.
35085f76 1199
6ff3a151 1200fdata-sections
b16650ac 1201Common Report Var(flag_data_sections)
a7b2e184 1202Place data items into their own section.
6ff3a151 1203
0a090f42 1204fdbg-cnt-list
a30d4fc5 1205Common Report Var(flag_dbg_cnt_list)
0a090f42
SP
1206List all available debugging counters with their limits and counts.
1207
6fb5fa3c 1208fdbg-cnt=
299404a1 1209Common RejectNegative Joined Var(common_deferred_options) Defer
83a49336 1210-fdbg-cnt=<counter>[:<lower_limit1>-]<upper_limit1>[:<lower_limit2>-<upper_limit2>:...][,<counter>:...] Set the debug counter limit.
6fb5fa3c 1211
c8aea42c 1212fdebug-prefix-map=
299404a1 1213Common Joined RejectNegative Var(common_deferred_options) Defer
b408e010 1214-fdebug-prefix-map=<old>=<new> Map one directory name to another in debug information.
7365279f
BK
1215
1216ffile-prefix-map=
1217Common Joined RejectNegative Var(common_deferred_options) Defer
b408e010 1218-ffile-prefix-map=<old>=<new> Map one directory name to another in compilation result.
c8aea42c 1219
76f9db36 1220fdebug-types-section
98095aa3 1221Common Report Var(flag_debug_types_section) Init(0)
76f9db36
JJ
1222Output .debug_types section when using DWARF v4 debuginfo.
1223
31b66477
KC
1224; Nonzero for -fdefer-pop: don't pop args after each function call
1225; instead save them up to pop many calls' args with one insns.
de32c0cb 1226fdefer-pop
c662432e 1227Common Report Var(flag_defer_pop) Optimization
a7b2e184 1228Defer popping functions args from stack until later.
de32c0cb
NB
1229
1230fdelayed-branch
c662432e 1231Common Report Var(flag_delayed_branch) Optimization
a7b2e184 1232Attempt to fill delay slots of branch instructions.
de32c0cb 1233
2da02156 1234fdelete-dead-exceptions
b16650ac 1235Common Report Var(flag_delete_dead_exceptions) Init(0) Optimization
a7b2e184 1236Delete dead instructions that may throw exceptions.
2da02156 1237
de32c0cb 1238fdelete-null-pointer-checks
467d8d51 1239Common Report Var(flag_delete_null_pointer_checks) Init(-1) Optimization
a7b2e184 1240Delete useless null pointer checks.
de32c0cb 1241
1e29e4d3
JH
1242fdevirtualize-at-ltrans
1243Common Report Var(flag_ltrans_devirtualize)
a7b2e184 1244Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
1e29e4d3 1245
bbc9396b
JH
1246fdevirtualize-speculatively
1247Common Report Var(flag_devirtualize_speculatively) Optimization
a7b2e184 1248Perform speculative devirtualization.
bbc9396b 1249
ca1eedf6
JH
1250fdevirtualize
1251Common Report Var(flag_devirtualize) Optimization
1252Try to convert virtual calls to direct ones.
1253
de32c0cb 1254fdiagnostics-show-location=
e6d4b984 1255Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
a7b2e184 1256-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics.
de32c0cb 1257
e6d4b984
JM
1258; Required for these enum values.
1259SourceInclude
1260pretty-print.h
1261
1262Enum
1263Name(diagnostic_prefixing_rule) Type(int)
1264
1265EnumValue
1266Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
1267
1268EnumValue
1269Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
1270
9fec0042
MLI
1271fdiagnostics-show-caret
1272Common Var(flag_diagnostics_show_caret) Init(1)
a7b2e184 1273Show the source line with a caret indicating the column.
9fec0042 1274
96e6ae57
DM
1275fdiagnostics-show-labels
1276Common Var(flag_diagnostics_show_labels) Init(1)
04e5c73d 1277Show labels annotating ranges of source code when showing source.
96e6ae57 1278
56b61d7f
DM
1279fdiagnostics-show-line-numbers
1280Common Var(flag_diagnostics_show_line_numbers) Init(1)
04e5c73d 1281Show line numbers in the left margin when showing source.
56b61d7f 1282
4b84d650
JJ
1283fdiagnostics-color
1284Common Alias(fdiagnostics-color=,always,never)
1285;
1286
1287fdiagnostics-color=
97aa8bb6 1288Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
a7b2e184 1289-fdiagnostics-color=[never|always|auto] Colorize diagnostics.
4b84d650
JJ
1290
1291; Required for these enum values.
1292SourceInclude
1293diagnostic-color.h
1294
1295Enum
1296Name(diagnostic_color_rule) Type(int)
1297
1298EnumValue
1299Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
1300
1301EnumValue
1302Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
1303
1304EnumValue
1305Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
1306
d2608235
DM
1307fdiagnostics-urls=
1308Driver Common Joined RejectNegative Var(flag_diagnostics_show_urls) Enum(diagnostic_url_rule) Init(DIAGNOSTICS_URL_AUTO)
1309-fdiagnostics-urls=[never|always|auto] Embed URLs in diagnostics.
1310
1311; Required for these enum values.
1312SourceInclude
1313diagnostic-url.h
1314
1315Enum
1316Name(diagnostic_url_rule) Type(int)
1317
1318EnumValue
1319Enum(diagnostic_url_rule) String(never) Value(DIAGNOSTICS_URL_NO)
1320
1321EnumValue
1322Enum(diagnostic_url_rule) String(always) Value(DIAGNOSTICS_URL_YES)
1323
1324EnumValue
1325Enum(diagnostic_url_rule) String(auto) Value(DIAGNOSTICS_URL_AUTO)
1326
004bb936
LH
1327fdiagnostics-column-unit=
1328Common Joined RejectNegative Enum(diagnostics_column_unit)
1329-fdiagnostics-column-unit=[display|byte] Select whether column numbers are output as display columns (default) or raw bytes.
1330
1331fdiagnostics-column-origin=
1332Common Joined RejectNegative UInteger
1333-fdiagnostics-column-origin=<number> Set the number of the first column. The default is 1-based as per GNU style, but some utilities may expect 0-based, for example.
1334
478dd60d
DM
1335fdiagnostics-format=
1336Common Joined RejectNegative Enum(diagnostics_output_format)
b408e010 1337-fdiagnostics-format=[text|json] Select output format.
478dd60d
DM
1338
1339; Required for these enum values.
1340SourceInclude
1341diagnostic.h
1342
004bb936
LH
1343Enum
1344Name(diagnostics_column_unit) Type(int)
1345
1346EnumValue
1347Enum(diagnostics_column_unit) String(display) Value(DIAGNOSTICS_COLUMN_UNIT_DISPLAY)
1348
1349EnumValue
1350Enum(diagnostics_column_unit) String(byte) Value(DIAGNOSTICS_COLUMN_UNIT_BYTE)
1351
478dd60d
DM
1352Enum
1353Name(diagnostics_output_format) Type(int)
1354
1355EnumValue
1356Enum(diagnostics_output_format) String(text) Value(DIAGNOSTICS_OUTPUT_FORMAT_TEXT)
1357
1358EnumValue
1359Enum(diagnostics_output_format) String(json) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON)
1360
a93eac6a
DM
1361fdiagnostics-parseable-fixits
1362Common Var(flag_diagnostics_parseable_fixits)
8135a004 1363Print fix-it hints in machine-readable form.
a93eac6a 1364
717ebe91
DM
1365fdiagnostics-generate-patch
1366Common Var(flag_diagnostics_generate_patch)
1367Print fix-it hints to stderr in unified diff format.
1368
ccf08a6e 1369fdiagnostics-show-option
c7d0de89 1370Common Var(flag_diagnostics_show_option) Init(1)
a7b2e184 1371Amend appropriate diagnostic messages with the command line option that controls them.
ccf08a6e 1372
6d4a35ca
DM
1373fdiagnostics-show-cwe
1374Common Var(flag_diagnostics_show_cwe) Init(1)
1375Print CWE identifiers for diagnostic messages, where available.
1376
4bc1899b
DM
1377fdiagnostics-path-format=
1378Common Joined RejectNegative Var(flag_diagnostics_path_format) Enum(diagnostic_path_format) Init(DPF_INLINE_EVENTS)
1379Specify how to print any control-flow path associated with a diagnostic.
1380
129a1319
LH
1381fdiagnostics-plain-output
1382Driver Common RejectNegative
1383Turn off any diagnostics features that complicate the output, such as line numbers, color, and warning URLs.
1384
004bb936
LH
1385ftabstop=
1386Common Joined RejectNegative UInteger
1387-ftabstop=<number> Distance between tab stops for column reporting.
1388
4bc1899b
DM
1389Enum
1390Name(diagnostic_path_format) Type(int)
1391
1392EnumValue
1393Enum(diagnostic_path_format) String(none) Value(DPF_NONE)
1394
1395EnumValue
1396Enum(diagnostic_path_format) String(separate-events) Value(DPF_SEPARATE_EVENTS)
1397
1398EnumValue
1399Enum(diagnostic_path_format) String(inline-events) Value(DPF_INLINE_EVENTS)
1400
1401fdiagnostics-show-path-depths
1402Common Var(flag_diagnostics_show_path_depths) Init(0)
1403Show stack depths of events in paths.
1404
0141ab44
DM
1405fdiagnostics-minimum-margin-width=
1406Common Joined UInteger Var(diagnostics_minimum_margin_width) Init(6)
04e5c73d 1407Set minimum width of left margin of source code when showing source.
0141ab44 1408
226c52aa
XDL
1409fdisable-
1410Common Joined RejectNegative Var(common_deferred_options) Defer
b408e010 1411-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 Disable an optimization pass.
226c52aa
XDL
1412
1413fenable-
1414Common Joined RejectNegative Var(common_deferred_options) Defer
b408e010 1415-fenable-[tree|rtl|ipa]-<pass>=range1+range2 Enable an optimization pass.
226c52aa 1416
6de9cd9a 1417fdump-
21bf1558 1418Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1419-fdump-<type> Dump various compiler internals to a file.
6de9cd9a 1420
d1583032
JM
1421fdump-final-insns
1422Driver RejectNegative
1423
2153915d
AO
1424fdump-final-insns=
1425Common RejectNegative Joined Var(flag_dump_final_insns)
a7b2e184 1426-fdump-final-insns=filename Dump to filename the insns at the end of translation.
2153915d 1427
c6a13190
ILT
1428fdump-go-spec=
1429Common RejectNegative Joined Var(flag_dump_go_spec)
a7b2e184 1430-fdump-go-spec=filename Write all declarations to file as Go code.
c6a13190 1431
24a7799e
R
1432fdump-noaddr
1433Common Report Var(flag_dump_noaddr)
a7b2e184 1434Suppress output of addresses in debugging dumps.
24a7799e 1435
dc10fd96
JJ
1436freport-bug
1437Common Driver Var(flag_report_bug)
1438Collect and dump debug information into temporary file if ICE in C/C++
bd2c6270 1439compiler occurred.
dc10fd96 1440
ba4ad400
DM
1441fdump-internal-locations
1442Common Var(flag_dump_locations) Init(0)
a7b2e184 1443Dump detailed information on GCC's internal representation of source code locations.
ba4ad400 1444
deced1e2
XDL
1445fdump-passes
1446Common Var(flag_dump_passes) Init(0)
a7b2e184 1447Dump optimization passes.
deced1e2 1448
6ff3a151 1449fdump-unnumbered
e90afde6 1450Common Report Var(flag_dump_unnumbered)
a7b2e184 1451Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
6ff3a151 1452
2aa7c49b 1453fdump-unnumbered-links
e90afde6 1454Common Report Var(flag_dump_unnumbered_links)
a7b2e184 1455Suppress output of previous and next insn numbers in debugging dumps.
2aa7c49b 1456
b5b8b0ac
AO
1457fdwarf2-cfi-asm
1458Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1459Enable CFI tables via GAS assembler directives.
1460
355866de 1461fearly-inlining
c662432e 1462Common Report Var(flag_early_inlining) Init(1) Optimization
a7b2e184 1463Perform early inlining.
355866de 1464
de32c0cb 1465feliminate-dwarf2-dups
1823c4f6
RB
1466Common Ignore
1467Does nothing. Preserved for backward compatibility.
de32c0cb 1468
07ffa034
MJ
1469fipa-sra
1470Common Report Var(flag_ipa_sra) Init(0) Optimization
a7b2e184 1471Perform interprocedural reduction of aggregates.
07ffa034 1472
6a08f7b3 1473feliminate-unused-debug-symbols
d1137c02 1474Common Report Var(flag_debug_only_used_symbols) Init(1)
a7b2e184 1475Perform unused symbol elimination in debug info.
6a08f7b3 1476
de32c0cb 1477feliminate-unused-debug-types
50431bc4 1478Common Report Var(flag_eliminate_unused_debug_types) Init(1)
a7b2e184 1479Perform unused type elimination in debug info.
de32c0cb 1480
e713adf6 1481femit-class-debug-always
eae8e474 1482Common Report Var(flag_emit_class_debug_always) Init(0)
e713adf6
CD
1483Do not suppress C++ class debug information.
1484
6ff3a151 1485fexceptions
c662432e 1486Common Report Var(flag_exceptions) Optimization
a7b2e184 1487Enable exception handling.
6ff3a151 1488
de32c0cb 1489fexpensive-optimizations
c662432e 1490Common Report Var(flag_expensive_optimizations) Optimization
a7b2e184 1491Perform a number of minor, expensive optimizations.
de32c0cb 1492
8ce94e44 1493fexcess-precision=
df375b03 1494Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision) Init(EXCESS_PRECISION_DEFAULT) Optimization SetByCombined
a7b2e184 1495-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision.
8ce94e44 1496
e6d4b984
JM
1497Enum
1498Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1499
1500EnumValue
1501Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1502
1503EnumValue
1504Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1505
04f0fcf7
JG
1506; Whether we permit the extended set of values for FLT_EVAL_METHOD
1507; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11.
1508fpermitted-flt-eval-methods=
1509Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT)
1510-fpermitted-flt-eval-methods=[c11|ts-18661] Specify which values of FLT_EVAL_METHOD are permitted.
1511
1512Enum
1513Name(permitted_flt_eval_methods) Type(enum permitted_flt_eval_methods) UnknownError(unknown specification for the set of FLT_EVAL_METHOD values to permit %qs)
1514
1515EnumValue
1516Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11)
1517
1518EnumValue
1519Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
1520
058de654 1521ffast-math
bfd67b47 1522Common Optimization
058de654 1523
cc8547a7 1524ffat-lto-objects
e9f67e62 1525Common Var(flag_fat_lto_objects)
cc8547a7
AK
1526Output lto objects containing both the intermediate language and binary output.
1527
6ff3a151 1528ffinite-math-only
5e46b0c6 1529Common Report Var(flag_finite_math_only) Optimization SetByCombined
a7b2e184 1530Assume no NaNs or infinities are generated.
6ff3a151 1531
c29c92c7 1532ffinite-loops
75efe9cb 1533Common Report Var(flag_finite_loops) Optimization Init(0)
c29c92c7
FX
1534Assume that loops with an exit will terminate and not loop indefinitely.
1535
058de654 1536ffixed-
21bf1558 1537Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1538-ffixed-<register> Mark <register> as being unavailable to the compiler.
058de654 1539
de32c0cb 1540ffloat-store
c662432e 1541Common Report Var(flag_float_store) Optimization
a7b2e184 1542Don't allocate floats and doubles in extended-precision registers.
de32c0cb
NB
1543
1544fforce-addr
2d2bd949 1545Common Ignore
3de5e93a 1546Does nothing. Preserved for backward compatibility.
de32c0cb 1547
2ca2b607
SB
1548fforward-propagate
1549Common Report Var(flag_forward_propagate) Optimization
a7b2e184 1550Perform a forward propagation pass on RTL.
a52b023a 1551
16949072 1552ffp-contract=
bea30e0d 1553Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
6a825afe 1554-ffp-contract=[off|on|fast] Perform floating-point expression contraction.
16949072 1555
e6d4b984
JM
1556Enum
1557Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1558
1559EnumValue
1560Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1561
1562; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1563EnumValue
1564Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1565
1566EnumValue
1567Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1568
0d2f700f
JM
1569ffp-int-builtin-inexact
1570Common Report Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1571Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1572
31b66477
KC
1573; Nonzero means don't put addresses of constant functions in registers.
1574; Used for compiling the Unix kernel, where strange substitutions are
1575; done on the assembly output.
de32c0cb 1576ffunction-cse
b16650ac 1577Common Report Var(flag_no_function_cse,0) Optimization
a7b2e184 1578Allow function addresses to be held in registers.
de32c0cb 1579
6ff3a151 1580ffunction-sections
50431bc4 1581Common Report Var(flag_function_sections)
a7b2e184 1582Place each function into its own section.
6ff3a151 1583
de32c0cb 1584fgcse
c662432e 1585Common Report Var(flag_gcse) Optimization
a7b2e184 1586Perform global common subexpression elimination.
de32c0cb
NB
1587
1588fgcse-lm
c662432e 1589Common Report Var(flag_gcse_lm) Init(1) Optimization
a7b2e184 1590Perform enhanced load motion during global common subexpression elimination.
de32c0cb
NB
1591
1592fgcse-sm
c662432e 1593Common Report Var(flag_gcse_sm) Init(0) Optimization
a7b2e184 1594Perform store motion after global common subexpression elimination.
de32c0cb 1595
f5f2e3cd 1596fgcse-las
c662432e 1597Common Report Var(flag_gcse_las) Init(0) Optimization
f9957958 1598Perform redundant load after store elimination in global common subexpression
a7b2e184 1599elimination.
f9957958
MH
1600
1601fgcse-after-reload
c662432e 1602Common Report Var(flag_gcse_after_reload) Optimization
a7b2e184
MS
1603Perform global common subexpression elimination after register allocation has
1604finished.
f5f2e3cd 1605
6592d14b
PMR
1606Enum
1607Name(dwarf_gnat_encodings) Type(int)
1608
1609EnumValue
1610Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1611
1612EnumValue
1613Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1614
1615EnumValue
1616Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1617
1618fgnat-encodings=
1619Common Enum(dwarf_gnat_encodings) Joined RejectNegative Report Undocumented Var(gnat_encodings)
04e5c73d 1620-fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information.
6592d14b 1621
d0a58904 1622; This option is not documented yet as its semantics will change.
f8bf9252 1623fgraphite
ff6a32a9 1624Common Report Var(flag_graphite) Optimization
a7b2e184 1625Enable in and out of Graphite representation.
f8bf9252 1626
204b560f
SP
1627fgraphite-identity
1628Common Report Var(flag_graphite_identity) Optimization
a7b2e184 1629Enable Graphite Identity transformation.
204b560f 1630
372a6eb8
BS
1631fhoist-adjacent-loads
1632Common Report Var(flag_hoist_adjacent_loads) Optimization
1633Enable hoisting adjacent loads to encourage generating conditional move
a7b2e184 1634instructions.
372a6eb8 1635
1a218fc9
ILT
1636fkeep-gc-roots-live
1637Common Undocumented Report Var(flag_keep_gc_roots_live) Optimization
1638; Always keep a pointer to a live memory block
1639
530b4409 1640flarge-source-files
1641Common Report Var(flag_large_source_files) Init(0)
1642Improve GCC's ability to track column numbers in large source files,
1643at the expense of slower compilation.
1644
3cf0e270
SP
1645floop-parallelize-all
1646Common Report Var(flag_loop_parallelize_all) Optimization
a7b2e184 1647Mark all loops as parallel.
204b560f 1648
f8bf9252 1649floop-strip-mine
d6bb5ccf 1650Common Alias(floop-nest-optimize)
a7b2e184 1651Enable loop nest transforms. Same as -floop-nest-optimize.
f8bf9252
SP
1652
1653floop-interchange
fbdec14e
BC
1654Common Report Var(flag_loop_interchange) Optimization
1655Enable loop interchange on trees.
f8bf9252
SP
1656
1657floop-block
d6bb5ccf 1658Common Alias(floop-nest-optimize)
a7b2e184 1659Enable loop nest transforms. Same as -floop-nest-optimize.
f8bf9252 1660
20d3465b 1661floop-unroll-and-jam
dc236397
MM
1662Common Report Var(flag_unroll_jam) Optimization
1663Perform unroll-and-jam on loops.
a7b2e184 1664
0a35513e
AH
1665fgnu-tm
1666Common Report Var(flag_tm)
a7b2e184 1667Enable support for GNU transactional memory.
0a35513e 1668
da34ade5
JM
1669fgnu-unique
1670Common Report Var(flag_gnu_unique) Init(1)
a7b2e184 1671Use STB_GNU_UNIQUE if supported by the assembler.
da34ade5 1672
98af4c9f 1673floop-flatten
093193be
MK
1674Common Ignore
1675Does nothing. Preserved for backward compatibility.
98af4c9f 1676
b60cc080 1677floop-nest-optimize
84c36240 1678Common Report Var(flag_loop_nest_optimize) Optimization
e357a5e0 1679Enable the loop nest optimizer.
b60cc080 1680
6a78b724 1681fstrict-volatile-bitfields
b16650ac 1682Common Report Var(flag_strict_volatile_bitfields) Init(-1) Optimization
a7b2e184 1683Force bitfield accesses to match their type width.
6a78b724 1684
f663d9ad
KT
1685fstore-merging
1686Common Report Var(flag_store_merging) Optimization
1687Merge adjacent stores.
1688
6ff3a151 1689fguess-branch-probability
c662432e 1690Common Report Var(flag_guess_branch_prob) Optimization
a7b2e184 1691Enable guessing of branch probabilities.
6ff3a151 1692
31b66477
KC
1693; Nonzero means ignore `#ident' directives. 0 means handle them.
1694; Generate position-independent code for executables if possible
1695; On SVR4 targets, it also controls whether or not to emit a
1696; string identifying the compiler.
6ff3a151 1697fident
50431bc4 1698Common Report Var(flag_no_ident,0)
a7b2e184 1699Process #ident directives.
6ff3a151 1700
de32c0cb 1701fif-conversion
c662432e 1702Common Report Var(flag_if_conversion) Optimization
a7b2e184 1703Perform conversion of conditional jumps to branchless equivalents.
de32c0cb
NB
1704
1705fif-conversion2
c662432e 1706Common Report Var(flag_if_conversion2) Optimization
a7b2e184 1707Perform conversion of conditional jumps to conditional execution.
de32c0cb 1708
87e2a8fd 1709fstack-reuse=
082908e3 1710Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
6a825afe 1711-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
87e2a8fd
XDL
1712
1713Enum
1714Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1715
1716EnumValue
1717Enum(stack_reuse_level) String(all) Value(SR_ALL)
1718
1719EnumValue
1720Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1721
1722EnumValue
1723Enum(stack_reuse_level) String(none) Value(SR_NONE)
1724
384a5197
SP
1725ftree-loop-if-convert
1726Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
a7b2e184 1727Convert conditional jumps in innermost loops to branchless equivalents.
384a5197 1728
bd544141 1729ftree-loop-if-convert-stores
bef69eb5
RB
1730Common Ignore
1731Does nothing. Preserved for backward compatibility.
bd544141 1732
31b66477
KC
1733; -finhibit-size-directive inhibits output of .size for ELF.
1734; This is used only for compiling crtstuff.c,
1735; and it may be extended to other effects
1736; needed for crtstuff.c on other systems.
6ff3a151 1737finhibit-size-directive
50431bc4 1738Common Report Var(flag_inhibit_size_directive)
a7b2e184 1739Do not generate .size directives.
6ff3a151 1740
3e293154 1741findirect-inlining
2bf86c84 1742Common Report Var(flag_indirect_inlining) Optimization
a7b2e184 1743Perform indirect inlining.
3e293154 1744
99ea07f8
RG
1745; General flag to enable inlining. Specifying -fno-inline will disable
1746; all inlining apart from always-inline functions.
de32c0cb 1747finline
0f042bc5 1748Common Report Var(flag_no_inline,0) Init(0) Optimization
a7b2e184 1749Enable inlining of function declared \"inline\", disabling disables all inlining.
de32c0cb 1750
4d4b8cb9
JH
1751finline-small-functions
1752Common Report Var(flag_inline_small_functions) Optimization
a7b2e184 1753Integrate functions into their callers when code size is known not to grow.
4d4b8cb9 1754
de32c0cb 1755finline-functions
c662432e 1756Common Report Var(flag_inline_functions) Optimization
a7b2e184 1757Integrate functions not declared \"inline\" into their callers when profitable.
de32c0cb 1758
355866de 1759finline-functions-called-once
fb37c1de 1760Common Report Var(flag_inline_functions_called_once) Optimization
a7b2e184 1761Integrate functions only required by their single caller.
d63db217 1762
d302c9d6 1763finline-limit-
5de8299c 1764Common RejectNegative Joined Alias(finline-limit=)
d302c9d6
NB
1765
1766finline-limit=
1767Common RejectNegative Joined UInteger
a7b2e184 1768-finline-limit=<number> Limit the size of inlined functions to <number>.
d302c9d6 1769
86951993
AM
1770finline-atomics
1771Common Report Var(flag_inline_atomics) Init(1) Optimization
1772Inline __atomic operations when a lock free instruction sequence is available.
1773
5c5f0b65
IT
1774fcf-protection
1775Common RejectNegative Alias(fcf-protection=,full)
1776
1777fcf-protection=
1778Common Report Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
c4c22e83 1779-fcf-protection=[full|branch|return|none|check] Instrument functions with checks to verify jump/call/return control-flow transfer
5c5f0b65
IT
1780instructions have valid targets.
1781
1782Enum
cefc0906 1783Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
5c5f0b65
IT
1784
1785EnumValue
1786Enum(cf_protection_level) String(full) Value(CF_FULL)
1787
1788EnumValue
1789Enum(cf_protection_level) String(branch) Value(CF_BRANCH)
1790
1791EnumValue
1792Enum(cf_protection_level) String(return) Value(CF_RETURN)
1793
c4c22e83
L
1794EnumValue
1795Enum(cf_protection_level) String(check) Value(CF_CHECK)
1796
5c5f0b65
IT
1797EnumValue
1798Enum(cf_protection_level) String(none) Value(CF_NONE)
1799
6ff3a151 1800finstrument-functions
50431bc4 1801Common Report Var(flag_instrument_function_entry_exit)
a7b2e184 1802Instrument function entry and exit with profiling calls.
6ff3a151 1803
8d5a7d1f
ILT
1804finstrument-functions-exclude-function-list=
1805Common RejectNegative Joined
b408e010 1806-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions.
8d5a7d1f
ILT
1807
1808finstrument-functions-exclude-file-list=
1809Common RejectNegative Joined
b408e010 1810-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files.
8d5a7d1f 1811
d6e14e8f 1812fipa-cp
c662432e 1813Common Report Var(flag_ipa_cp) Optimization
a7b2e184 1814Perform interprocedural constant propagation.
d6e14e8f 1815
5e45130d
JH
1816fipa-cp-clone
1817Common Report Var(flag_ipa_cp_clone) Optimization
a7b2e184 1818Perform cloning to make Interprocedural constant propagation stronger.
5e45130d 1819
3c99176a 1820fipa-cp-alignment
78117646
MJ
1821Common Ignore
1822Does nothing. Preserved for backward compatibility.
3c99176a 1823
209ca542
PK
1824fipa-bit-cp
1825Common Report Var(flag_ipa_bit_cp) Optimization
1826Perform interprocedural bitwise constant propagation.
1827
d119f34c
JH
1828fipa-modref
1829Common Report Var(flag_ipa_modref) Optimization
466b907f 1830Perform interprocedural modref analysis.
d119f34c 1831
e65bb9be
JH
1832fipa-profile
1833Common Report Var(flag_ipa_profile) Init(0) Optimization
a7b2e184 1834Perform interprocedural profile propagation.
ea900239 1835
4cf4d6a3 1836fipa-pta
c662432e 1837Common Report Var(flag_ipa_pta) Init(0) Optimization
a7b2e184 1838Perform interprocedural points-to analysis.
4cf4d6a3 1839
e65bb9be
JH
1840fipa-pure-const
1841Common Report Var(flag_ipa_pure_const) Init(0) Optimization
a7b2e184 1842Discover pure and const functions.
e65bb9be 1843
b84d4347
ML
1844fipa-icf
1845Common Report Var(flag_ipa_icf) Optimization
a7b2e184 1846Perform Identical Code Folding for functions and read-only variables.
b84d4347
ML
1847
1848fipa-icf-functions
1849Common Report Var(flag_ipa_icf_functions) Optimization
a7b2e184 1850Perform Identical Code Folding for functions.
b84d4347
ML
1851
1852fipa-icf-variables
b93ee1bb 1853Common Report Var(flag_ipa_icf_variables) Optimization
a7b2e184 1854Perform Identical Code Folding for variables.
b84d4347 1855
ea900239 1856fipa-reference
c662432e 1857Common Report Var(flag_ipa_reference) Init(0) Optimization
2e14744f
ML
1858Discover read-only and non addressable static variables.
1859
1860fipa-reference-addressable
1861Common Report Var(flag_ipa_reference_addressable) Init(0) Optimization
1862Discover read-only, write-only and non-addressable static variables.
ea900239 1863
47b840eb
ML
1864fipa-stack-alignment
1865Common Report Var(flag_ipa_stack_alignment) Init(1) Optimization
1866Reduce stack alignment on call sites if possible.
1867
43d861a5 1868fipa-matrix-reorg
04f92ff4
RG
1869Common Ignore
1870Does nothing. Preserved for backward compatibility.
43d861a5 1871
e1dc98b2 1872fipa-struct-reorg
b8beb4d1
RG
1873Common Ignore
1874Does nothing. Preserved for backward compatibility.
e1dc98b2 1875
8bc5448f
KV
1876fipa-vrp
1877Common Report Var(flag_ipa_vrp) Optimization
1878Perform IPA Value Range Propagation.
1879
058e97ec 1880fira-algorithm=
b16650ac 1881Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
6a825afe 1882-fira-algorithm=[CB|priority] Set the used IRA algorithm.
7db7ed3c 1883
e6d4b984
JM
1884Enum
1885Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1886
1887EnumValue
1888Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1889
1890EnumValue
1891Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1892
7db7ed3c 1893fira-region=
b16650ac 1894Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT) Optimization
6a825afe 1895-fira-region=[one|all|mixed] Set regions for IRA.
058e97ec 1896
e6d4b984
JM
1897Enum
1898Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1899
1900EnumValue
1901Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1902
1903EnumValue
1904Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1905
1906EnumValue
1907Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1908
b11f0116
BC
1909fira-hoist-pressure
1910Common Report Var(flag_ira_hoist_pressure) Init(1) Optimization
1911Use IRA based register pressure calculation
1912in RTL hoist optimizations.
1913
1833192f 1914fira-loop-pressure
f3d83ffe 1915Common Report Var(flag_ira_loop_pressure) Optimization
1833192f
VM
1916Use IRA based register pressure calculation
1917in RTL loop optimizations.
1918
058e97ec 1919fira-share-save-slots
b16650ac 1920Common Report Var(flag_ira_share_save_slots) Init(1) Optimization
058e97ec
VM
1921Share slots for saving different hard registers.
1922
1923fira-share-spill-slots
b16650ac 1924Common Report Var(flag_ira_share_spill_slots) Init(1) Optimization
058e97ec
VM
1925Share stack slots for spilled pseudo-registers.
1926
1927fira-verbose=
5498f011 1928Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
f94e1d66 1929-fira-verbose=<number> Control IRA's level of diagnostic messages.
058e97ec 1930
8b11a64c 1931fivopts
c662432e 1932Common Report Var(flag_ivopts) Init(1) Optimization
a7b2e184 1933Optimize induction variables on trees.
8b11a64c 1934
82c0180d 1935fjump-tables
c662432e 1936Common Var(flag_jump_tables) Init(1) Optimization
a7b2e184 1937Use jump tables for sufficiently large switch statements.
82c0180d 1938
de32c0cb 1939fkeep-inline-functions
50431bc4 1940Common Report Var(flag_keep_inline_functions)
a7b2e184 1941Generate code for functions even if they are fully inlined.
de32c0cb 1942
787da5fd
JV
1943fkeep-static-functions
1944Common Report Var(flag_keep_static_functions)
a7b2e184 1945Generate code for static functions even if they are never called.
787da5fd 1946
de32c0cb 1947fkeep-static-consts
50431bc4 1948Common Report Var(flag_keep_static_consts) Init(1)
a7b2e184 1949Emit static const variables even if they are not used.
de32c0cb 1950
6ff3a151 1951fleading-underscore
50431bc4 1952Common Report Var(flag_leading_underscore) Init(-1)
a7b2e184 1953Give external symbols a leading underscore.
6ff3a151 1954
efa1cdf0 1955floop-optimize
2d2bd949 1956Common Ignore
c0220ea4 1957Does nothing. Preserved for backward compatibility.
efa1cdf0 1958
d9cf932c
VM
1959flra-remat
1960Common Report Var(flag_lra_remat) Optimization
a7b2e184 1961Do CFG-sensitive rematerialization in LRA.
d9cf932c 1962
d7f09764 1963flto
014d92e1 1964Common
d7f09764
DN
1965Enable link-time optimization.
1966
014d92e1
JH
1967flto=
1968Common RejectNegative Joined Var(flag_lto)
1969Link-time optimization with number of parallel jobs or jobserver.
1970
783dab6b
RB
1971Enum
1972Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
852e4bd2 1973
783dab6b
RB
1974EnumValue
1975Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
852e4bd2 1976
783dab6b
RB
1977EnumValue
1978Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
1979
1980EnumValue
1981Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
1982
1983EnumValue
1984Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
1985
1986EnumValue
1987Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
c3c445e1 1988
783dab6b
RB
1989flto-partition=
1990Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
a7b2e184 1991Specify the algorithm to partition symbols and vars at linktime.
014d92e1 1992
d7f09764
DN
1993; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1994flto-compression-level=
87741e51
ML
1995Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 19)
1996-flto-compression-level=<number> Use zlib/zstd compression level <number> for IL.
d7f09764 1997
1ee85ee1 1998flto-odr-type-merging
686a56a8
JH
1999Common Ignore
2000Does nothing. Preserved for backward compatibility.
1ee85ee1 2001
d7f09764 2002flto-report
1d67dde8 2003Common Report Var(flag_lto_report) Init(0)
a7b2e184 2004Report various link-time optimization statistics.
d7f09764 2005
057f8f20
AK
2006flto-report-wpa
2007Common Report Var(flag_lto_report_wpa) Init(0)
a7b2e184 2008Report various link-time optimization statistics for WPA only.
057f8f20 2009
6ff3a151 2010fmath-errno
5e46b0c6 2011Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined
a7b2e184 2012Set errno after built-in math functions.
6ff3a151 2013
3a789837
NF
2014fmax-errors=
2015Common Joined RejectNegative UInteger Var(flag_max_errors)
a7b2e184 2016-fmax-errors=<number> Maximum number of errors to report.
3a789837 2017
6ff3a151 2018fmem-report
50431bc4 2019Common Report Var(mem_report)
a7b2e184 2020Report on permanent memory allocation.
6ff3a151 2021
b3e44629
AK
2022fmem-report-wpa
2023Common Report Var(mem_report_wpa)
a7b2e184 2024Report on permanent memory allocation in WPA only.
b3e44629 2025
31b66477
KC
2026; This will attempt to merge constant section constants, if 1 only
2027; string constants and constants from constant pool, if 2 also constant
2028; variables.
6ff3a151 2029fmerge-all-constants
0a7246ee 2030Common Report Var(flag_merge_constants,2) Init(1)
a7b2e184 2031Attempt to merge identical constants and constant variables.
6ff3a151
NB
2032
2033fmerge-constants
0a7246ee 2034Common Report Var(flag_merge_constants,1)
a7b2e184 2035Attempt to merge identical constants across compilation units.
6ff3a151 2036
28a08168
ILT
2037fmerge-debug-strings
2038Common Report Var(flag_merge_debug_strings) Init(1)
a7b2e184 2039Attempt to merge identical debug strings across compilation units.
28a08168 2040
de32c0cb
NB
2041fmessage-length=
2042Common RejectNegative Joined UInteger
a7b2e184 2043-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping.
de32c0cb 2044
e5626198 2045fmodulo-sched
c662432e 2046Common Report Var(flag_modulo_sched) Optimization
a7b2e184 2047Perform SMS based modulo scheduling before the first scheduling pass.
e5626198 2048
517d76fa 2049fmodulo-sched-allow-regmoves
b16650ac 2050Common Report Var(flag_modulo_sched_allow_regmoves) Optimization
a7b2e184 2051Perform SMS based modulo scheduling with register moves allowed.
517d76fa 2052
5e962776 2053fmove-loop-invariants
14379e66 2054Common Report Var(flag_move_loop_invariants) Optimization
a7b2e184 2055Move loop invariant computations out of loops.
5e962776 2056
6fb5fa3c 2057fdce
6ae4be32 2058Common Var(flag_dce) Init(1) Optimization
a7b2e184 2059Use the RTL dead code elimination pass.
6fb5fa3c
DB
2060
2061fdse
c0fe6bce 2062Common Var(flag_dse) Init(0) Optimization
a7b2e184 2063Use the RTL dead store elimination pass.
6fb5fa3c 2064
d72372e4 2065freschedule-modulo-scheduled-loops
c662432e 2066Common Report Var(flag_resched_modulo_sched) Optimization
a7b2e184 2067Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
d72372e4 2068
6ff3a151 2069fnon-call-exceptions
c662432e 2070Common Report Var(flag_non_call_exceptions) Optimization
a7b2e184 2071Support synchronous non-call exceptions.
6ff3a151 2072
c713ddc0
BS
2073foffload=
2074Common Driver Joined MissingArgError(options or targets missing after %qs)
b408e010 2075-foffload=<targets>=<options> Specify offloading targets and options for them.
c713ddc0
BS
2076
2077foffload-abi=
2078Common Joined RejectNegative Enum(offload_abi) Var(flag_offload_abi) Init(OFFLOAD_ABI_UNSET)
b408e010 2079-foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler.
c713ddc0
BS
2080
2081Enum
2082Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
2083
2084EnumValue
2085Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
2086
2087EnumValue
2088Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
2089
de32c0cb 2090fomit-frame-pointer
c662432e 2091Common Report Var(flag_omit_frame_pointer) Optimization
a7b2e184 2092When possible do not generate stack frames.
de32c0cb 2093
78c60e3d
SS
2094fopt-info
2095Common Report Var(flag_opt_info) Optimization
a7b2e184 2096Enable all optimization info dumps on stderr.
78c60e3d
SS
2097
2098fopt-info-
2099Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 2100-fopt-info[-<type>=filename] Dump compiler optimization details.
78c60e3d 2101
4a4412b9
DM
2102fsave-optimization-record
2103Common Report Var(flag_save_optimization_record) Optimization
2104Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
2105
6ff3a151 2106foptimize-register-move
3b6d1699
VM
2107Common Ignore
2108Does nothing. Preserved for backward compatibility.
6ff3a151 2109
de32c0cb 2110foptimize-sibling-calls
c662432e 2111Common Report Var(flag_optimize_sibling_calls) Optimization
a7b2e184 2112Optimize sibling and tail recursive calls.
de32c0cb 2113
3e485f62 2114fpartial-inlining
b16650ac 2115Common Report Var(flag_partial_inlining) Optimization
a7b2e184 2116Perform partial inlining.
3e485f62 2117
a5573239
JH
2118fpre-ipa-mem-report
2119Common Report Var(pre_ipa_mem_report)
a7b2e184 2120Report on memory allocation before interprocedural optimization.
a5573239
JH
2121
2122fpost-ipa-mem-report
2123Common Report Var(post_ipa_mem_report)
a7b2e184 2124Report on memory allocation before interprocedural optimization.
a5573239 2125
6ff3a151 2126fpack-struct
c662432e 2127Common Report Var(flag_pack_struct) Optimization
a7b2e184 2128Pack structure members together without holes.
6ff3a151 2129
467cecf3 2130fpack-struct=
c662432e 2131Common RejectNegative Joined UInteger Optimization
a7b2e184 2132-fpack-struct=<number> Set initial maximum structure member alignment.
467cecf3 2133
de32c0cb 2134fpcc-struct-return
5498f011 2135Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
a7b2e184 2136Return small aggregates in memory, not registers.
de32c0cb
NB
2137
2138fpeel-loops
c662432e 2139Common Report Var(flag_peel_loops) Optimization
a7b2e184 2140Perform loop peeling.
de32c0cb
NB
2141
2142fpeephole
c662432e 2143Common Report Var(flag_no_peephole,0) Optimization
a7b2e184 2144Enable machine specific peephole optimizations.
de32c0cb 2145
6ff3a151 2146fpeephole2
c662432e 2147Common Report Var(flag_peephole2) Optimization
a7b2e184 2148Enable an RTL peephole pass before sched2.
6ff3a151 2149
31b66477 2150fPIC
b57e6e18 2151Common Report Var(flag_pic,2) Negative(fPIE) Init(-1)
a7b2e184 2152Generate position-independent code if possible (large mode).
31b66477
KC
2153
2154fPIE
428b3812 2155Common Report Var(flag_pie,2) Negative(fpic) Init(-1)
a7b2e184 2156Generate position-independent code for executables if possible (large mode).
31b66477 2157
6ff3a151 2158fpic
b57e6e18 2159Common Report Var(flag_pic,1) Negative(fpie) Init(-1)
a7b2e184 2160Generate position-independent code if possible (small mode).
6ff3a151
NB
2161
2162fpie
428b3812 2163Common Report Var(flag_pie,1) Negative(fPIC) Init(-1)
a7b2e184 2164Generate position-independent code for executables if possible (small mode).
6ff3a151 2165
b91fd3c7
AM
2166fplt
2167Common Report Var(flag_plt) Init(1) Optimization
a7b2e184 2168Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
b91fd3c7 2169
68a607d8 2170fplugin=
21bf1558 2171Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 2172Specify a plugin to load.
68a607d8
DN
2173
2174fplugin-arg-
21bf1558 2175Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 2176-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>.
68a607d8 2177
bbc8a8dc 2178fpredictive-commoning
6ae4be32 2179Common Report Var(flag_predictive_commoning) Optimization
bbc8a8dc
ZD
2180Run predictive commoning optimization.
2181
de32c0cb 2182fprefetch-loop-arrays
1fbb509a 2183Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
a7b2e184 2184Generate prefetch instructions, if available, for arrays in loops.
de32c0cb 2185
6ff3a151 2186fprofile
50431bc4 2187Common Report Var(profile_flag)
a7b2e184 2188Enable basic program profiling code.
6ff3a151 2189
676519f7
BE
2190fprofile-abs-path
2191Common Report Var(profile_abs_path_flag)
2192Generate absolute source path names for gcov.
2193
6ff3a151 2194fprofile-arcs
50431bc4 2195Common Report Var(profile_arc_flag)
a7b2e184 2196Insert arc-based program profiling code.
6ff3a151 2197
2f908293 2198fprofile-dir=
0576d21f 2199Common Joined RejectNegative Var(profile_data_prefix)
2f908293
SP
2200Set the top-level directory for storing the profile data.
2201The default is 'pwd'.
2202
8e37c995
ML
2203fprofile-note=
2204Common Joined RejectNegative Var(profile_note_location)
2205Select the name for storing the profile note file.
2206
52c76998
PY
2207fprofile-correction
2208Common Report Var(flag_profile_correction)
a7b2e184 2209Enable correction of flow inconsistent profile data input.
52c76998 2210
22063dbc
ML
2211fprofile-update=
2212Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
4d209853 2213-fprofile-update=[single|atomic|prefer-atomic] Set the profile update method.
22063dbc 2214
e18240ff
ML
2215fprofile-filter-files=
2216Common Joined RejectNegative Var(flag_profile_filter_files)
8ca43e4e 2217Instrument only functions from files whose name matches any of the regular expressions (separated by semi-colons).
e18240ff
ML
2218
2219fprofile-exclude-files=
2220Common Joined RejectNegative Var(flag_profile_exclude_files)
8ca43e4e 2221Instrument only functions from files whose name does not match any of the regular expressions (separated by semi-colons).
e18240ff 2222
ea0b1252
ML
2223Enum
2224Name(profile_reproducibility) Type(enum profile_reproducibility) UnknownError(unknown profile reproducibility method %qs)
2225
2226EnumValue
2227Enum(profile_reproducibility) String(serial) Value(PROFILE_REPRODUCIBILITY_SERIAL)
2228
2229EnumValue
2230Enum(profile_reproducibility) String(parallel-runs) Value(PROFILE_REPRODUCIBILITY_PARALLEL_RUNS)
2231
2232EnumValue
2233Enum(profile_reproducibility) String(multithreaded) Value(PROFILE_REPRODUCIBILITY_MULTITHREADED)
2234
2235fprofile-reproducible
2236Common Joined RejectNegative Var(flag_profile_reproducible) Enum(profile_reproducibility) Init(PROFILE_REPRODUCIBILITY_SERIAL)
b408e010 2237-fprofile-reproducible=[serial|parallel-runs|multithreaded] Control level of reproducibility of profile gathered by -fprofile-generate.
ea0b1252 2238
22063dbc
ML
2239Enum
2240Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
2241
2242EnumValue
2243Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
2244
2245EnumValue
2246Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
2247
4d209853
ML
2248EnumValue
2249Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC)
2250
44b32683
JH
2251fprofile-prefix-path=
2252Common Joined RejectNegative Var(profile_prefix_path)
850322df 2253Remove prefix from absolute path before mangling name for -fprofile-generate= and -fprofile-use=.
44b32683 2254
a8a5f53a
JH
2255fprofile-generate
2256Common
a7b2e184 2257Enable common options for generating profile info for profile feedback directed optimizations.
a8a5f53a 2258
2f908293
SP
2259fprofile-generate=
2260Common Joined RejectNegative
a7b2e184 2261Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
2f908293 2262
34fbe3f0
JH
2263fprofile-partial-training
2264Common Report Var(flag_profile_partial_training) Optimization
c86b722b 2265Do not assume that functions never executed during the train run are cold.
34fbe3f0 2266
a8a5f53a 2267fprofile-use
2f908293 2268Common Var(flag_profile_use)
a7b2e184 2269Enable common options for performing profile feedback directed optimizations.
a8a5f53a 2270
2f908293
SP
2271fprofile-use=
2272Common Joined RejectNegative
a7b2e184 2273Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
2f908293 2274
fca9dc00 2275fprofile-values
50431bc4 2276Common Report Var(flag_profile_values)
a7b2e184 2277Insert code to profile values of expressions.
fca9dc00 2278
37e5402b
JH
2279fprofile-report
2280Common Report Var(profile_report)
a7b2e184 2281Report on consistency of profile.
37e5402b 2282
9cec31f4 2283fprofile-reorder-functions
ad74bc8c 2284Common Report Var(flag_profile_reorder_functions) Optimization
a7b2e184 2285Enable function reordering that improves code placement.
9cec31f4 2286
417ca011
TD
2287fpatchable-function-entry=
2288Common Joined Optimization
2289Insert NOP instructions at each function entry.
2290
de32c0cb 2291frandom-seed
299404a1 2292Common Var(common_deferred_options) Defer
de32c0cb
NB
2293
2294frandom-seed=
299404a1 2295Common Joined RejectNegative Var(common_deferred_options) Defer
4bfede85 2296-frandom-seed=<string> Make compile reproducible using <string>.
de32c0cb 2297
e0d9d0dd
NC
2298; This switch causes the command line that was used to create an
2299; object file to be recorded into the object file. The exact format
2300; of this recording is target and binary file format dependent.
2301; It is related to the -fverbose-asm switch, but that switch only
2302; records information in the assembler output file as comments, so
2303; they never reach the object file.
2304frecord-gcc-switches
2305Common Report Var(flag_record_gcc_switches)
2306Record gcc command line switches in the object file.
2307
de32c0cb 2308freg-struct-return
f0036cca 2309Common Report Var(flag_pcc_struct_return,0) Optimization
a7b2e184 2310Return small aggregates in registers.
de32c0cb 2311
6ff3a151 2312fregmove
3b6d1699
VM
2313Common Ignore
2314Does nothing. Preserved for backward compatibility.
6ff3a151 2315
f522930c 2316flifetime-dse
a021961c 2317Common Report Var(flag_lifetime_dse,2) Init(2) Optimization
f522930c
JM
2318Tell DSE that the storage for a C++ object is dead when the constructor
2319starts and when the destructor finishes.
2320
a021961c 2321flifetime-dse=
63010089 2322Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
a021961c 2323
6fd6a2ff
QZ
2324flive-patching
2325Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
2326
2327flive-patching=
2328Common Report Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization
2329-flive-patching=[inline-only-static|inline-clone] Control IPA
2330optimizations to provide a safe compilation for live-patching. At the same
2331time, provides multiple-level control on the enabled IPA optimizations.
2332
2333Enum
2334Name(live_patching_level) Type(enum live_patching_level) UnknownError(unknown Live-Patching Level %qs)
2335
2336EnumValue
2337Enum(live_patching_level) String(inline-only-static) Value(LIVE_PATCHING_INLINE_ONLY_STATIC)
2338
2339EnumValue
2340Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE)
2341
6343b6bf
ML
2342fallocation-dce
2343Common Report Var(flag_allocation_dce) Init(1) Optimization
2344Tell DCE to remove unused C++ allocations.
2345
f20f2613
VM
2346flive-range-shrinkage
2347Common Report Var(flag_live_range_shrinkage) Init(0) Optimization
a7b2e184 2348Relief of register pressure through live range shrinkage.
f20f2613 2349
6ff3a151 2350frename-registers
c662432e 2351Common Report Var(flag_rename_registers) Init(2) Optimization
a7b2e184 2352Perform a register renaming optimization pass.
6ff3a151 2353
b16abbcb
BC
2354fschedule-fusion
2355Common Report Var(flag_schedule_fusion) Init(2) Optimization
a7b2e184 2356Perform a target dependent instruction fusion optimization pass.
b16abbcb 2357
6ff3a151 2358freorder-blocks
c662432e 2359Common Report Var(flag_reorder_blocks) Optimization
a7b2e184 2360Reorder basic blocks to improve code placement.
6ff3a151 2361
59faab7c
SB
2362freorder-blocks-algorithm=
2363Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
6a825afe 2364-freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
59faab7c
SB
2365
2366Enum
2367Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2368
2369EnumValue
2370Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2371
2372EnumValue
2373Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
2374
750054a2 2375freorder-blocks-and-partition
c662432e 2376Common Report Var(flag_reorder_blocks_and_partition) Optimization
a7b2e184 2377Reorder basic blocks and partition into hot and cold sections.
750054a2 2378
6ff3a151 2379freorder-functions
c662432e 2380Common Report Var(flag_reorder_functions) Optimization
a7b2e184 2381Reorder functions to improve code placement.
6ff3a151 2382
de32c0cb 2383frerun-cse-after-loop
3020190e 2384Common Report Var(flag_rerun_cse_after_loop) Optimization
a7b2e184 2385Add a common subexpression elimination pass after loop optimizations.
de32c0cb 2386
efa1cdf0 2387frerun-loop-opt
2d2bd949 2388Common Ignore
c0220ea4 2389Does nothing. Preserved for backward compatibility.
efa1cdf0 2390
039c3d42 2391frounding-math
5e46b0c6 2392Common Report Var(flag_rounding_math) Optimization SetByCombined
a7b2e184 2393Disable optimizations that assume default FP rounding behavior.
039c3d42 2394
6ff3a151 2395fsched-interblock
c662432e 2396Common Report Var(flag_schedule_interblock) Init(1) Optimization
a7b2e184 2397Enable scheduling across basic blocks.
6ff3a151 2398
ce18efcb
VM
2399fsched-pressure
2400Common Report Var(flag_sched_pressure) Init(0) Optimization
a7b2e184 2401Enable register pressure sensitive insn scheduling.
ce18efcb 2402
6ff3a151 2403fsched-spec
c662432e 2404Common Report Var(flag_schedule_speculative) Init(1) Optimization
a7b2e184 2405Allow speculative motion of non-loads.
6ff3a151
NB
2406
2407fsched-spec-load
c662432e 2408Common Report Var(flag_schedule_speculative_load) Optimization
a7b2e184 2409Allow speculative motion of some loads.
6ff3a151
NB
2410
2411fsched-spec-load-dangerous
c662432e 2412Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
a7b2e184 2413Allow speculative motion of more loads.
6ff3a151 2414
de32c0cb 2415fsched-verbose=
4111f1c9 2416Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
a7b2e184 2417-fsched-verbose=<number> Set the verbosity level of the scheduler.
de32c0cb 2418
6ff3a151 2419fsched2-use-superblocks
c662432e 2420Common Report Var(flag_sched2_use_superblocks) Optimization
a7b2e184 2421If scheduling post reload, do superblock scheduling.
6ff3a151
NB
2422
2423fsched2-use-traces
2d2bd949 2424Common Ignore
57257f0d 2425Does nothing. Preserved for backward compatibility.
6ff3a151 2426
de32c0cb 2427fschedule-insns
c662432e 2428Common Report Var(flag_schedule_insns) Optimization
a7b2e184 2429Reschedule instructions before register allocation.
de32c0cb
NB
2430
2431fschedule-insns2
c662432e 2432Common Report Var(flag_schedule_insns_after_reload) Optimization
a7b2e184 2433Reschedule instructions after register allocation.
de32c0cb 2434
e855c69d
AB
2435; This flag should be on when a target implements non-trivial
2436; scheduling hooks, maybe saving some information for its own sake.
a7b2e184 2437; On IA64, for example, this is used for correct bundling.
e855c69d
AB
2438fselective-scheduling
2439Common Report Var(flag_selective_scheduling) Optimization
a7b2e184 2440Schedule instructions using selective scheduling algorithm.
e855c69d
AB
2441
2442fselective-scheduling2
a7b2e184
MS
2443Common Report Var(flag_selective_scheduling2) Optimization
2444Run selective scheduling after reload.
e855c69d 2445
ecfc21ff
DM
2446fself-test=
2447Common Undocumented Joined Var(flag_self_test)
2448Run self-tests, using the given path to locate test files.
d9b950dd 2449
e855c69d
AB
2450fsel-sched-pipelining
2451Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
a7b2e184 2452Perform software pipelining of inner loops during selective scheduling.
e855c69d
AB
2453
2454fsel-sched-pipelining-outer-loops
2455Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
a7b2e184 2456Perform software pipelining of outer loops during selective scheduling.
e855c69d
AB
2457
2458fsel-sched-reschedule-pipelined
2459Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
a7b2e184 2460Reschedule pipelined regions without pipelining.
e855c69d 2461
e288a46c
JH
2462fsemantic-interposition
2463Common Report Var(flag_semantic_interposition) Init(1)
a7b2e184 2464Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
e288a46c 2465
31b66477
KC
2466; sched_stalled_insns means that insns can be moved prematurely from the queue
2467; of stalled insns into the ready list.
569fa502 2468fsched-stalled-insns
ab442df7 2469Common Report Var(flag_sched_stalled_insns) Optimization UInteger
a7b2e184 2470Allow premature scheduling of queued insns.
569fa502
DN
2471
2472fsched-stalled-insns=
b16650ac 2473Common RejectNegative Joined UInteger Optimization
a7b2e184 2474-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled.
569fa502 2475
31b66477
KC
2476; sched_stalled_insns_dep controls how many recently scheduled cycles will
2477; be examined for a dependency on a stalled insn that is candidate for
2478; premature removal from the queue of stalled insns into the ready list (has
2479; an effect only if the flag 'sched_stalled_insns' is set).
569fa502 2480fsched-stalled-insns-dep
ab442df7 2481Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
a7b2e184 2482Set dependence distance checking in premature scheduling of queued insns.
569fa502
DN
2483
2484fsched-stalled-insns-dep=
b16650ac 2485Common RejectNegative Joined UInteger Optimization
a7b2e184 2486-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns.
569fa502 2487
ee4764a8
GS
2488fsched-group-heuristic
2489Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
a7b2e184 2490Enable the group heuristic in the scheduler.
ee4764a8
GS
2491
2492fsched-critical-path-heuristic
2493Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
a7b2e184 2494Enable the critical path heuristic in the scheduler.
ee4764a8
GS
2495
2496fsched-spec-insn-heuristic
2497Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
a7b2e184 2498Enable the speculative instruction heuristic in the scheduler.
ee4764a8 2499
ee4764a8
GS
2500fsched-rank-heuristic
2501Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
a7b2e184 2502Enable the rank heuristic in the scheduler.
ee4764a8
GS
2503
2504fsched-last-insn-heuristic
2505Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
a7b2e184 2506Enable the last instruction heuristic in the scheduler.
ee4764a8
GS
2507
2508fsched-dep-count-heuristic
2509Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
a7b2e184 2510Enable the dependent count heuristic in the scheduler.
ee4764a8 2511
aacd3885 2512fsection-anchors
c662432e 2513Common Report Var(flag_section_anchors) Optimization
a7b2e184 2514Access data in the same section from shared anchor points.
aacd3885 2515
8cd37d0b 2516fsee
2d2bd949 2517Common Ignore
8393a9c8 2518Does nothing. Preserved for backward compatibility.
8cd37d0b 2519
87a0ebfd 2520fzee
26cd9add
EI
2521Common Ignore
2522Does nothing. Preserved for backward compatibility.
2523
2524free
a86689f5 2525Common Report Var(flag_ree) Init(0) Optimization
26cd9add 2526Turn on Redundant Extensions Elimination pass.
87a0ebfd 2527
8abb6b22 2528fshow-column
1cb42611 2529Common Report Var(flag_show_column) Init(1)
a7b2e184 2530Show column numbers in diagnostics, when available. Default on.
8abb6b22 2531
484db665
BS
2532fshrink-wrap
2533Common Report Var(flag_shrink_wrap) Optimization
2534Emit function prologues only before parts of the function that need it,
2535rather than at the top of the function.
2536
20a6ece0
SB
2537fshrink-wrap-separate
2538Common Report Var(flag_shrink_wrap_separate) Init(1) Optimization
2539Shrink-wrap parts of the prologue and epilogue separately.
2540
6ff3a151 2541fsignaling-nans
5e46b0c6 2542Common Report Var(flag_signaling_nans) Optimization SetByCombined
a7b2e184 2543Disable optimizations observable by IEEE signaling NaNs.
6ff3a151 2544
db02da79 2545fsigned-zeros
5e46b0c6 2546Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined
a7b2e184 2547Disable floating point optimizations that ignore the IEEE signedness of zero.
db02da79 2548
6ff3a151 2549fsingle-precision-constant
c662432e 2550Common Report Var(flag_single_precision_constant) Optimization
a7b2e184 2551Convert floating point constants to single precision constants.
6ff3a151 2552
113d659a 2553fsplit-ivs-in-unroller
c662432e 2554Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
a7b2e184 2555Split lifetimes of induction variables when loops are unrolled.
113d659a 2556
7458026b
ILT
2557fsplit-stack
2558Common Report Var(flag_split_stack) Init(-1)
a7b2e184 2559Generate discontiguous stack frames.
7458026b 2560
e53a16e7 2561fsplit-wide-types
21af5cdf 2562Common Report Var(flag_split_wide_types) Optimization
a7b2e184 2563Split wide types into independent registers.
e53a16e7 2564
b18081df
SB
2565fsplit-wide-types-early
2566Common Report Var(flag_split_wide_types_early) Optimization
2567Split wide types into independent registers earlier.
2568
6a75d560
RS
2569fssa-backprop
2570Common Report Var(flag_ssa_backprop) Init(1) Optimization
2571Enable backward propagation of use properties at the SSA level.
2572
68f6df73
RB
2573fssa-phiopt
2574Common Report Var(flag_ssa_phiopt) Optimization
a7b2e184 2575Optimize conditional patterns using SSA PHI nodes.
68f6df73 2576
98ce9490
TV
2577fstdarg-opt
2578Common Report Var(flag_stdarg_opt) Init(1) Optimization
a7b2e184 2579Optimize amount of stdarg registers saved to stack at start of function.
98ce9490 2580
f37a4f14 2581fvariable-expansion-in-unroller
c662432e 2582Common Report Var(flag_variable_expansion_in_unroller) Optimization
a7b2e184 2583Apply variable expansion when loops are unrolled.
f37a4f14 2584
b38f3813 2585fstack-check=
ee8f15c6 2586Common Report RejectNegative Joined Optimization
a7b2e184 2587-fstack-check=[no|generic|specific] Insert stack checking code into the program.
b38f3813 2588
6ff3a151 2589fstack-check
5de8299c 2590Common Alias(fstack-check=, specific, no)
a7b2e184 2591Insert stack checking code into the program. Same as -fstack-check=specific.
6ff3a151 2592
ee8f15c6
JL
2593fstack-clash-protection
2594Common Report Var(flag_stack_clash_protection) Optimization
2595Insert code to probe each page of stack space as it is allocated to protect
2596from stack-clash style attacks.
2597
de32c0cb 2598fstack-limit
21bf1558 2599Common Var(common_deferred_options) Defer
de32c0cb 2600
058de654 2601fstack-limit-register=
21bf1558 2602Common RejectNegative Joined Var(common_deferred_options) Defer
a7b2e184 2603-fstack-limit-register=<register> Trap if the stack goes past <register>.
058de654
NB
2604
2605fstack-limit-symbol=
21bf1558 2606Common RejectNegative Joined Var(common_deferred_options) Defer
a7b2e184 2607-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.
058de654 2608
7d69de61 2609fstack-protector
5c846a81 2610Common Report Var(flag_stack_protect, 1) Init(-1) Optimization
a7b2e184 2611Use propolice as a stack protection method.
7d69de61
RH
2612
2613fstack-protector-all
5c846a81 2614Common Report RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
a7b2e184 2615Use a stack protection method for every function.
7d69de61 2616
f6bc1c4a 2617fstack-protector-strong
5c846a81 2618Common Report RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
a7b2e184 2619Use a smart stack protection method for certain functions.
f6bc1c4a 2620
5434dc07 2621fstack-protector-explicit
5c846a81 2622Common Report RejectNegative Var(flag_stack_protect, 4) Optimization
a7b2e184 2623Use stack protection method only for functions with the stack_protect attribute.
5434dc07 2624
d3c12306
EB
2625fstack-usage
2626Common RejectNegative Var(flag_stack_usage)
a7b2e184 2627Output stack usage information on a per-function basis.
d3c12306 2628
de32c0cb 2629fstrength-reduce
2d2bd949 2630Common Ignore
c0220ea4 2631Does nothing. Preserved for backward compatibility.
de32c0cb 2632
31b66477
KC
2633; Nonzero if we should do (language-dependent) alias analysis.
2634; Typically, this analysis will assume that expressions of certain
2635; types do not alias expressions of certain other types. Only used
2636; if alias analysis (in general) is enabled.
6ff3a151 2637fstrict-aliasing
c662432e 2638Common Report Var(flag_strict_aliasing) Optimization
a7b2e184 2639Assume strict aliasing rules apply.
6ff3a151 2640
eeef0e45 2641fstrict-overflow
3fccbb9e
JJ
2642Common Report
2643Treat signed overflow as undefined. Negated as -fwrapv -fwrapv-pointer.
eeef0e45 2644
e8053cf5
RH
2645fsync-libcalls
2646Common Report Var(flag_sync_libcalls) Init(1)
a7b2e184 2647Implement __atomic operations via libcalls to legacy __sync functions.
e8053cf5 2648
de32c0cb 2649fsyntax-only
50431bc4 2650Common Report Var(flag_syntax_only)
a7b2e184 2651Check for syntax errors, then stop.
de32c0cb 2652
6ff3a151 2653ftest-coverage
50431bc4 2654Common Report Var(flag_test_coverage)
a7b2e184 2655Create data files needed by \"gcov\".
6ff3a151 2656
de32c0cb 2657fthread-jumps
c662432e 2658Common Report Var(flag_thread_jumps) Optimization
a7b2e184 2659Perform jump threading optimizations.
de32c0cb 2660
6ff3a151 2661ftime-report
50431bc4 2662Common Report Var(time_report)
a7b2e184 2663Report the time taken by each compiler pass.
6ff3a151 2664
8df06bd0
RB
2665ftime-report-details
2666Common Report Var(time_report_details)
2667Record times taken by sub-phases separately.
2668
058de654 2669ftls-model=
e6d4b984 2670Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
a7b2e184 2671-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model.
058de654 2672
e6d4b984
JM
2673Enum
2674Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2675
2676EnumValue
2677Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2678
2679EnumValue
2680Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2681
2682EnumValue
2683Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2684
2685EnumValue
2686Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2687
474eccc6 2688ftoplevel-reorder
ad74bc8c 2689Common Report Var(flag_toplevel_reorder) Init(2) Optimization
a7b2e184 2690Reorder top level functions, variables, and asms.
474eccc6 2691
de32c0cb 2692ftracer
b16650ac 2693Common Report Var(flag_tracer) Optimization
a7b2e184 2694Perform superblock formation via tail duplication.
de32c0cb 2695
4c640e26
EB
2696ftrampolines
2697Common Report Var(flag_trampolines) Init(0)
2698For targets that normally need trampolines for nested functions, always
2699generate them instead of using descriptors.
2700
31b66477
KC
2701; Zero means that floating-point math operations cannot generate a
2702; (user-visible) trap. This is the case, for example, in nonstop
2703; IEEE 754 arithmetic.
6ff3a151 2704ftrapping-math
5e46b0c6 2705Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined
a7b2e184 2706Assume floating-point operations can trap.
6ff3a151
NB
2707
2708ftrapv
c662432e 2709Common Report Var(flag_trapv) Optimization
a7b2e184 2710Trap for signed overflow in addition, subtraction and multiplication.
6ff3a151 2711
6de9cd9a 2712ftree-ccp
c662432e 2713Common Report Var(flag_tree_ccp) Optimization
a7b2e184 2714Enable SSA-CCP optimization on trees.
6de9cd9a 2715
0b4b14ac
RG
2716ftree-bit-ccp
2717Common Report Var(flag_tree_bit_ccp) Optimization
a7b2e184 2718Enable SSA-BIT-CCP optimization on trees.
0b4b14ac 2719
0bca51f0 2720ftree-store-ccp
2d2bd949 2721Common Ignore
dce2b2f6 2722Does nothing. Preserved for backward compatibility.
0bca51f0 2723
6de9cd9a 2724ftree-ch
c662432e 2725Common Report Var(flag_tree_ch) Optimization
a7b2e184 2726Enable loop header copying on trees.
6de9cd9a 2727
21d01365 2728ftree-coalesce-inlined-vars
1f9ceff1
AO
2729Common Ignore RejectNegative
2730Does nothing. Preserved for backward compatibility.
21d01365
AO
2731
2732ftree-coalesce-vars
1f9ceff1 2733Common Report Var(flag_tree_coalesce_vars) Optimization
a7b2e184 2734Enable SSA coalescing of user variables.
21d01365 2735
6de9cd9a 2736ftree-copyrename
1f9ceff1
AO
2737Common Ignore
2738Does nothing. Preserved for backward compatibility.
6de9cd9a 2739
0bca51f0 2740ftree-copy-prop
c662432e 2741Common Report Var(flag_tree_copy_prop) Optimization
a7b2e184 2742Enable copy propagation on trees.
0bca51f0
DN
2743
2744ftree-store-copy-prop
2d2bd949 2745Common Ignore
e9033855 2746Does nothing. Preserved for backward compatibility.
0bca51f0 2747
a5828d1e
MM
2748ftree-cselim
2749Common Report Var(flag_tree_cselim) Init(2) Optimization
a7b2e184 2750Transform condition stores into unconditional ones.
a5828d1e 2751
b6e99746
MJ
2752ftree-switch-conversion
2753Common Report Var(flag_tree_switch_conversion) Optimization
2754Perform conversions of switch initializations.
2755
6de9cd9a 2756ftree-dce
c662432e 2757Common Report Var(flag_tree_dce) Optimization
a7b2e184 2758Enable SSA dead code elimination optimization on trees.
6de9cd9a
DN
2759
2760ftree-dominator-opts
c662432e 2761Common Report Var(flag_tree_dom) Optimization
a7b2e184 2762Enable dominator optimizations.
6de9cd9a 2763
c9e93168
TV
2764ftree-tail-merge
2765Common Report Var(flag_tree_tail_merge) Optimization
a7b2e184 2766Enable tail merging on trees.
c9e93168 2767
6de9cd9a 2768ftree-dse
c662432e 2769Common Report Var(flag_tree_dse) Optimization
a7b2e184 2770Enable dead store elimination.
6de9cd9a 2771
248fc9f3
RG
2772ftree-forwprop
2773Common Report Var(flag_tree_forwprop) Init(1) Optimization
a7b2e184 2774Enable forward propagation on trees.
248fc9f3 2775
ff2ad0f7 2776ftree-fre
c662432e 2777Common Report Var(flag_tree_fre) Optimization
a7b2e184 2778Enable Full Redundancy Elimination (FRE) on trees.
ff2ad0f7 2779
8b57bfeb
JJ
2780foptimize-strlen
2781Common Report Var(flag_optimize_strlen) Optimization
a7b2e184 2782Enable string length optimizations on trees.
8b57bfeb 2783
ae93744d
JL
2784fisolate-erroneous-paths-dereference
2785Common Report Var(flag_isolate_erroneous_paths_dereference) Optimization
408e8aa4
SL
2786Detect paths that trigger erroneous or undefined behavior due to
2787dereferencing a null pointer. Isolate those paths from the main control
2788flow and turn the statement with erroneous or undefined behavior into a trap.
ae93744d
JL
2789
2790fisolate-erroneous-paths-attribute
2791Common Report Var(flag_isolate_erroneous_paths_attribute) Optimization
51956afe 2792Detect paths that trigger erroneous or undefined behavior due to a null value
408e8aa4 2793being used in a way forbidden by a returns_nonnull or nonnull
ae93744d 2794attribute. Isolate those paths from the main control flow and turn the
a7b2e184 2795statement with erroneous or undefined behavior into a trap.
8fdc414d 2796
dea61d92 2797ftree-loop-distribution
53ed2f0e 2798Common Report Var(flag_tree_loop_distribution) Optimization
a7b2e184 2799Enable loop distribution on trees.
dea61d92 2800
20769d5e
SP
2801ftree-loop-distribute-patterns
2802Common Report Var(flag_tree_loop_distribute_patterns) Optimization
a7b2e184 2803Enable loop distribution for patterns transformed into a library call.
20769d5e 2804
1b08d87d 2805ftree-loop-im
c662432e 2806Common Report Var(flag_tree_loop_im) Init(1) Optimization
a7b2e184 2807Enable loop invariant motion on trees.
a7e5372d 2808
599eabdb 2809ftree-loop-linear
d6bb5ccf 2810Common Alias(floop-nest-optimize)
a7b2e184 2811Enable loop nest transforms. Same as -floop-nest-optimize.
599eabdb 2812
1b08d87d 2813ftree-loop-ivcanon
c662432e 2814Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
a7b2e184 2815Create canonical induction variables in loops.
1b08d87d 2816
c66b6c66 2817ftree-loop-optimize
c662432e 2818Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
a7b2e184 2819Enable loop optimizations on tree level.
c66b6c66 2820
5f40b3cb 2821ftree-parallelize-loops=
b16650ac 2822Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
9453ba0a 2823-ftree-parallelize-loops=<number> Enable automatic parallelization of loops.
5f40b3cb 2824
248fc9f3
RG
2825ftree-phiprop
2826Common Report Var(flag_tree_phiprop) Init(1) Optimization
2827Enable hoisting loads from conditional pointers.
2828
6de9cd9a 2829ftree-pre
c662432e 2830Common Report Var(flag_tree_pre) Optimization
a7b2e184 2831Enable SSA-PRE optimization on trees.
6de9cd9a 2832
fa06ad0d
JR
2833ftree-partial-pre
2834Common Report Var(flag_tree_partial_pre) Optimization
a7b2e184 2835In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
fa06ad0d 2836
248fc9f3 2837ftree-pta
14379e66 2838Common Report Var(flag_tree_pta) Optimization
248fc9f3
RG
2839Perform function-local points-to analysis on trees.
2840
13c59415
UB
2841ftree-reassoc
2842Common Report Var(flag_tree_reassoc) Init(1) Optimization
a7b2e184 2843Enable reassociation on tree level.
13c59415 2844
c75ab022 2845ftree-salias
2d2bd949 2846Common Ignore
1353232d 2847Does nothing. Preserved for backward compatibility.
c75ab022 2848
fa555252 2849ftree-sink
c662432e 2850Common Report Var(flag_tree_sink) Optimization
a7b2e184 2851Enable SSA code sinking on trees.
fa555252 2852
75cfe445
BS
2853ftree-slsr
2854Common Report Var(flag_tree_slsr) Optimization
a7b2e184 2855Perform straight-line strength reduction.
75cfe445 2856
6de9cd9a 2857ftree-sra
c662432e 2858Common Report Var(flag_tree_sra) Optimization
a7b2e184 2859Perform scalar replacement of aggregates.
6de9cd9a
DN
2860
2861ftree-ter
3020190e 2862Common Report Var(flag_tree_ter) Optimization
a7b2e184 2863Replace temporary expressions in the SSA->normal pass.
6de9cd9a 2864
c662432e
NC
2865ftree-lrs
2866Common Report Var(flag_tree_live_range_split) Optimization
a7b2e184 2867Perform live range splitting during the SSA->normal pass.
c662432e 2868
0bca51f0 2869ftree-vrp
c662432e 2870Common Report Var(flag_tree_vrp) Init(0) Optimization
a7b2e184 2871Perform Value Range Propagation on trees.
0bca51f0 2872
8fe17e23
AA
2873fsplit-paths
2874Common Report Var(flag_split_paths) Init(0) Optimization
2875Split paths leading to loop backedges.
2876
71017a7b
AL
2877funconstrained-commons
2878Common Var(flag_unconstrained_commons) Optimization
2879Assume common declarations may be overridden with ones with a larger
2880trailing array.
2881
de32c0cb 2882funit-at-a-time
b16650ac 2883Common Report Var(flag_unit_at_a_time) Init(1)
a7b2e184 2884Compile whole compilation unit at a time.
de32c0cb
NB
2885
2886funroll-loops
c662432e 2887Common Report Var(flag_unroll_loops) Optimization
a7b2e184 2888Perform loop unrolling when iteration count is known.
de32c0cb
NB
2889
2890funroll-all-loops
c662432e 2891Common Report Var(flag_unroll_all_loops) Optimization
a7b2e184 2892Perform loop unrolling for all loops.
de32c0cb 2893
71489d8e 2894funroll-completely-grow-size
fe9458c2 2895Undocumented Var(flag_cunroll_grow_size) Optimization
71489d8e 2896; Internal undocumented flag, allow size growth during complete unrolling
2897
f9cc1a70
PB
2898; Nonzero means that loop optimizer may assume that the induction variables
2899; that control loops do not overflow and that the loops with nontrivial
2900; exit condition are not infinite
2901funsafe-loop-optimizations
78f63b79
BC
2902Common Ignore
2903Does nothing. Preserved for backward compatibility.
f9cc1a70 2904
a1a82611 2905fassociative-math
b16650ac 2906Common Report Var(flag_associative_math) SetByCombined Optimization
a1a82611
RE
2907Allow optimization for floating-point arithmetic which may change the
2908result of the operation due to rounding.
2909
2910freciprocal-math
b16650ac 2911Common Report Var(flag_reciprocal_math) SetByCombined Optimization
a1a82611
RE
2912Same as -fassociative-math for expressions which include division.
2913
31b66477
KC
2914; Nonzero means that unsafe floating-point math optimizations are allowed
2915; for the sake of speed. IEEE compliance is not guaranteed, and operations
2916; are allowed to assume that their arguments and results are "normal"
2917; (e.g., nonnegative for SQRT).
6ff3a151 2918funsafe-math-optimizations
5e46b0c6 2919Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined
a7b2e184 2920Allow math optimizations that may violate IEEE or ISO standards.
6ff3a151 2921
de32c0cb 2922funswitch-loops
c662432e 2923Common Report Var(flag_unswitch_loops) Optimization
a7b2e184 2924Perform loop unswitching.
de32c0cb 2925
28df8730
MM
2926fsplit-loops
2927Common Report Var(flag_split_loops) Optimization
2928Perform loop splitting.
2929
13e08dc9
RS
2930fversion-loops-for-strides
2931Common Report Var(flag_version_loops_for_strides) Optimization
2932Version loops based on whether indices have a stride of one.
2933
6ff3a151 2934funwind-tables
c662432e 2935Common Report Var(flag_unwind_tables) Optimization
a7b2e184 2936Just generate unwind tables for exception handling.
6ff3a151 2937
b352afba 2938fuse-ld=bfd
b78e932d 2939Common Driver Negative(fuse-ld=gold)
a7b2e184 2940Use the bfd linker instead of the default linker.
b352afba
NC
2941
2942fuse-ld=gold
b78e932d 2943Common Driver Negative(fuse-ld=bfd)
a7b2e184 2944Use the gold linker instead of the default linker.
b352afba 2945
d69ac8b7
RG
2946fuse-ld=lld
2947Common Driver Negative(fuse-ld=lld)
2948Use the lld LLVM linker instead of the default linker.
2949
da18ea94 2950fuse-linker-plugin
063d671d 2951Common Undocumented Var(flag_use_linker_plugin)
da18ea94 2952
e90afde6
JM
2953; Positive if we should track variables, negative if we should run
2954; the var-tracking pass only to discard debug annotations, zero if
2955; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it
2956; will be set according to optimize, debug_info_level and debug_hooks
2957; in process_options ().
014a1138 2958fvar-tracking
ff98fa95 2959Common Report Var(flag_var_tracking) Init(2) PerFunction
a7b2e184 2960Perform variable tracking.
014a1138 2961
e90afde6
JM
2962; Positive if we should track variables at assignments, negative if
2963; we should run the var-tracking pass only to discard debug
2964; annotations. When flag_var_tracking_assignments ==
2965; AUTODETECT_VALUE it will be set according to flag_var_tracking.
b5b8b0ac 2966fvar-tracking-assignments
ff98fa95 2967Common Report Var(flag_var_tracking_assignments) Init(2) PerFunction
a7b2e184 2968Perform variable tracking by annotating assignments.
b5b8b0ac 2969
e90afde6
JM
2970; Nonzero if we should toggle flag_var_tracking_assignments after
2971; processing options and computing its default. */
b5b8b0ac 2972fvar-tracking-assignments-toggle
ff98fa95 2973Common Report Var(flag_var_tracking_assignments_toggle) PerFunction
a7b2e184 2974Toggle -fvar-tracking-assignments.
b5b8b0ac 2975
1267ca30
EB
2976; Positive if we should track uninitialized variables, negative if
2977; we should run the var-tracking pass only to discard debug
2978; annotations. When flag_var_tracking_uninit == AUTODETECT_VALUE it
2979; will be set according to flag_var_tracking.
62760ffd 2980fvar-tracking-uninit
ff98fa95 2981Common Report Var(flag_var_tracking_uninit) PerFunction
a7b2e184 2982Perform variable tracking and also tag variables that are uninitialized.
62760ffd 2983
26d476cd 2984; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
79fe1b3b 2985ftree-vectorize
26d476cd 2986Common Report Optimization
a7b2e184 2987Enable vectorization on trees.
79fe1b3b 2988
78c60e3d 2989ftree-vectorizer-verbose=
477e804b
SS
2990Common Joined RejectNegative Ignore
2991Does nothing. Preserved for backward compatibility.
78c60e3d 2992
ea0f3e87 2993ftree-loop-vectorize
26d476cd 2994Common Report Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
a7b2e184 2995Enable loop vectorization on trees.
ea0f3e87 2996
a70d6342 2997ftree-slp-vectorize
26d476cd 2998Common Report Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
a7b2e184 2999Enable basic block vectorization (SLP) on trees.
a70d6342 3000
d6d11272 3001fvect-cost-model=
b16650ac 3002Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
6a825afe 3003-fvect-cost-model=[unlimited|dynamic|cheap] Specifies the cost model for vectorization.
a7b2e184 3004
8b5e1202 3005fsimd-cost-model=
b16650ac 3006Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
6a825afe 3007-fsimd-cost-model=[unlimited|dynamic|cheap] Specifies the vectorization cost model for code marked with a simd directive.
8b5e1202 3008
d6d11272
XDL
3009Enum
3010Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
3011
3012EnumValue
3013Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
3014
3015EnumValue
3016Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
3017
3018EnumValue
3019Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
3020
792ed98b 3021fvect-cost-model
205d7111 3022Common Alias(fvect-cost-model=,dynamic,unlimited)
d6d11272
XDL
3023Enables the dynamic vectorizer cost model. Preserved for backward compatibility.
3024
c12cc930 3025ftree-vect-loop-version
d6d11272
XDL
3026Common Ignore
3027Does nothing. Preserved for backward compatibility.
c12cc930 3028
fbf798fc 3029ftree-scev-cprop
21af5cdf 3030Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
fbf798fc
DN
3031Enable copy propagation of scalar-evolution information.
3032
31b66477
KC
3033; -fverbose-asm causes extra commentary information to be produced in
3034; the generated assembly code (to make it more readable). This option
3035; is generally only of use to those who actually need to read the
3036; generated assembly code (perhaps while debugging the compiler itself).
3037; -fno-verbose-asm, the default, causes the extra information
3038; to not be added and is useful when comparing two assembler files.
6ff3a151 3039fverbose-asm
50431bc4 3040Common Report Var(flag_verbose_asm)
a7b2e184 3041Add extra commentary to assembler output.
6ff3a151 3042
d7afec4b 3043fvisibility=
e6d4b984 3044Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
a7b2e184 3045-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility.
d7afec4b 3046
e6d4b984
JM
3047Enum
3048Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
3049
3050EnumValue
3051Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
3052
3053EnumValue
3054Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
3055
3056EnumValue
3057Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
3058
3059EnumValue
3060Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
d7afec4b 3061
2077db1b
CT
3062fvtable-verify=
3063Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
3064Validate vtable pointers before using them.
3065
3066Enum
3067Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
3068
3069EnumValue
3070Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
3071
3072EnumValue
3073Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
3074
3075EnumValue
3076Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
3077
3078fvtv-counts
3079Common Var(flag_vtv_counts)
3080Output vtable verification counters.
3081
3082fvtv-debug
3083Common Var(flag_vtv_debug)
3084Output vtable verification pointer sets information.
3085
fca9dc00 3086fvpt
c662432e 3087Common Report Var(flag_value_profile_transformations) Optimization
a7b2e184 3088Use expression value profiles in optimizations.
fca9dc00 3089
62551c66 3090fweb
c662432e 3091Common Report Var(flag_web) Init(2) Optimization
a7b2e184 3092Construct webs and split unrelated uses of single variable.
62551c66 3093
c2699190
XDL
3094ftree-builtin-call-dce
3095Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
a7b2e184 3096Enable conditional dead code elimination for builtin calls.
c2699190 3097
ce91e74c 3098fwhole-program
b16650ac 3099Common Report Var(flag_whole_program) Init(0)
a7b2e184 3100Perform whole program optimizations.
ce91e74c 3101
3fccbb9e
JJ
3102fwrapv-pointer
3103Common Report Var(flag_wrapv_pointer) Optimization
3104Assume pointer overflow wraps around.
3105
6ff3a151 3106fwrapv
c662432e 3107Common Report Var(flag_wrapv) Optimization
a7b2e184 3108Assume signed arithmetic overflow wraps around.
6ff3a151 3109
6ff3a151 3110fzero-initialized-in-bss
50431bc4 3111Common Report Var(flag_zero_initialized_in_bss) Init(1)
a7b2e184 3112Put zero initialized data in the bss section.
6ff3a151 3113
e01cc6dc 3114g
9ed32e27 3115Common Driver RejectNegative JoinedOrMissing
a7b2e184 3116Generate debug information in default format.
df38ffef 3117
924c9e3e
AO
3118gas-loc-support
3119Common Driver Var(dwarf2out_as_loc_support) Init(2)
04e5c73d 3120Assume assembler support for (DWARF2+) .loc directives.
924c9e3e
AO
3121
3122gas-locview-support
3123Common Driver Var(dwarf2out_as_locview_support) Init(2)
04e5c73d 3124Assume assembler support for view in (DWARF2+) .loc directives.
924c9e3e 3125
e7e95821 3126gcoff
68a57628 3127Common Driver WarnRemoved
e7e95821
JW
3128Does nothing. Preserved for backward compatibility.
3129
3130gcoff1
68a57628 3131Common Driver WarnRemoved
e7e95821
JW
3132Does nothing. Preserved for backward compatibility.
3133
3134gcoff2
68a57628 3135Common Driver WarnRemoved
e7e95821
JW
3136Does nothing. Preserved for backward compatibility.
3137
3138gcoff3
68a57628 3139Common Driver WarnRemoved
e7e95821
JW
3140Does nothing. Preserved for backward compatibility.
3141
0029b929 3142gcolumn-info
8008dd1c 3143Common Driver Var(debug_column_info,1) Init(1)
0029b929
JJ
3144Record DW_AT_decl_column and DW_AT_call_column in DWARF.
3145
6782438d 3146gdwarf
1c70261c 3147Common Driver JoinedOrMissing Negative(gdwarf-)
a7b2e184 3148Generate debug information in default version of DWARF format.
6782438d 3149
53b2323e 3150gdwarf-
1c70261c 3151Common Driver Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs)
a7b2e184 3152Generate debug information in DWARF v2 (or later) format.
df38ffef
NB
3153
3154ggdb
1c70261c 3155Common Driver JoinedOrMissing
a7b2e184 3156Generate debug information in default extended format.
df38ffef 3157
924c9e3e
AO
3158ginline-points
3159Common Driver Var(debug_inline_points) Init(2)
04e5c73d 3160Generate extended entry point information for inlined functions.
924c9e3e
AO
3161
3162ginternal-reset-location-views
3163Common Driver Var(debug_internal_reset_location_views) Init(2)
04e5c73d 3164Compute locview reset points based on insn length estimates.
924c9e3e 3165
9ed32e27
AO
3166gno-
3167RejectNegative Joined Undocumented
3168; Catch the gno- prefix, so it doesn't backtrack to g<level>.
3169
5175cbaf 3170gno-pubnames
1c70261c 3171Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
5175cbaf
SA
3172Don't generate DWARF pubnames and pubtypes sections.
3173
3174gpubnames
1c70261c 3175Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
5175cbaf
SA
3176Generate DWARF pubnames and pubtypes sections.
3177
7a1dd0fa 3178ggnu-pubnames
1c70261c 3179Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
7a1dd0fa
SA
3180Generate DWARF pubnames and pubtypes sections with GNU extensions.
3181
e967adf4 3182grecord-gcc-switches
9ed32e27 3183Common Driver Var(dwarf_record_gcc_switches) Init(1)
e967adf4
JJ
3184Record gcc command line switches in DWARF DW_AT_producer.
3185
99ea153e 3186gsplit-dwarf
9ed32e27 3187Common Driver Var(dwarf_split_debug_info) Init(0)
a7b2e184 3188Generate debug information in separate .dwo files.
99ea153e 3189
df38ffef 3190gstabs
1c70261c 3191Common Driver JoinedOrMissing Negative(gstabs+)
a7b2e184 3192Generate debug information in STABS format.
df38ffef
NB
3193
3194gstabs+
1c70261c 3195Common Driver JoinedOrMissing Negative(gvms)
a7b2e184 3196Generate debug information in extended STABS format.
df38ffef 3197
8697bf9f
AO
3198gstatement-frontiers
3199Common Driver Var(debug_nonbind_markers_p) Init(2)
3200Emit progressive recommended breakpoint locations.
3201
65f753a0 3202gstrict-dwarf
9ed32e27 3203Common Driver Report Var(dwarf_strict) Init(0)
a7b2e184 3204Don't emit DWARF additions beyond selected version.
65f753a0 3205
03e992ac
TV
3206gdescribe-dies
3207Common Driver Report Var(flag_describe_dies) Init(0)
3208Add description attributes to some DWARF DIEs that have no name attribute.
3209
2153915d 3210gtoggle
1c70261c 3211Common Driver Report Var(flag_gtoggle)
a7b2e184 3212Toggle debug information generation.
2153915d 3213
bd2b9f1e
AO
3214gvariable-location-views
3215Common Driver Var(debug_variable_location_views, 1) Init(2)
3216Augment variable location lists with progressive views.
3217
3218gvariable-location-views=incompat5
3219Common Driver RejectNegative Var(debug_variable_location_views, -1) Init(2)
3220
df38ffef 3221gvms
1c70261c 3222Common Driver JoinedOrMissing Negative(gxcoff)
a7b2e184 3223Generate debug information in VMS format.
df38ffef
NB
3224
3225gxcoff
1c70261c 3226Common Driver JoinedOrMissing Negative(gxcoff+)
a7b2e184 3227Generate debug information in XCOFF format.
df38ffef
NB
3228
3229gxcoff+
180295ed 3230Common Driver JoinedOrMissing Negative(gdwarf)
a7b2e184 3231Generate debug information in extended XCOFF format.
e01cc6dc 3232
29d7cbd1
RO
3233Enum
3234Name(compressed_debug_sections) Type(int)
3235
3236; Since -gz= is completely handled in specs, the values aren't used and we
3237; assign arbitrary constants.
3238EnumValue
3239Enum(compressed_debug_sections) String(none) Value(0)
3240
3241EnumValue
3242Enum(compressed_debug_sections) String(zlib) Value(1)
3243
3244EnumValue
3245Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
3246
3247gz
3248Common Driver
a7b2e184 3249Generate compressed debug sections.
29d7cbd1
RO
3250
3251gz=
9ed32e27 3252Common Driver RejectNegative Joined Enum(compressed_debug_sections)
a7b2e184 3253-gz=<format> Generate compressed debug sections in format <format>.
29d7cbd1 3254
6d721f67
JM
3255h
3256Driver Joined Separate
3257
4adbd5dd
MK
3258iplugindir=
3259Common Joined Var(plugindir_string) Init(0)
a7b2e184 3260-iplugindir=<dir> Set <dir> to be the default plugin directory.
4adbd5dd 3261
e0cdc09f
MK
3262imultiarch
3263Common Joined Separate RejectDriver Var(imultiarch) Init(0)
a7b2e184 3264-imultiarch <dir> Set <dir> to be the multiarch include subdirectory.
e0cdc09f 3265
603349bf
JM
3266l
3267Driver Joined Separate
3268
dd9f93dc
JM
3269n
3270Driver
3271
603349bf
JM
3272no-canonical-prefixes
3273Driver
3274
d9d16a19
JM
3275nodefaultlibs
3276Driver
3277
bab79a40
JM
3278nostartfiles
3279Driver
3280
f37866e8
OH
3281nolibc
3282Driver
3283
d9d16a19
JM
3284nostdlib
3285Driver
3286
d185d268 3287o
d5478783 3288Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
a7b2e184 3289-o <file> Place output into <file>.
d185d268
NB
3290
3291p
50431bc4 3292Common Var(profile_flag)
a7b2e184 3293Enable function profiling.
d185d268 3294
603349bf
JM
3295pass-exit-codes
3296Driver Var(pass_exit_codes)
3297
d185d268 3298pedantic
c1771a20 3299Common Alias(Wpedantic)
d185d268
NB
3300
3301pedantic-errors
d5478783 3302Common Var(flag_pedantic_errors)
a7b2e184 3303Like -pedantic but issue them as errors.
d185d268 3304
d9d16a19
JM
3305pg
3306Driver
3307
603349bf
JM
3308pipe
3309Driver Var(use_pipes)
3310
3311print-file-name=
3312Driver JoinedOrMissing Var(print_file_name)
3313
3314print-libgcc-file-name
3315Driver
3316
3317print-multi-directory
3318Driver Var(print_multi_directory)
3319
3320print-multi-lib
3321Driver Var(print_multi_lib)
3322
3323print-multi-os-directory
3324Driver Var(print_multi_os_directory)
a7b2e184 3325
e0cdc09f
MK
3326print-multiarch
3327Driver Var(print_multiarch)
603349bf
JM
3328
3329print-prog-name=
3330Driver JoinedOrMissing Var(print_prog_name)
3331
3332print-search-dirs
3333Driver Var(print_search_dirs)
3334
3335print-sysroot
3336Driver Var(print_sysroot)
3337
3338print-sysroot-headers-suffix
3339Driver Var(print_sysroot_headers_suffix)
3340
d7b42618 3341quiet
603349bf 3342Common Var(quiet_flag) RejectDriver
a7b2e184 3343Do not display functions compiled or elapsed time.
d7b42618 3344
dd9f93dc
JM
3345r
3346Driver
3347
3348s
3349Driver
3350
603349bf
JM
3351save-temps
3352Driver
3353
3354save-temps=
3355Driver Joined
3356
dd9f93dc
JM
3357t
3358Driver
3359
603349bf
JM
3360time
3361Driver Var(report_times)
3362
3363time=
3364Driver JoinedOrMissing
3365
e200444e
JM
3366u
3367Driver Joined Separate
3368
5642f5d5
JM
3369undef
3370Driver
3371; C option, but driver must not handle as "-u ndef".
3372
603349bf 3373v
d5478783 3374Common Driver Var(verbose_flag)
a7b2e184 3375Enable verbose output.
603349bf 3376
d185d268 3377version
603349bf 3378Common Var(version_flag) RejectDriver
a7b2e184 3379Display the compiler's version.
d185d268
NB
3380
3381w
50431bc4 3382Common Var(inhibit_warnings)
a7b2e184 3383Suppress warnings.
d185d268 3384
603349bf
JM
3385wrapper
3386Driver Separate Var(wrapper_string)
3387
3388x
3389Driver Joined Separate
3390
528dc603 3391shared
b4fed890 3392Driver RejectNegative Negative(static-pie)
a7b2e184 3393Create a shared library.
528dc603 3394
603349bf
JM
3395shared-libgcc
3396Driver
3397
3398specs
5de8299c 3399Driver Separate Alias(specs=)
603349bf
JM
3400
3401specs=
3402Driver Joined
3403
d9d16a19
JM
3404static
3405Driver
3406
603349bf
JM
3407static-libgcc
3408Driver
3409
3410static-libgfortran
3411Driver
3412; Documented for Fortran, but always accepted by driver.
3413
3414static-libstdc++
3415Driver
3416
7a938933
ILT
3417static-libgo
3418Driver
3419; Documented for Go, but always accepted by driver.
3420
7e8d1b2d
L
3421static-libasan
3422Driver
3423
32b4b7f5
DV
3424static-libtsan
3425Driver
3426
9065ada9
JJ
3427static-liblsan
3428Driver
3429
de5a5fa1
MP
3430static-libubsan
3431Driver
3432
e200444e
JM
3433symbolic
3434Driver
3435
428b3812 3436no-pie
5460e1fc 3437Driver RejectNegative Negative(shared)
b4fed890 3438Don't create a dynamically linked position independent executable.
428b3812
L
3439
3440pie
3441Driver RejectNegative Negative(no-pie)
b4fed890
L
3442Create a dynamically linked position independent executable.
3443
3444static-pie
3445Driver RejectNegative Negative(pie)
3446Create a static position independent executable.
528dc603 3447
6d721f67
JM
3448z
3449Driver Joined Separate
3450
1e288103
TV
3451fipa-ra
3452Common Report Var(flag_ipa_ra) Optimization
a7b2e184 3453Use caller save register across calls if possible.
d996e61a 3454
d7b42618 3455; This comment is to ensure we retain the blank line above.
This page took 5.978514 seconds and 5 git commands to generate.