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