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