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