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