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