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