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