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