]> gcc.gnu.org Git - gcc.git/blame - gcc/common.opt
re PR tree-optimization/92085 (ICE: tree check: expected class 'type', have 'exceptio...
[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
f78f73cb
RS
1079Common Ignore
1080Does nothing. Preserved for backward compatibility.
de32c0cb
NB
1081
1082fbranch-target-load-optimize2
f78f73cb
RS
1083Common Ignore
1084Does nothing. Preserved for backward compatibility.
de32c0cb 1085
1194fc79 1086fbtr-bb-exclusive
f78f73cb
RS
1087Common Ignore
1088Does nothing. Preserved for backward compatibility.
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
d2608235
DM
1284fdiagnostics-urls=
1285Driver Common Joined RejectNegative Var(flag_diagnostics_show_urls) Enum(diagnostic_url_rule) Init(DIAGNOSTICS_URL_AUTO)
1286-fdiagnostics-urls=[never|always|auto] Embed URLs in diagnostics.
1287
1288; Required for these enum values.
1289SourceInclude
1290diagnostic-url.h
1291
1292Enum
1293Name(diagnostic_url_rule) Type(int)
1294
1295EnumValue
1296Enum(diagnostic_url_rule) String(never) Value(DIAGNOSTICS_URL_NO)
1297
1298EnumValue
1299Enum(diagnostic_url_rule) String(always) Value(DIAGNOSTICS_URL_YES)
1300
1301EnumValue
1302Enum(diagnostic_url_rule) String(auto) Value(DIAGNOSTICS_URL_AUTO)
1303
478dd60d
DM
1304fdiagnostics-format=
1305Common Joined RejectNegative Enum(diagnostics_output_format)
04e5c73d 1306-fdiagnostics-format=[text|json] Select output format.
478dd60d
DM
1307
1308; Required for these enum values.
1309SourceInclude
1310diagnostic.h
1311
1312Enum
1313Name(diagnostics_output_format) Type(int)
1314
1315EnumValue
1316Enum(diagnostics_output_format) String(text) Value(DIAGNOSTICS_OUTPUT_FORMAT_TEXT)
1317
1318EnumValue
1319Enum(diagnostics_output_format) String(json) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON)
1320
a93eac6a
DM
1321fdiagnostics-parseable-fixits
1322Common Var(flag_diagnostics_parseable_fixits)
8135a004 1323Print fix-it hints in machine-readable form.
a93eac6a 1324
717ebe91
DM
1325fdiagnostics-generate-patch
1326Common Var(flag_diagnostics_generate_patch)
1327Print fix-it hints to stderr in unified diff format.
1328
ccf08a6e 1329fdiagnostics-show-option
c7d0de89 1330Common Var(flag_diagnostics_show_option) Init(1)
a7b2e184 1331Amend appropriate diagnostic messages with the command line option that controls them.
ccf08a6e 1332
0141ab44
DM
1333fdiagnostics-minimum-margin-width=
1334Common Joined UInteger Var(diagnostics_minimum_margin_width) Init(6)
04e5c73d 1335Set minimum width of left margin of source code when showing source.
0141ab44 1336
226c52aa
XDL
1337fdisable-
1338Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1339-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass.
226c52aa
XDL
1340
1341fenable-
1342Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1343-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass.
226c52aa 1344
6de9cd9a 1345fdump-
21bf1558 1346Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1347-fdump-<type> Dump various compiler internals to a file.
6de9cd9a 1348
d1583032
JM
1349fdump-final-insns
1350Driver RejectNegative
1351
2153915d
AO
1352fdump-final-insns=
1353Common RejectNegative Joined Var(flag_dump_final_insns)
a7b2e184 1354-fdump-final-insns=filename Dump to filename the insns at the end of translation.
2153915d 1355
c6a13190
ILT
1356fdump-go-spec=
1357Common RejectNegative Joined Var(flag_dump_go_spec)
a7b2e184 1358-fdump-go-spec=filename Write all declarations to file as Go code.
c6a13190 1359
24a7799e
R
1360fdump-noaddr
1361Common Report Var(flag_dump_noaddr)
a7b2e184 1362Suppress output of addresses in debugging dumps.
24a7799e 1363
dc10fd96
JJ
1364freport-bug
1365Common Driver Var(flag_report_bug)
1366Collect and dump debug information into temporary file if ICE in C/C++
bd2c6270 1367compiler occurred.
dc10fd96 1368
ba4ad400
DM
1369fdump-internal-locations
1370Common Var(flag_dump_locations) Init(0)
a7b2e184 1371Dump detailed information on GCC's internal representation of source code locations.
ba4ad400 1372
deced1e2
XDL
1373fdump-passes
1374Common Var(flag_dump_passes) Init(0)
a7b2e184 1375Dump optimization passes.
deced1e2 1376
6ff3a151 1377fdump-unnumbered
e90afde6 1378Common Report Var(flag_dump_unnumbered)
a7b2e184 1379Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
6ff3a151 1380
2aa7c49b 1381fdump-unnumbered-links
e90afde6 1382Common Report Var(flag_dump_unnumbered_links)
a7b2e184 1383Suppress output of previous and next insn numbers in debugging dumps.
2aa7c49b 1384
b5b8b0ac
AO
1385fdwarf2-cfi-asm
1386Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1387Enable CFI tables via GAS assembler directives.
1388
355866de 1389fearly-inlining
c662432e 1390Common Report Var(flag_early_inlining) Init(1) Optimization
a7b2e184 1391Perform early inlining.
355866de 1392
de32c0cb 1393feliminate-dwarf2-dups
1823c4f6
RB
1394Common Ignore
1395Does nothing. Preserved for backward compatibility.
de32c0cb 1396
07ffa034
MJ
1397fipa-sra
1398Common Report Var(flag_ipa_sra) Init(0) Optimization
a7b2e184 1399Perform interprocedural reduction of aggregates.
07ffa034 1400
6a08f7b3 1401feliminate-unused-debug-symbols
d1137c02 1402Common Report Var(flag_debug_only_used_symbols) Init(1)
a7b2e184 1403Perform unused symbol elimination in debug info.
6a08f7b3 1404
de32c0cb 1405feliminate-unused-debug-types
50431bc4 1406Common Report Var(flag_eliminate_unused_debug_types) Init(1)
a7b2e184 1407Perform unused type elimination in debug info.
de32c0cb 1408
e713adf6 1409femit-class-debug-always
eae8e474 1410Common Report Var(flag_emit_class_debug_always) Init(0)
e713adf6
CD
1411Do not suppress C++ class debug information.
1412
6ff3a151 1413fexceptions
c662432e 1414Common Report Var(flag_exceptions) Optimization
a7b2e184 1415Enable exception handling.
6ff3a151 1416
de32c0cb 1417fexpensive-optimizations
c662432e 1418Common Report Var(flag_expensive_optimizations) Optimization
a7b2e184 1419Perform a number of minor, expensive optimizations.
de32c0cb 1420
8ce94e44 1421fexcess-precision=
df375b03 1422Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision) Init(EXCESS_PRECISION_DEFAULT) Optimization SetByCombined
a7b2e184 1423-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision.
8ce94e44 1424
e6d4b984
JM
1425Enum
1426Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1427
1428EnumValue
1429Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1430
1431EnumValue
1432Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1433
04f0fcf7
JG
1434; Whether we permit the extended set of values for FLT_EVAL_METHOD
1435; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11.
1436fpermitted-flt-eval-methods=
1437Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT)
1438-fpermitted-flt-eval-methods=[c11|ts-18661] Specify which values of FLT_EVAL_METHOD are permitted.
1439
1440Enum
1441Name(permitted_flt_eval_methods) Type(enum permitted_flt_eval_methods) UnknownError(unknown specification for the set of FLT_EVAL_METHOD values to permit %qs)
1442
1443EnumValue
1444Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11)
1445
1446EnumValue
1447Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
1448
058de654 1449ffast-math
bfd67b47 1450Common Optimization
058de654 1451
cc8547a7 1452ffat-lto-objects
e9f67e62 1453Common Var(flag_fat_lto_objects)
cc8547a7
AK
1454Output lto objects containing both the intermediate language and binary output.
1455
6ff3a151 1456ffinite-math-only
5e46b0c6 1457Common Report Var(flag_finite_math_only) Optimization SetByCombined
a7b2e184 1458Assume no NaNs or infinities are generated.
6ff3a151 1459
c29c92c7
FX
1460ffinite-loops
1461Common Report Var(flag_finite_loops) Optimization
1462Assume that loops with an exit will terminate and not loop indefinitely.
1463
058de654 1464ffixed-
21bf1558 1465Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1466-ffixed-<register> Mark <register> as being unavailable to the compiler.
058de654 1467
de32c0cb 1468ffloat-store
c662432e 1469Common Report Var(flag_float_store) Optimization
a7b2e184 1470Don't allocate floats and doubles in extended-precision registers.
de32c0cb
NB
1471
1472fforce-addr
2d2bd949 1473Common Ignore
3de5e93a 1474Does nothing. Preserved for backward compatibility.
de32c0cb 1475
2ca2b607
SB
1476fforward-propagate
1477Common Report Var(flag_forward_propagate) Optimization
a7b2e184 1478Perform a forward propagation pass on RTL.
a52b023a 1479
16949072 1480ffp-contract=
bea30e0d 1481Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
6a825afe 1482-ffp-contract=[off|on|fast] Perform floating-point expression contraction.
16949072 1483
e6d4b984
JM
1484Enum
1485Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1486
1487EnumValue
1488Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1489
1490; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1491EnumValue
1492Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1493
1494EnumValue
1495Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1496
0d2f700f
JM
1497ffp-int-builtin-inexact
1498Common Report Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1499Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1500
31b66477
KC
1501; Nonzero means don't put addresses of constant functions in registers.
1502; Used for compiling the Unix kernel, where strange substitutions are
1503; done on the assembly output.
de32c0cb 1504ffunction-cse
b16650ac 1505Common Report Var(flag_no_function_cse,0) Optimization
a7b2e184 1506Allow function addresses to be held in registers.
de32c0cb 1507
6ff3a151 1508ffunction-sections
50431bc4 1509Common Report Var(flag_function_sections)
a7b2e184 1510Place each function into its own section.
6ff3a151 1511
de32c0cb 1512fgcse
c662432e 1513Common Report Var(flag_gcse) Optimization
a7b2e184 1514Perform global common subexpression elimination.
de32c0cb
NB
1515
1516fgcse-lm
c662432e 1517Common Report Var(flag_gcse_lm) Init(1) Optimization
a7b2e184 1518Perform enhanced load motion during global common subexpression elimination.
de32c0cb
NB
1519
1520fgcse-sm
c662432e 1521Common Report Var(flag_gcse_sm) Init(0) Optimization
a7b2e184 1522Perform store motion after global common subexpression elimination.
de32c0cb 1523
f5f2e3cd 1524fgcse-las
c662432e 1525Common Report Var(flag_gcse_las) Init(0) Optimization
f9957958 1526Perform redundant load after store elimination in global common subexpression
a7b2e184 1527elimination.
f9957958
MH
1528
1529fgcse-after-reload
c662432e 1530Common Report Var(flag_gcse_after_reload) Optimization
a7b2e184
MS
1531Perform global common subexpression elimination after register allocation has
1532finished.
f5f2e3cd 1533
6592d14b
PMR
1534Enum
1535Name(dwarf_gnat_encodings) Type(int)
1536
1537EnumValue
1538Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1539
1540EnumValue
1541Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1542
1543EnumValue
1544Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1545
1546fgnat-encodings=
1547Common Enum(dwarf_gnat_encodings) Joined RejectNegative Report Undocumented Var(gnat_encodings)
04e5c73d 1548-fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information.
6592d14b 1549
d0a58904 1550; This option is not documented yet as its semantics will change.
f8bf9252 1551fgraphite
ff6a32a9 1552Common Report Var(flag_graphite) Optimization
a7b2e184 1553Enable in and out of Graphite representation.
f8bf9252 1554
204b560f
SP
1555fgraphite-identity
1556Common Report Var(flag_graphite_identity) Optimization
a7b2e184 1557Enable Graphite Identity transformation.
204b560f 1558
372a6eb8
BS
1559fhoist-adjacent-loads
1560Common Report Var(flag_hoist_adjacent_loads) Optimization
1561Enable hoisting adjacent loads to encourage generating conditional move
a7b2e184 1562instructions.
372a6eb8 1563
1a218fc9
ILT
1564fkeep-gc-roots-live
1565Common Undocumented Report Var(flag_keep_gc_roots_live) Optimization
1566; Always keep a pointer to a live memory block
1567
3cf0e270
SP
1568floop-parallelize-all
1569Common Report Var(flag_loop_parallelize_all) Optimization
a7b2e184 1570Mark all loops as parallel.
204b560f 1571
f8bf9252 1572floop-strip-mine
d6bb5ccf 1573Common Alias(floop-nest-optimize)
a7b2e184 1574Enable loop nest transforms. Same as -floop-nest-optimize.
f8bf9252
SP
1575
1576floop-interchange
fbdec14e
BC
1577Common Report Var(flag_loop_interchange) Optimization
1578Enable loop interchange on trees.
f8bf9252
SP
1579
1580floop-block
d6bb5ccf 1581Common Alias(floop-nest-optimize)
a7b2e184 1582Enable loop nest transforms. Same as -floop-nest-optimize.
f8bf9252 1583
20d3465b 1584floop-unroll-and-jam
dc236397
MM
1585Common Report Var(flag_unroll_jam) Optimization
1586Perform unroll-and-jam on loops.
a7b2e184 1587
0a35513e
AH
1588fgnu-tm
1589Common Report Var(flag_tm)
a7b2e184 1590Enable support for GNU transactional memory.
0a35513e 1591
da34ade5
JM
1592fgnu-unique
1593Common Report Var(flag_gnu_unique) Init(1)
a7b2e184 1594Use STB_GNU_UNIQUE if supported by the assembler.
da34ade5 1595
98af4c9f 1596floop-flatten
093193be
MK
1597Common Ignore
1598Does nothing. Preserved for backward compatibility.
98af4c9f 1599
b60cc080 1600floop-nest-optimize
84c36240 1601Common Report Var(flag_loop_nest_optimize) Optimization
e357a5e0 1602Enable the loop nest optimizer.
b60cc080 1603
6a78b724 1604fstrict-volatile-bitfields
b16650ac 1605Common Report Var(flag_strict_volatile_bitfields) Init(-1) Optimization
a7b2e184 1606Force bitfield accesses to match their type width.
6a78b724 1607
f663d9ad
KT
1608fstore-merging
1609Common Report Var(flag_store_merging) Optimization
1610Merge adjacent stores.
1611
6ff3a151 1612fguess-branch-probability
c662432e 1613Common Report Var(flag_guess_branch_prob) Optimization
a7b2e184 1614Enable guessing of branch probabilities.
6ff3a151 1615
31b66477
KC
1616; Nonzero means ignore `#ident' directives. 0 means handle them.
1617; Generate position-independent code for executables if possible
1618; On SVR4 targets, it also controls whether or not to emit a
1619; string identifying the compiler.
6ff3a151 1620fident
50431bc4 1621Common Report Var(flag_no_ident,0)
a7b2e184 1622Process #ident directives.
6ff3a151 1623
de32c0cb 1624fif-conversion
c662432e 1625Common Report Var(flag_if_conversion) Optimization
a7b2e184 1626Perform conversion of conditional jumps to branchless equivalents.
de32c0cb
NB
1627
1628fif-conversion2
c662432e 1629Common Report Var(flag_if_conversion2) Optimization
a7b2e184 1630Perform conversion of conditional jumps to conditional execution.
de32c0cb 1631
87e2a8fd 1632fstack-reuse=
082908e3 1633Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
6a825afe 1634-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
87e2a8fd
XDL
1635
1636Enum
1637Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1638
1639EnumValue
1640Enum(stack_reuse_level) String(all) Value(SR_ALL)
1641
1642EnumValue
1643Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1644
1645EnumValue
1646Enum(stack_reuse_level) String(none) Value(SR_NONE)
1647
384a5197
SP
1648ftree-loop-if-convert
1649Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
a7b2e184 1650Convert conditional jumps in innermost loops to branchless equivalents.
384a5197 1651
bd544141 1652ftree-loop-if-convert-stores
bef69eb5
RB
1653Common Ignore
1654Does nothing. Preserved for backward compatibility.
bd544141 1655
31b66477
KC
1656; -finhibit-size-directive inhibits output of .size for ELF.
1657; This is used only for compiling crtstuff.c,
1658; and it may be extended to other effects
1659; needed for crtstuff.c on other systems.
6ff3a151 1660finhibit-size-directive
50431bc4 1661Common Report Var(flag_inhibit_size_directive)
a7b2e184 1662Do not generate .size directives.
6ff3a151 1663
3e293154 1664findirect-inlining
2bf86c84 1665Common Report Var(flag_indirect_inlining) Optimization
a7b2e184 1666Perform indirect inlining.
3e293154 1667
99ea07f8
RG
1668; General flag to enable inlining. Specifying -fno-inline will disable
1669; all inlining apart from always-inline functions.
de32c0cb 1670finline
0f042bc5 1671Common Report Var(flag_no_inline,0) Init(0) Optimization
a7b2e184 1672Enable inlining of function declared \"inline\", disabling disables all inlining.
de32c0cb 1673
4d4b8cb9
JH
1674finline-small-functions
1675Common Report Var(flag_inline_small_functions) Optimization
a7b2e184 1676Integrate functions into their callers when code size is known not to grow.
4d4b8cb9 1677
de32c0cb 1678finline-functions
c662432e 1679Common Report Var(flag_inline_functions) Optimization
a7b2e184 1680Integrate functions not declared \"inline\" into their callers when profitable.
de32c0cb 1681
355866de 1682finline-functions-called-once
fb37c1de 1683Common Report Var(flag_inline_functions_called_once) Optimization
a7b2e184 1684Integrate functions only required by their single caller.
d63db217 1685
d302c9d6 1686finline-limit-
5de8299c 1687Common RejectNegative Joined Alias(finline-limit=)
d302c9d6
NB
1688
1689finline-limit=
1690Common RejectNegative Joined UInteger
a7b2e184 1691-finline-limit=<number> Limit the size of inlined functions to <number>.
d302c9d6 1692
86951993
AM
1693finline-atomics
1694Common Report Var(flag_inline_atomics) Init(1) Optimization
1695Inline __atomic operations when a lock free instruction sequence is available.
1696
5c5f0b65
IT
1697fcf-protection
1698Common RejectNegative Alias(fcf-protection=,full)
1699
1700fcf-protection=
1701Common Report Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
1702-fcf-protection=[full|branch|return|none] Instrument functions with checks to verify jump/call/return control-flow transfer
1703instructions have valid targets.
1704
1705Enum
cefc0906 1706Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
5c5f0b65
IT
1707
1708EnumValue
1709Enum(cf_protection_level) String(full) Value(CF_FULL)
1710
1711EnumValue
1712Enum(cf_protection_level) String(branch) Value(CF_BRANCH)
1713
1714EnumValue
1715Enum(cf_protection_level) String(return) Value(CF_RETURN)
1716
1717EnumValue
1718Enum(cf_protection_level) String(none) Value(CF_NONE)
1719
6ff3a151 1720finstrument-functions
50431bc4 1721Common Report Var(flag_instrument_function_entry_exit)
a7b2e184 1722Instrument function entry and exit with profiling calls.
6ff3a151 1723
8d5a7d1f
ILT
1724finstrument-functions-exclude-function-list=
1725Common RejectNegative Joined
a7b2e184 1726-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions.
8d5a7d1f
ILT
1727
1728finstrument-functions-exclude-file-list=
1729Common RejectNegative Joined
a7b2e184 1730-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files.
8d5a7d1f 1731
d6e14e8f 1732fipa-cp
c662432e 1733Common Report Var(flag_ipa_cp) Optimization
a7b2e184 1734Perform interprocedural constant propagation.
d6e14e8f 1735
5e45130d
JH
1736fipa-cp-clone
1737Common Report Var(flag_ipa_cp_clone) Optimization
a7b2e184 1738Perform cloning to make Interprocedural constant propagation stronger.
5e45130d 1739
3c99176a 1740fipa-cp-alignment
78117646
MJ
1741Common Ignore
1742Does nothing. Preserved for backward compatibility.
3c99176a 1743
209ca542
PK
1744fipa-bit-cp
1745Common Report Var(flag_ipa_bit_cp) Optimization
1746Perform interprocedural bitwise constant propagation.
1747
e65bb9be
JH
1748fipa-profile
1749Common Report Var(flag_ipa_profile) Init(0) Optimization
a7b2e184 1750Perform interprocedural profile propagation.
ea900239 1751
4cf4d6a3 1752fipa-pta
c662432e 1753Common Report Var(flag_ipa_pta) Init(0) Optimization
a7b2e184 1754Perform interprocedural points-to analysis.
4cf4d6a3 1755
e65bb9be
JH
1756fipa-pure-const
1757Common Report Var(flag_ipa_pure_const) Init(0) Optimization
a7b2e184 1758Discover pure and const functions.
e65bb9be 1759
b84d4347
ML
1760fipa-icf
1761Common Report Var(flag_ipa_icf) Optimization
a7b2e184 1762Perform Identical Code Folding for functions and read-only variables.
b84d4347
ML
1763
1764fipa-icf-functions
1765Common Report Var(flag_ipa_icf_functions) Optimization
a7b2e184 1766Perform Identical Code Folding for functions.
b84d4347
ML
1767
1768fipa-icf-variables
b93ee1bb 1769Common Report Var(flag_ipa_icf_variables) Optimization
a7b2e184 1770Perform Identical Code Folding for variables.
b84d4347 1771
ea900239 1772fipa-reference
c662432e 1773Common Report Var(flag_ipa_reference) Init(0) Optimization
2e14744f
ML
1774Discover read-only and non addressable static variables.
1775
1776fipa-reference-addressable
1777Common Report Var(flag_ipa_reference_addressable) Init(0) Optimization
1778Discover read-only, write-only and non-addressable static variables.
ea900239 1779
47b840eb
ML
1780fipa-stack-alignment
1781Common Report Var(flag_ipa_stack_alignment) Init(1) Optimization
1782Reduce stack alignment on call sites if possible.
1783
43d861a5 1784fipa-matrix-reorg
04f92ff4
RG
1785Common Ignore
1786Does nothing. Preserved for backward compatibility.
43d861a5 1787
e1dc98b2 1788fipa-struct-reorg
b8beb4d1
RG
1789Common Ignore
1790Does nothing. Preserved for backward compatibility.
e1dc98b2 1791
8bc5448f
KV
1792fipa-vrp
1793Common Report Var(flag_ipa_vrp) Optimization
1794Perform IPA Value Range Propagation.
1795
058e97ec 1796fira-algorithm=
b16650ac 1797Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
6a825afe 1798-fira-algorithm=[CB|priority] Set the used IRA algorithm.
7db7ed3c 1799
e6d4b984
JM
1800Enum
1801Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1802
1803EnumValue
1804Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1805
1806EnumValue
1807Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1808
7db7ed3c 1809fira-region=
b16650ac 1810Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT) Optimization
6a825afe 1811-fira-region=[one|all|mixed] Set regions for IRA.
058e97ec 1812
e6d4b984
JM
1813Enum
1814Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1815
1816EnumValue
1817Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1818
1819EnumValue
1820Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1821
1822EnumValue
1823Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1824
b11f0116
BC
1825fira-hoist-pressure
1826Common Report Var(flag_ira_hoist_pressure) Init(1) Optimization
1827Use IRA based register pressure calculation
1828in RTL hoist optimizations.
1829
1833192f 1830fira-loop-pressure
f3d83ffe 1831Common Report Var(flag_ira_loop_pressure) Optimization
1833192f
VM
1832Use IRA based register pressure calculation
1833in RTL loop optimizations.
1834
058e97ec 1835fira-share-save-slots
b16650ac 1836Common Report Var(flag_ira_share_save_slots) Init(1) Optimization
058e97ec
VM
1837Share slots for saving different hard registers.
1838
1839fira-share-spill-slots
b16650ac 1840Common Report Var(flag_ira_share_spill_slots) Init(1) Optimization
058e97ec
VM
1841Share stack slots for spilled pseudo-registers.
1842
1843fira-verbose=
5498f011 1844Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
f94e1d66 1845-fira-verbose=<number> Control IRA's level of diagnostic messages.
058e97ec 1846
8b11a64c 1847fivopts
c662432e 1848Common Report Var(flag_ivopts) Init(1) Optimization
a7b2e184 1849Optimize induction variables on trees.
8b11a64c 1850
82c0180d 1851fjump-tables
c662432e 1852Common Var(flag_jump_tables) Init(1) Optimization
a7b2e184 1853Use jump tables for sufficiently large switch statements.
82c0180d 1854
de32c0cb 1855fkeep-inline-functions
50431bc4 1856Common Report Var(flag_keep_inline_functions)
a7b2e184 1857Generate code for functions even if they are fully inlined.
de32c0cb 1858
787da5fd
JV
1859fkeep-static-functions
1860Common Report Var(flag_keep_static_functions)
a7b2e184 1861Generate code for static functions even if they are never called.
787da5fd 1862
de32c0cb 1863fkeep-static-consts
50431bc4 1864Common Report Var(flag_keep_static_consts) Init(1)
a7b2e184 1865Emit static const variables even if they are not used.
de32c0cb 1866
6ff3a151 1867fleading-underscore
50431bc4 1868Common Report Var(flag_leading_underscore) Init(-1)
a7b2e184 1869Give external symbols a leading underscore.
6ff3a151 1870
efa1cdf0 1871floop-optimize
2d2bd949 1872Common Ignore
c0220ea4 1873Does nothing. Preserved for backward compatibility.
efa1cdf0 1874
d9cf932c
VM
1875flra-remat
1876Common Report Var(flag_lra_remat) Optimization
a7b2e184 1877Do CFG-sensitive rematerialization in LRA.
d9cf932c 1878
d7f09764 1879flto
014d92e1 1880Common
d7f09764
DN
1881Enable link-time optimization.
1882
014d92e1
JH
1883flto=
1884Common RejectNegative Joined Var(flag_lto)
1885Link-time optimization with number of parallel jobs or jobserver.
1886
783dab6b
RB
1887Enum
1888Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
852e4bd2 1889
783dab6b
RB
1890EnumValue
1891Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
852e4bd2 1892
783dab6b
RB
1893EnumValue
1894Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
1895
1896EnumValue
1897Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
1898
1899EnumValue
1900Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
1901
1902EnumValue
1903Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
c3c445e1 1904
783dab6b
RB
1905flto-partition=
1906Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
a7b2e184 1907Specify the algorithm to partition symbols and vars at linktime.
014d92e1 1908
d7f09764
DN
1909; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1910flto-compression-level=
87741e51
ML
1911Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 19)
1912-flto-compression-level=<number> Use zlib/zstd compression level <number> for IL.
d7f09764 1913
1ee85ee1 1914flto-odr-type-merging
686a56a8
JH
1915Common Ignore
1916Does nothing. Preserved for backward compatibility.
1ee85ee1 1917
d7f09764 1918flto-report
1d67dde8 1919Common Report Var(flag_lto_report) Init(0)
a7b2e184 1920Report various link-time optimization statistics.
d7f09764 1921
057f8f20
AK
1922flto-report-wpa
1923Common Report Var(flag_lto_report_wpa) Init(0)
a7b2e184 1924Report various link-time optimization statistics for WPA only.
057f8f20 1925
6ff3a151 1926fmath-errno
5e46b0c6 1927Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined
a7b2e184 1928Set errno after built-in math functions.
6ff3a151 1929
3a789837
NF
1930fmax-errors=
1931Common Joined RejectNegative UInteger Var(flag_max_errors)
a7b2e184 1932-fmax-errors=<number> Maximum number of errors to report.
3a789837 1933
6ff3a151 1934fmem-report
50431bc4 1935Common Report Var(mem_report)
a7b2e184 1936Report on permanent memory allocation.
6ff3a151 1937
b3e44629
AK
1938fmem-report-wpa
1939Common Report Var(mem_report_wpa)
a7b2e184 1940Report on permanent memory allocation in WPA only.
b3e44629 1941
31b66477
KC
1942; This will attempt to merge constant section constants, if 1 only
1943; string constants and constants from constant pool, if 2 also constant
1944; variables.
6ff3a151 1945fmerge-all-constants
0a7246ee 1946Common Report Var(flag_merge_constants,2) Init(1)
a7b2e184 1947Attempt to merge identical constants and constant variables.
6ff3a151
NB
1948
1949fmerge-constants
0a7246ee 1950Common Report Var(flag_merge_constants,1)
a7b2e184 1951Attempt to merge identical constants across compilation units.
6ff3a151 1952
28a08168
ILT
1953fmerge-debug-strings
1954Common Report Var(flag_merge_debug_strings) Init(1)
a7b2e184 1955Attempt to merge identical debug strings across compilation units.
28a08168 1956
de32c0cb
NB
1957fmessage-length=
1958Common RejectNegative Joined UInteger
a7b2e184 1959-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping.
de32c0cb 1960
e5626198 1961fmodulo-sched
c662432e 1962Common Report Var(flag_modulo_sched) Optimization
a7b2e184 1963Perform SMS based modulo scheduling before the first scheduling pass.
e5626198 1964
517d76fa 1965fmodulo-sched-allow-regmoves
b16650ac 1966Common Report Var(flag_modulo_sched_allow_regmoves) Optimization
a7b2e184 1967Perform SMS based modulo scheduling with register moves allowed.
517d76fa 1968
5e962776 1969fmove-loop-invariants
14379e66 1970Common Report Var(flag_move_loop_invariants) Optimization
a7b2e184 1971Move loop invariant computations out of loops.
5e962776 1972
6fb5fa3c 1973fdce
6ae4be32 1974Common Var(flag_dce) Init(1) Optimization
a7b2e184 1975Use the RTL dead code elimination pass.
6fb5fa3c
DB
1976
1977fdse
c0fe6bce 1978Common Var(flag_dse) Init(0) Optimization
a7b2e184 1979Use the RTL dead store elimination pass.
6fb5fa3c 1980
d72372e4 1981freschedule-modulo-scheduled-loops
c662432e 1982Common Report Var(flag_resched_modulo_sched) Optimization
a7b2e184 1983Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
d72372e4 1984
6ff3a151 1985fnon-call-exceptions
c662432e 1986Common Report Var(flag_non_call_exceptions) Optimization
a7b2e184 1987Support synchronous non-call exceptions.
6ff3a151 1988
c713ddc0
BS
1989foffload=
1990Common Driver Joined MissingArgError(options or targets missing after %qs)
a7b2e184 1991-foffload=<targets>=<options> Specify offloading targets and options for them.
c713ddc0
BS
1992
1993foffload-abi=
1994Common Joined RejectNegative Enum(offload_abi) Var(flag_offload_abi) Init(OFFLOAD_ABI_UNSET)
a7b2e184 1995-foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler.
c713ddc0
BS
1996
1997Enum
1998Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
1999
2000EnumValue
2001Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
2002
2003EnumValue
2004Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
2005
de32c0cb 2006fomit-frame-pointer
c662432e 2007Common Report Var(flag_omit_frame_pointer) Optimization
a7b2e184 2008When possible do not generate stack frames.
de32c0cb 2009
78c60e3d
SS
2010fopt-info
2011Common Report Var(flag_opt_info) Optimization
a7b2e184 2012Enable all optimization info dumps on stderr.
78c60e3d
SS
2013
2014fopt-info-
2015Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 2016-fopt-info[-<type>=filename] Dump compiler optimization details.
78c60e3d 2017
4a4412b9
DM
2018fsave-optimization-record
2019Common Report Var(flag_save_optimization_record) Optimization
2020Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
2021
6ff3a151 2022foptimize-register-move
3b6d1699
VM
2023Common Ignore
2024Does nothing. Preserved for backward compatibility.
6ff3a151 2025
de32c0cb 2026foptimize-sibling-calls
c662432e 2027Common Report Var(flag_optimize_sibling_calls) Optimization
a7b2e184 2028Optimize sibling and tail recursive calls.
de32c0cb 2029
3e485f62 2030fpartial-inlining
b16650ac 2031Common Report Var(flag_partial_inlining) Optimization
a7b2e184 2032Perform partial inlining.
3e485f62 2033
a5573239
JH
2034fpre-ipa-mem-report
2035Common Report Var(pre_ipa_mem_report)
a7b2e184 2036Report on memory allocation before interprocedural optimization.
a5573239
JH
2037
2038fpost-ipa-mem-report
2039Common Report Var(post_ipa_mem_report)
a7b2e184 2040Report on memory allocation before interprocedural optimization.
a5573239 2041
6ff3a151 2042fpack-struct
c662432e 2043Common Report Var(flag_pack_struct) Optimization
a7b2e184 2044Pack structure members together without holes.
6ff3a151 2045
467cecf3 2046fpack-struct=
c662432e 2047Common RejectNegative Joined UInteger Optimization
a7b2e184 2048-fpack-struct=<number> Set initial maximum structure member alignment.
467cecf3 2049
de32c0cb 2050fpcc-struct-return
5498f011 2051Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
a7b2e184 2052Return small aggregates in memory, not registers.
de32c0cb
NB
2053
2054fpeel-loops
c662432e 2055Common Report Var(flag_peel_loops) Optimization
a7b2e184 2056Perform loop peeling.
de32c0cb
NB
2057
2058fpeephole
c662432e 2059Common Report Var(flag_no_peephole,0) Optimization
a7b2e184 2060Enable machine specific peephole optimizations.
de32c0cb 2061
6ff3a151 2062fpeephole2
c662432e 2063Common Report Var(flag_peephole2) Optimization
a7b2e184 2064Enable an RTL peephole pass before sched2.
6ff3a151 2065
31b66477 2066fPIC
b57e6e18 2067Common Report Var(flag_pic,2) Negative(fPIE) Init(-1)
a7b2e184 2068Generate position-independent code if possible (large mode).
31b66477
KC
2069
2070fPIE
428b3812 2071Common Report Var(flag_pie,2) Negative(fpic) Init(-1)
a7b2e184 2072Generate position-independent code for executables if possible (large mode).
31b66477 2073
6ff3a151 2074fpic
b57e6e18 2075Common Report Var(flag_pic,1) Negative(fpie) Init(-1)
a7b2e184 2076Generate position-independent code if possible (small mode).
6ff3a151
NB
2077
2078fpie
428b3812 2079Common Report Var(flag_pie,1) Negative(fPIC) Init(-1)
a7b2e184 2080Generate position-independent code for executables if possible (small mode).
6ff3a151 2081
b91fd3c7
AM
2082fplt
2083Common Report Var(flag_plt) Init(1) Optimization
a7b2e184 2084Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
b91fd3c7 2085
68a607d8 2086fplugin=
21bf1558 2087Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 2088Specify a plugin to load.
68a607d8
DN
2089
2090fplugin-arg-
21bf1558 2091Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 2092-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>.
68a607d8 2093
bbc8a8dc 2094fpredictive-commoning
6ae4be32 2095Common Report Var(flag_predictive_commoning) Optimization
bbc8a8dc
ZD
2096Run predictive commoning optimization.
2097
de32c0cb 2098fprefetch-loop-arrays
1fbb509a 2099Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
a7b2e184 2100Generate prefetch instructions, if available, for arrays in loops.
de32c0cb 2101
6ff3a151 2102fprofile
50431bc4 2103Common Report Var(profile_flag)
a7b2e184 2104Enable basic program profiling code.
6ff3a151 2105
676519f7
BE
2106fprofile-abs-path
2107Common Report Var(profile_abs_path_flag)
2108Generate absolute source path names for gcov.
2109
6ff3a151 2110fprofile-arcs
50431bc4 2111Common Report Var(profile_arc_flag)
a7b2e184 2112Insert arc-based program profiling code.
6ff3a151 2113
2f908293 2114fprofile-dir=
0576d21f 2115Common Joined RejectNegative Var(profile_data_prefix)
2f908293
SP
2116Set the top-level directory for storing the profile data.
2117The default is 'pwd'.
2118
8e37c995
ML
2119fprofile-note=
2120Common Joined RejectNegative Var(profile_note_location)
2121Select the name for storing the profile note file.
2122
52c76998
PY
2123fprofile-correction
2124Common Report Var(flag_profile_correction)
a7b2e184 2125Enable correction of flow inconsistent profile data input.
52c76998 2126
22063dbc
ML
2127fprofile-update=
2128Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
4d209853 2129-fprofile-update=[single|atomic|prefer-atomic] Set the profile update method.
22063dbc 2130
e18240ff
ML
2131fprofile-filter-files=
2132Common Joined RejectNegative Var(flag_profile_filter_files)
2133Instrument only functions from files where names match any regular expression (separated by a semi-colon).
2134
2135fprofile-exclude-files=
2136Common Joined RejectNegative Var(flag_profile_exclude_files)
2137Instrument only functions from files where names do not match all the regular expressions (separated by a semi-colon).
2138
22063dbc
ML
2139Enum
2140Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
2141
2142EnumValue
2143Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
2144
2145EnumValue
2146Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
2147
4d209853
ML
2148EnumValue
2149Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC)
2150
a8a5f53a
JH
2151fprofile-generate
2152Common
a7b2e184 2153Enable common options for generating profile info for profile feedback directed optimizations.
a8a5f53a 2154
2f908293
SP
2155fprofile-generate=
2156Common Joined RejectNegative
a7b2e184 2157Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
2f908293 2158
a8a5f53a 2159fprofile-use
2f908293 2160Common Var(flag_profile_use)
a7b2e184 2161Enable common options for performing profile feedback directed optimizations.
a8a5f53a 2162
2f908293
SP
2163fprofile-use=
2164Common Joined RejectNegative
a7b2e184 2165Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
2f908293 2166
fca9dc00 2167fprofile-values
50431bc4 2168Common Report Var(flag_profile_values)
a7b2e184 2169Insert code to profile values of expressions.
fca9dc00 2170
37e5402b
JH
2171fprofile-report
2172Common Report Var(profile_report)
a7b2e184 2173Report on consistency of profile.
37e5402b 2174
9cec31f4
ML
2175fprofile-reorder-functions
2176Common Report Var(flag_profile_reorder_functions)
a7b2e184 2177Enable function reordering that improves code placement.
9cec31f4 2178
417ca011
TD
2179fpatchable-function-entry=
2180Common Joined Optimization
2181Insert NOP instructions at each function entry.
2182
de32c0cb 2183frandom-seed
299404a1 2184Common Var(common_deferred_options) Defer
de32c0cb
NB
2185
2186frandom-seed=
299404a1 2187Common Joined RejectNegative Var(common_deferred_options) Defer
4bfede85 2188-frandom-seed=<string> Make compile reproducible using <string>.
de32c0cb 2189
e0d9d0dd
NC
2190; This switch causes the command line that was used to create an
2191; object file to be recorded into the object file. The exact format
2192; of this recording is target and binary file format dependent.
2193; It is related to the -fverbose-asm switch, but that switch only
2194; records information in the assembler output file as comments, so
2195; they never reach the object file.
2196frecord-gcc-switches
2197Common Report Var(flag_record_gcc_switches)
2198Record gcc command line switches in the object file.
2199
de32c0cb 2200freg-struct-return
f0036cca 2201Common Report Var(flag_pcc_struct_return,0) Optimization
a7b2e184 2202Return small aggregates in registers.
de32c0cb 2203
6ff3a151 2204fregmove
3b6d1699
VM
2205Common Ignore
2206Does nothing. Preserved for backward compatibility.
6ff3a151 2207
f522930c 2208flifetime-dse
a021961c 2209Common Report Var(flag_lifetime_dse,2) Init(2) Optimization
f522930c
JM
2210Tell DSE that the storage for a C++ object is dead when the constructor
2211starts and when the destructor finishes.
2212
a021961c 2213flifetime-dse=
63010089 2214Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
a021961c 2215
6fd6a2ff
QZ
2216flive-patching
2217Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
2218
2219flive-patching=
2220Common Report Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization
2221-flive-patching=[inline-only-static|inline-clone] Control IPA
2222optimizations to provide a safe compilation for live-patching. At the same
2223time, provides multiple-level control on the enabled IPA optimizations.
2224
2225Enum
2226Name(live_patching_level) Type(enum live_patching_level) UnknownError(unknown Live-Patching Level %qs)
2227
2228EnumValue
2229Enum(live_patching_level) String(inline-only-static) Value(LIVE_PATCHING_INLINE_ONLY_STATIC)
2230
2231EnumValue
2232Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE)
2233
6343b6bf
ML
2234fallocation-dce
2235Common Report Var(flag_allocation_dce) Init(1) Optimization
2236Tell DCE to remove unused C++ allocations.
2237
f20f2613
VM
2238flive-range-shrinkage
2239Common Report Var(flag_live_range_shrinkage) Init(0) Optimization
a7b2e184 2240Relief of register pressure through live range shrinkage.
f20f2613 2241
6ff3a151 2242frename-registers
c662432e 2243Common Report Var(flag_rename_registers) Init(2) Optimization
a7b2e184 2244Perform a register renaming optimization pass.
6ff3a151 2245
b16abbcb
BC
2246fschedule-fusion
2247Common Report Var(flag_schedule_fusion) Init(2) Optimization
a7b2e184 2248Perform a target dependent instruction fusion optimization pass.
b16abbcb 2249
6ff3a151 2250freorder-blocks
c662432e 2251Common Report Var(flag_reorder_blocks) Optimization
a7b2e184 2252Reorder basic blocks to improve code placement.
6ff3a151 2253
59faab7c
SB
2254freorder-blocks-algorithm=
2255Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
6a825afe 2256-freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
59faab7c
SB
2257
2258Enum
2259Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2260
2261EnumValue
2262Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2263
2264EnumValue
2265Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
2266
750054a2 2267freorder-blocks-and-partition
c662432e 2268Common Report Var(flag_reorder_blocks_and_partition) Optimization
a7b2e184 2269Reorder basic blocks and partition into hot and cold sections.
750054a2 2270
6ff3a151 2271freorder-functions
c662432e 2272Common Report Var(flag_reorder_functions) Optimization
a7b2e184 2273Reorder functions to improve code placement.
6ff3a151 2274
de32c0cb 2275frerun-cse-after-loop
3020190e 2276Common Report Var(flag_rerun_cse_after_loop) Optimization
a7b2e184 2277Add a common subexpression elimination pass after loop optimizations.
de32c0cb 2278
efa1cdf0 2279frerun-loop-opt
2d2bd949 2280Common Ignore
c0220ea4 2281Does nothing. Preserved for backward compatibility.
efa1cdf0 2282
039c3d42 2283frounding-math
5e46b0c6 2284Common Report Var(flag_rounding_math) Optimization SetByCombined
a7b2e184 2285Disable optimizations that assume default FP rounding behavior.
039c3d42 2286
6ff3a151 2287fsched-interblock
c662432e 2288Common Report Var(flag_schedule_interblock) Init(1) Optimization
a7b2e184 2289Enable scheduling across basic blocks.
6ff3a151 2290
ce18efcb
VM
2291fsched-pressure
2292Common Report Var(flag_sched_pressure) Init(0) Optimization
a7b2e184 2293Enable register pressure sensitive insn scheduling.
ce18efcb 2294
6ff3a151 2295fsched-spec
c662432e 2296Common Report Var(flag_schedule_speculative) Init(1) Optimization
a7b2e184 2297Allow speculative motion of non-loads.
6ff3a151
NB
2298
2299fsched-spec-load
c662432e 2300Common Report Var(flag_schedule_speculative_load) Optimization
a7b2e184 2301Allow speculative motion of some loads.
6ff3a151
NB
2302
2303fsched-spec-load-dangerous
c662432e 2304Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
a7b2e184 2305Allow speculative motion of more loads.
6ff3a151 2306
de32c0cb 2307fsched-verbose=
4111f1c9 2308Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
a7b2e184 2309-fsched-verbose=<number> Set the verbosity level of the scheduler.
de32c0cb 2310
6ff3a151 2311fsched2-use-superblocks
c662432e 2312Common Report Var(flag_sched2_use_superblocks) Optimization
a7b2e184 2313If scheduling post reload, do superblock scheduling.
6ff3a151
NB
2314
2315fsched2-use-traces
2d2bd949 2316Common Ignore
57257f0d 2317Does nothing. Preserved for backward compatibility.
6ff3a151 2318
de32c0cb 2319fschedule-insns
c662432e 2320Common Report Var(flag_schedule_insns) Optimization
a7b2e184 2321Reschedule instructions before register allocation.
de32c0cb
NB
2322
2323fschedule-insns2
c662432e 2324Common Report Var(flag_schedule_insns_after_reload) Optimization
a7b2e184 2325Reschedule instructions after register allocation.
de32c0cb 2326
e855c69d
AB
2327; This flag should be on when a target implements non-trivial
2328; scheduling hooks, maybe saving some information for its own sake.
a7b2e184 2329; On IA64, for example, this is used for correct bundling.
e855c69d
AB
2330fselective-scheduling
2331Common Report Var(flag_selective_scheduling) Optimization
a7b2e184 2332Schedule instructions using selective scheduling algorithm.
e855c69d
AB
2333
2334fselective-scheduling2
a7b2e184
MS
2335Common Report Var(flag_selective_scheduling2) Optimization
2336Run selective scheduling after reload.
e855c69d 2337
ecfc21ff
DM
2338fself-test=
2339Common Undocumented Joined Var(flag_self_test)
2340Run self-tests, using the given path to locate test files.
d9b950dd 2341
e855c69d
AB
2342fsel-sched-pipelining
2343Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
a7b2e184 2344Perform software pipelining of inner loops during selective scheduling.
e855c69d
AB
2345
2346fsel-sched-pipelining-outer-loops
2347Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
a7b2e184 2348Perform software pipelining of outer loops during selective scheduling.
e855c69d
AB
2349
2350fsel-sched-reschedule-pipelined
2351Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
a7b2e184 2352Reschedule pipelined regions without pipelining.
e855c69d 2353
e288a46c
JH
2354fsemantic-interposition
2355Common Report Var(flag_semantic_interposition) Init(1)
a7b2e184 2356Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
e288a46c 2357
31b66477
KC
2358; sched_stalled_insns means that insns can be moved prematurely from the queue
2359; of stalled insns into the ready list.
569fa502 2360fsched-stalled-insns
ab442df7 2361Common Report Var(flag_sched_stalled_insns) Optimization UInteger
a7b2e184 2362Allow premature scheduling of queued insns.
569fa502
DN
2363
2364fsched-stalled-insns=
b16650ac 2365Common RejectNegative Joined UInteger Optimization
a7b2e184 2366-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled.
569fa502 2367
31b66477
KC
2368; sched_stalled_insns_dep controls how many recently scheduled cycles will
2369; be examined for a dependency on a stalled insn that is candidate for
2370; premature removal from the queue of stalled insns into the ready list (has
2371; an effect only if the flag 'sched_stalled_insns' is set).
569fa502 2372fsched-stalled-insns-dep
ab442df7 2373Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
a7b2e184 2374Set dependence distance checking in premature scheduling of queued insns.
569fa502
DN
2375
2376fsched-stalled-insns-dep=
b16650ac 2377Common RejectNegative Joined UInteger Optimization
a7b2e184 2378-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns.
569fa502 2379
ee4764a8
GS
2380fsched-group-heuristic
2381Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
a7b2e184 2382Enable the group heuristic in the scheduler.
ee4764a8
GS
2383
2384fsched-critical-path-heuristic
2385Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
a7b2e184 2386Enable the critical path heuristic in the scheduler.
ee4764a8
GS
2387
2388fsched-spec-insn-heuristic
2389Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
a7b2e184 2390Enable the speculative instruction heuristic in the scheduler.
ee4764a8 2391
ee4764a8
GS
2392fsched-rank-heuristic
2393Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
a7b2e184 2394Enable the rank heuristic in the scheduler.
ee4764a8
GS
2395
2396fsched-last-insn-heuristic
2397Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
a7b2e184 2398Enable the last instruction heuristic in the scheduler.
ee4764a8
GS
2399
2400fsched-dep-count-heuristic
2401Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
a7b2e184 2402Enable the dependent count heuristic in the scheduler.
ee4764a8 2403
aacd3885 2404fsection-anchors
c662432e 2405Common Report Var(flag_section_anchors) Optimization
a7b2e184 2406Access data in the same section from shared anchor points.
aacd3885 2407
8cd37d0b 2408fsee
2d2bd949 2409Common Ignore
8393a9c8 2410Does nothing. Preserved for backward compatibility.
8cd37d0b 2411
87a0ebfd 2412fzee
26cd9add
EI
2413Common Ignore
2414Does nothing. Preserved for backward compatibility.
2415
2416free
2417Common Report Var(flag_ree) Init(0)
2418Turn on Redundant Extensions Elimination pass.
87a0ebfd 2419
8abb6b22 2420fshow-column
1cb42611 2421Common Report Var(flag_show_column) Init(1)
a7b2e184 2422Show column numbers in diagnostics, when available. Default on.
8abb6b22 2423
484db665
BS
2424fshrink-wrap
2425Common Report Var(flag_shrink_wrap) Optimization
2426Emit function prologues only before parts of the function that need it,
2427rather than at the top of the function.
2428
20a6ece0
SB
2429fshrink-wrap-separate
2430Common Report Var(flag_shrink_wrap_separate) Init(1) Optimization
2431Shrink-wrap parts of the prologue and epilogue separately.
2432
6ff3a151 2433fsignaling-nans
5e46b0c6 2434Common Report Var(flag_signaling_nans) Optimization SetByCombined
a7b2e184 2435Disable optimizations observable by IEEE signaling NaNs.
6ff3a151 2436
db02da79 2437fsigned-zeros
5e46b0c6 2438Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined
a7b2e184 2439Disable floating point optimizations that ignore the IEEE signedness of zero.
db02da79 2440
6ff3a151 2441fsingle-precision-constant
c662432e 2442Common Report Var(flag_single_precision_constant) Optimization
a7b2e184 2443Convert floating point constants to single precision constants.
6ff3a151 2444
113d659a 2445fsplit-ivs-in-unroller
c662432e 2446Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
a7b2e184 2447Split lifetimes of induction variables when loops are unrolled.
113d659a 2448
7458026b
ILT
2449fsplit-stack
2450Common Report Var(flag_split_stack) Init(-1)
a7b2e184 2451Generate discontiguous stack frames.
7458026b 2452
e53a16e7 2453fsplit-wide-types
21af5cdf 2454Common Report Var(flag_split_wide_types) Optimization
a7b2e184 2455Split wide types into independent registers.
e53a16e7 2456
b18081df
SB
2457fsplit-wide-types-early
2458Common Report Var(flag_split_wide_types_early) Optimization
2459Split wide types into independent registers earlier.
2460
6a75d560
RS
2461fssa-backprop
2462Common Report Var(flag_ssa_backprop) Init(1) Optimization
2463Enable backward propagation of use properties at the SSA level.
2464
68f6df73
RB
2465fssa-phiopt
2466Common Report Var(flag_ssa_phiopt) Optimization
a7b2e184 2467Optimize conditional patterns using SSA PHI nodes.
68f6df73 2468
98ce9490
TV
2469fstdarg-opt
2470Common Report Var(flag_stdarg_opt) Init(1) Optimization
a7b2e184 2471Optimize amount of stdarg registers saved to stack at start of function.
98ce9490 2472
f37a4f14 2473fvariable-expansion-in-unroller
c662432e 2474Common Report Var(flag_variable_expansion_in_unroller) Optimization
a7b2e184 2475Apply variable expansion when loops are unrolled.
f37a4f14 2476
b38f3813 2477fstack-check=
ee8f15c6 2478Common Report RejectNegative Joined Optimization
a7b2e184 2479-fstack-check=[no|generic|specific] Insert stack checking code into the program.
b38f3813 2480
6ff3a151 2481fstack-check
5de8299c 2482Common Alias(fstack-check=, specific, no)
a7b2e184 2483Insert stack checking code into the program. Same as -fstack-check=specific.
6ff3a151 2484
ee8f15c6
JL
2485fstack-clash-protection
2486Common Report Var(flag_stack_clash_protection) Optimization
2487Insert code to probe each page of stack space as it is allocated to protect
2488from stack-clash style attacks.
2489
de32c0cb 2490fstack-limit
21bf1558 2491Common Var(common_deferred_options) Defer
de32c0cb 2492
058de654 2493fstack-limit-register=
21bf1558 2494Common RejectNegative Joined Var(common_deferred_options) Defer
a7b2e184 2495-fstack-limit-register=<register> Trap if the stack goes past <register>.
058de654
NB
2496
2497fstack-limit-symbol=
21bf1558 2498Common RejectNegative Joined Var(common_deferred_options) Defer
a7b2e184 2499-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.
058de654 2500
7d69de61 2501fstack-protector
5c846a81 2502Common Report Var(flag_stack_protect, 1) Init(-1) Optimization
a7b2e184 2503Use propolice as a stack protection method.
7d69de61
RH
2504
2505fstack-protector-all
5c846a81 2506Common Report RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
a7b2e184 2507Use a stack protection method for every function.
7d69de61 2508
f6bc1c4a 2509fstack-protector-strong
5c846a81 2510Common Report RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
a7b2e184 2511Use a smart stack protection method for certain functions.
f6bc1c4a 2512
5434dc07 2513fstack-protector-explicit
5c846a81 2514Common Report RejectNegative Var(flag_stack_protect, 4) Optimization
a7b2e184 2515Use stack protection method only for functions with the stack_protect attribute.
5434dc07 2516
d3c12306
EB
2517fstack-usage
2518Common RejectNegative Var(flag_stack_usage)
a7b2e184 2519Output stack usage information on a per-function basis.
d3c12306 2520
de32c0cb 2521fstrength-reduce
2d2bd949 2522Common Ignore
c0220ea4 2523Does nothing. Preserved for backward compatibility.
de32c0cb 2524
31b66477
KC
2525; Nonzero if we should do (language-dependent) alias analysis.
2526; Typically, this analysis will assume that expressions of certain
2527; types do not alias expressions of certain other types. Only used
2528; if alias analysis (in general) is enabled.
6ff3a151 2529fstrict-aliasing
c662432e 2530Common Report Var(flag_strict_aliasing) Optimization
a7b2e184 2531Assume strict aliasing rules apply.
6ff3a151 2532
eeef0e45 2533fstrict-overflow
3fccbb9e
JJ
2534Common Report
2535Treat signed overflow as undefined. Negated as -fwrapv -fwrapv-pointer.
eeef0e45 2536
e8053cf5
RH
2537fsync-libcalls
2538Common Report Var(flag_sync_libcalls) Init(1)
a7b2e184 2539Implement __atomic operations via libcalls to legacy __sync functions.
e8053cf5 2540
de32c0cb 2541fsyntax-only
50431bc4 2542Common Report Var(flag_syntax_only)
a7b2e184 2543Check for syntax errors, then stop.
de32c0cb 2544
6ff3a151 2545ftest-coverage
50431bc4 2546Common Report Var(flag_test_coverage)
a7b2e184 2547Create data files needed by \"gcov\".
6ff3a151 2548
de32c0cb 2549fthread-jumps
c662432e 2550Common Report Var(flag_thread_jumps) Optimization
a7b2e184 2551Perform jump threading optimizations.
de32c0cb 2552
6ff3a151 2553ftime-report
50431bc4 2554Common Report Var(time_report)
a7b2e184 2555Report the time taken by each compiler pass.
6ff3a151 2556
8df06bd0
RB
2557ftime-report-details
2558Common Report Var(time_report_details)
2559Record times taken by sub-phases separately.
2560
058de654 2561ftls-model=
e6d4b984 2562Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
a7b2e184 2563-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model.
058de654 2564
e6d4b984
JM
2565Enum
2566Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2567
2568EnumValue
2569Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2570
2571EnumValue
2572Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2573
2574EnumValue
2575Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2576
2577EnumValue
2578Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2579
474eccc6 2580ftoplevel-reorder
b16650ac 2581Common Report Var(flag_toplevel_reorder) Init(2)
a7b2e184 2582Reorder top level functions, variables, and asms.
474eccc6 2583
de32c0cb 2584ftracer
b16650ac 2585Common Report Var(flag_tracer) Optimization
a7b2e184 2586Perform superblock formation via tail duplication.
de32c0cb 2587
4c640e26
EB
2588ftrampolines
2589Common Report Var(flag_trampolines) Init(0)
2590For targets that normally need trampolines for nested functions, always
2591generate them instead of using descriptors.
2592
31b66477
KC
2593; Zero means that floating-point math operations cannot generate a
2594; (user-visible) trap. This is the case, for example, in nonstop
2595; IEEE 754 arithmetic.
6ff3a151 2596ftrapping-math
5e46b0c6 2597Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined
a7b2e184 2598Assume floating-point operations can trap.
6ff3a151
NB
2599
2600ftrapv
c662432e 2601Common Report Var(flag_trapv) Optimization
a7b2e184 2602Trap for signed overflow in addition, subtraction and multiplication.
6ff3a151 2603
6de9cd9a 2604ftree-ccp
c662432e 2605Common Report Var(flag_tree_ccp) Optimization
a7b2e184 2606Enable SSA-CCP optimization on trees.
6de9cd9a 2607
0b4b14ac
RG
2608ftree-bit-ccp
2609Common Report Var(flag_tree_bit_ccp) Optimization
a7b2e184 2610Enable SSA-BIT-CCP optimization on trees.
0b4b14ac 2611
0bca51f0 2612ftree-store-ccp
2d2bd949 2613Common Ignore
dce2b2f6 2614Does nothing. Preserved for backward compatibility.
0bca51f0 2615
6de9cd9a 2616ftree-ch
c662432e 2617Common Report Var(flag_tree_ch) Optimization
a7b2e184 2618Enable loop header copying on trees.
6de9cd9a 2619
21d01365 2620ftree-coalesce-inlined-vars
1f9ceff1
AO
2621Common Ignore RejectNegative
2622Does nothing. Preserved for backward compatibility.
21d01365
AO
2623
2624ftree-coalesce-vars
1f9ceff1 2625Common Report Var(flag_tree_coalesce_vars) Optimization
a7b2e184 2626Enable SSA coalescing of user variables.
21d01365 2627
6de9cd9a 2628ftree-copyrename
1f9ceff1
AO
2629Common Ignore
2630Does nothing. Preserved for backward compatibility.
6de9cd9a 2631
0bca51f0 2632ftree-copy-prop
c662432e 2633Common Report Var(flag_tree_copy_prop) Optimization
a7b2e184 2634Enable copy propagation on trees.
0bca51f0
DN
2635
2636ftree-store-copy-prop
2d2bd949 2637Common Ignore
e9033855 2638Does nothing. Preserved for backward compatibility.
0bca51f0 2639
a5828d1e
MM
2640ftree-cselim
2641Common Report Var(flag_tree_cselim) Init(2) Optimization
a7b2e184 2642Transform condition stores into unconditional ones.
a5828d1e 2643
b6e99746
MJ
2644ftree-switch-conversion
2645Common Report Var(flag_tree_switch_conversion) Optimization
2646Perform conversions of switch initializations.
2647
6de9cd9a 2648ftree-dce
c662432e 2649Common Report Var(flag_tree_dce) Optimization
a7b2e184 2650Enable SSA dead code elimination optimization on trees.
6de9cd9a
DN
2651
2652ftree-dominator-opts
c662432e 2653Common Report Var(flag_tree_dom) Optimization
a7b2e184 2654Enable dominator optimizations.
6de9cd9a 2655
c9e93168
TV
2656ftree-tail-merge
2657Common Report Var(flag_tree_tail_merge) Optimization
a7b2e184 2658Enable tail merging on trees.
c9e93168 2659
6de9cd9a 2660ftree-dse
c662432e 2661Common Report Var(flag_tree_dse) Optimization
a7b2e184 2662Enable dead store elimination.
6de9cd9a 2663
248fc9f3
RG
2664ftree-forwprop
2665Common Report Var(flag_tree_forwprop) Init(1) Optimization
a7b2e184 2666Enable forward propagation on trees.
248fc9f3 2667
ff2ad0f7 2668ftree-fre
c662432e 2669Common Report Var(flag_tree_fre) Optimization
a7b2e184 2670Enable Full Redundancy Elimination (FRE) on trees.
ff2ad0f7 2671
8b57bfeb
JJ
2672foptimize-strlen
2673Common Report Var(flag_optimize_strlen) Optimization
a7b2e184 2674Enable string length optimizations on trees.
8b57bfeb 2675
ae93744d
JL
2676fisolate-erroneous-paths-dereference
2677Common Report Var(flag_isolate_erroneous_paths_dereference) Optimization
408e8aa4
SL
2678Detect paths that trigger erroneous or undefined behavior due to
2679dereferencing a null pointer. Isolate those paths from the main control
2680flow and turn the statement with erroneous or undefined behavior into a trap.
ae93744d
JL
2681
2682fisolate-erroneous-paths-attribute
2683Common Report Var(flag_isolate_erroneous_paths_attribute) Optimization
51956afe 2684Detect paths that trigger erroneous or undefined behavior due to a null value
408e8aa4 2685being used in a way forbidden by a returns_nonnull or nonnull
ae93744d 2686attribute. Isolate those paths from the main control flow and turn the
a7b2e184 2687statement with erroneous or undefined behavior into a trap.
8fdc414d 2688
dea61d92 2689ftree-loop-distribution
53ed2f0e 2690Common Report Var(flag_tree_loop_distribution) Optimization
a7b2e184 2691Enable loop distribution on trees.
dea61d92 2692
20769d5e
SP
2693ftree-loop-distribute-patterns
2694Common Report Var(flag_tree_loop_distribute_patterns) Optimization
a7b2e184 2695Enable loop distribution for patterns transformed into a library call.
20769d5e 2696
1b08d87d 2697ftree-loop-im
c662432e 2698Common Report Var(flag_tree_loop_im) Init(1) Optimization
a7b2e184 2699Enable loop invariant motion on trees.
a7e5372d 2700
599eabdb 2701ftree-loop-linear
d6bb5ccf 2702Common Alias(floop-nest-optimize)
a7b2e184 2703Enable loop nest transforms. Same as -floop-nest-optimize.
599eabdb 2704
1b08d87d 2705ftree-loop-ivcanon
c662432e 2706Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
a7b2e184 2707Create canonical induction variables in loops.
1b08d87d 2708
c66b6c66 2709ftree-loop-optimize
c662432e 2710Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
a7b2e184 2711Enable loop optimizations on tree level.
c66b6c66 2712
5f40b3cb 2713ftree-parallelize-loops=
b16650ac 2714Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
9453ba0a 2715-ftree-parallelize-loops=<number> Enable automatic parallelization of loops.
5f40b3cb 2716
248fc9f3
RG
2717ftree-phiprop
2718Common Report Var(flag_tree_phiprop) Init(1) Optimization
2719Enable hoisting loads from conditional pointers.
2720
6de9cd9a 2721ftree-pre
c662432e 2722Common Report Var(flag_tree_pre) Optimization
a7b2e184 2723Enable SSA-PRE optimization on trees.
6de9cd9a 2724
fa06ad0d
JR
2725ftree-partial-pre
2726Common Report Var(flag_tree_partial_pre) Optimization
a7b2e184 2727In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
fa06ad0d 2728
248fc9f3 2729ftree-pta
14379e66 2730Common Report Var(flag_tree_pta) Optimization
248fc9f3
RG
2731Perform function-local points-to analysis on trees.
2732
13c59415
UB
2733ftree-reassoc
2734Common Report Var(flag_tree_reassoc) Init(1) Optimization
a7b2e184 2735Enable reassociation on tree level.
13c59415 2736
c75ab022 2737ftree-salias
2d2bd949 2738Common Ignore
1353232d 2739Does nothing. Preserved for backward compatibility.
c75ab022 2740
fa555252 2741ftree-sink
c662432e 2742Common Report Var(flag_tree_sink) Optimization
a7b2e184 2743Enable SSA code sinking on trees.
fa555252 2744
75cfe445
BS
2745ftree-slsr
2746Common Report Var(flag_tree_slsr) Optimization
a7b2e184 2747Perform straight-line strength reduction.
75cfe445 2748
6de9cd9a 2749ftree-sra
c662432e 2750Common Report Var(flag_tree_sra) Optimization
a7b2e184 2751Perform scalar replacement of aggregates.
6de9cd9a
DN
2752
2753ftree-ter
3020190e 2754Common Report Var(flag_tree_ter) Optimization
a7b2e184 2755Replace temporary expressions in the SSA->normal pass.
6de9cd9a 2756
c662432e
NC
2757ftree-lrs
2758Common Report Var(flag_tree_live_range_split) Optimization
a7b2e184 2759Perform live range splitting during the SSA->normal pass.
c662432e 2760
0bca51f0 2761ftree-vrp
c662432e 2762Common Report Var(flag_tree_vrp) Init(0) Optimization
a7b2e184 2763Perform Value Range Propagation on trees.
0bca51f0 2764
8fe17e23
AA
2765fsplit-paths
2766Common Report Var(flag_split_paths) Init(0) Optimization
2767Split paths leading to loop backedges.
2768
71017a7b
AL
2769funconstrained-commons
2770Common Var(flag_unconstrained_commons) Optimization
2771Assume common declarations may be overridden with ones with a larger
2772trailing array.
2773
de32c0cb 2774funit-at-a-time
b16650ac 2775Common Report Var(flag_unit_at_a_time) Init(1)
a7b2e184 2776Compile whole compilation unit at a time.
de32c0cb
NB
2777
2778funroll-loops
c662432e 2779Common Report Var(flag_unroll_loops) Optimization
a7b2e184 2780Perform loop unrolling when iteration count is known.
de32c0cb
NB
2781
2782funroll-all-loops
c662432e 2783Common Report Var(flag_unroll_all_loops) Optimization
a7b2e184 2784Perform loop unrolling for all loops.
de32c0cb 2785
f9cc1a70
PB
2786; Nonzero means that loop optimizer may assume that the induction variables
2787; that control loops do not overflow and that the loops with nontrivial
2788; exit condition are not infinite
2789funsafe-loop-optimizations
78f63b79
BC
2790Common Ignore
2791Does nothing. Preserved for backward compatibility.
f9cc1a70 2792
a1a82611 2793fassociative-math
b16650ac 2794Common Report Var(flag_associative_math) SetByCombined Optimization
a1a82611
RE
2795Allow optimization for floating-point arithmetic which may change the
2796result of the operation due to rounding.
2797
2798freciprocal-math
b16650ac 2799Common Report Var(flag_reciprocal_math) SetByCombined Optimization
a1a82611
RE
2800Same as -fassociative-math for expressions which include division.
2801
31b66477
KC
2802; Nonzero means that unsafe floating-point math optimizations are allowed
2803; for the sake of speed. IEEE compliance is not guaranteed, and operations
2804; are allowed to assume that their arguments and results are "normal"
2805; (e.g., nonnegative for SQRT).
6ff3a151 2806funsafe-math-optimizations
5e46b0c6 2807Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined
a7b2e184 2808Allow math optimizations that may violate IEEE or ISO standards.
6ff3a151 2809
de32c0cb 2810funswitch-loops
c662432e 2811Common Report Var(flag_unswitch_loops) Optimization
a7b2e184 2812Perform loop unswitching.
de32c0cb 2813
28df8730
MM
2814fsplit-loops
2815Common Report Var(flag_split_loops) Optimization
2816Perform loop splitting.
2817
13e08dc9
RS
2818fversion-loops-for-strides
2819Common Report Var(flag_version_loops_for_strides) Optimization
2820Version loops based on whether indices have a stride of one.
2821
6ff3a151 2822funwind-tables
c662432e 2823Common Report Var(flag_unwind_tables) Optimization
a7b2e184 2824Just generate unwind tables for exception handling.
6ff3a151 2825
b352afba 2826fuse-ld=bfd
b78e932d 2827Common Driver Negative(fuse-ld=gold)
a7b2e184 2828Use the bfd linker instead of the default linker.
b352afba
NC
2829
2830fuse-ld=gold
b78e932d 2831Common Driver Negative(fuse-ld=bfd)
a7b2e184 2832Use the gold linker instead of the default linker.
b352afba 2833
d69ac8b7
RG
2834fuse-ld=lld
2835Common Driver Negative(fuse-ld=lld)
2836Use the lld LLVM linker instead of the default linker.
2837
da18ea94 2838fuse-linker-plugin
063d671d 2839Common Undocumented Var(flag_use_linker_plugin)
da18ea94 2840
e90afde6
JM
2841; Positive if we should track variables, negative if we should run
2842; the var-tracking pass only to discard debug annotations, zero if
2843; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it
2844; will be set according to optimize, debug_info_level and debug_hooks
2845; in process_options ().
014a1138 2846fvar-tracking
ff98fa95 2847Common Report Var(flag_var_tracking) Init(2) PerFunction
a7b2e184 2848Perform variable tracking.
014a1138 2849
e90afde6
JM
2850; Positive if we should track variables at assignments, negative if
2851; we should run the var-tracking pass only to discard debug
2852; annotations. When flag_var_tracking_assignments ==
2853; AUTODETECT_VALUE it will be set according to flag_var_tracking.
b5b8b0ac 2854fvar-tracking-assignments
ff98fa95 2855Common Report Var(flag_var_tracking_assignments) Init(2) PerFunction
a7b2e184 2856Perform variable tracking by annotating assignments.
b5b8b0ac 2857
e90afde6
JM
2858; Nonzero if we should toggle flag_var_tracking_assignments after
2859; processing options and computing its default. */
b5b8b0ac 2860fvar-tracking-assignments-toggle
ff98fa95 2861Common Report Var(flag_var_tracking_assignments_toggle) PerFunction
a7b2e184 2862Toggle -fvar-tracking-assignments.
b5b8b0ac 2863
1267ca30
EB
2864; Positive if we should track uninitialized variables, negative if
2865; we should run the var-tracking pass only to discard debug
2866; annotations. When flag_var_tracking_uninit == AUTODETECT_VALUE it
2867; will be set according to flag_var_tracking.
62760ffd 2868fvar-tracking-uninit
ff98fa95 2869Common Report Var(flag_var_tracking_uninit) PerFunction
a7b2e184 2870Perform variable tracking and also tag variables that are uninitialized.
62760ffd 2871
26d476cd 2872; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
79fe1b3b 2873ftree-vectorize
26d476cd 2874Common Report Optimization
a7b2e184 2875Enable vectorization on trees.
79fe1b3b 2876
78c60e3d 2877ftree-vectorizer-verbose=
477e804b
SS
2878Common Joined RejectNegative Ignore
2879Does nothing. Preserved for backward compatibility.
78c60e3d 2880
ea0f3e87 2881ftree-loop-vectorize
26d476cd 2882Common Report Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
a7b2e184 2883Enable loop vectorization on trees.
ea0f3e87 2884
a70d6342 2885ftree-slp-vectorize
26d476cd 2886Common Report Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
a7b2e184 2887Enable basic block vectorization (SLP) on trees.
a70d6342 2888
d6d11272 2889fvect-cost-model=
b16650ac 2890Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
6a825afe 2891-fvect-cost-model=[unlimited|dynamic|cheap] Specifies the cost model for vectorization.
a7b2e184 2892
8b5e1202 2893fsimd-cost-model=
b16650ac 2894Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
6a825afe 2895-fsimd-cost-model=[unlimited|dynamic|cheap] Specifies the vectorization cost model for code marked with a simd directive.
8b5e1202 2896
d6d11272
XDL
2897Enum
2898Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
2899
2900EnumValue
2901Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
2902
2903EnumValue
2904Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
2905
2906EnumValue
2907Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
2908
792ed98b 2909fvect-cost-model
205d7111 2910Common Alias(fvect-cost-model=,dynamic,unlimited)
d6d11272
XDL
2911Enables the dynamic vectorizer cost model. Preserved for backward compatibility.
2912
c12cc930 2913ftree-vect-loop-version
d6d11272
XDL
2914Common Ignore
2915Does nothing. Preserved for backward compatibility.
c12cc930 2916
fbf798fc 2917ftree-scev-cprop
21af5cdf 2918Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
fbf798fc
DN
2919Enable copy propagation of scalar-evolution information.
2920
31b66477
KC
2921; -fverbose-asm causes extra commentary information to be produced in
2922; the generated assembly code (to make it more readable). This option
2923; is generally only of use to those who actually need to read the
2924; generated assembly code (perhaps while debugging the compiler itself).
2925; -fno-verbose-asm, the default, causes the extra information
2926; to not be added and is useful when comparing two assembler files.
6ff3a151 2927fverbose-asm
50431bc4 2928Common Report Var(flag_verbose_asm)
a7b2e184 2929Add extra commentary to assembler output.
6ff3a151 2930
d7afec4b 2931fvisibility=
e6d4b984 2932Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
a7b2e184 2933-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility.
d7afec4b 2934
e6d4b984
JM
2935Enum
2936Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
2937
2938EnumValue
2939Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
2940
2941EnumValue
2942Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
2943
2944EnumValue
2945Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
2946
2947EnumValue
2948Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
d7afec4b 2949
2077db1b
CT
2950fvtable-verify=
2951Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
2952Validate vtable pointers before using them.
2953
2954Enum
2955Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
2956
2957EnumValue
2958Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
2959
2960EnumValue
2961Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
2962
2963EnumValue
2964Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
2965
2966fvtv-counts
2967Common Var(flag_vtv_counts)
2968Output vtable verification counters.
2969
2970fvtv-debug
2971Common Var(flag_vtv_debug)
2972Output vtable verification pointer sets information.
2973
fca9dc00 2974fvpt
c662432e 2975Common Report Var(flag_value_profile_transformations) Optimization
a7b2e184 2976Use expression value profiles in optimizations.
fca9dc00 2977
62551c66 2978fweb
c662432e 2979Common Report Var(flag_web) Init(2) Optimization
a7b2e184 2980Construct webs and split unrelated uses of single variable.
62551c66 2981
c2699190
XDL
2982ftree-builtin-call-dce
2983Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
a7b2e184 2984Enable conditional dead code elimination for builtin calls.
c2699190 2985
ce91e74c 2986fwhole-program
b16650ac 2987Common Report Var(flag_whole_program) Init(0)
a7b2e184 2988Perform whole program optimizations.
ce91e74c 2989
3fccbb9e
JJ
2990fwrapv-pointer
2991Common Report Var(flag_wrapv_pointer) Optimization
2992Assume pointer overflow wraps around.
2993
6ff3a151 2994fwrapv
c662432e 2995Common Report Var(flag_wrapv) Optimization
a7b2e184 2996Assume signed arithmetic overflow wraps around.
6ff3a151 2997
6ff3a151 2998fzero-initialized-in-bss
50431bc4 2999Common Report Var(flag_zero_initialized_in_bss) Init(1)
a7b2e184 3000Put zero initialized data in the bss section.
6ff3a151 3001
e01cc6dc 3002g
9ed32e27 3003Common Driver RejectNegative JoinedOrMissing
a7b2e184 3004Generate debug information in default format.
df38ffef 3005
924c9e3e
AO
3006gas-loc-support
3007Common Driver Var(dwarf2out_as_loc_support) Init(2)
04e5c73d 3008Assume assembler support for (DWARF2+) .loc directives.
924c9e3e
AO
3009
3010gas-locview-support
3011Common Driver Var(dwarf2out_as_locview_support) Init(2)
04e5c73d 3012Assume assembler support for view in (DWARF2+) .loc directives.
924c9e3e 3013
e7e95821 3014gcoff
68a57628 3015Common Driver WarnRemoved
e7e95821
JW
3016Does nothing. Preserved for backward compatibility.
3017
3018gcoff1
68a57628 3019Common Driver WarnRemoved
e7e95821
JW
3020Does nothing. Preserved for backward compatibility.
3021
3022gcoff2
68a57628 3023Common Driver WarnRemoved
e7e95821
JW
3024Does nothing. Preserved for backward compatibility.
3025
3026gcoff3
68a57628 3027Common Driver WarnRemoved
e7e95821
JW
3028Does nothing. Preserved for backward compatibility.
3029
0029b929 3030gcolumn-info
8008dd1c 3031Common Driver Var(debug_column_info,1) Init(1)
0029b929
JJ
3032Record DW_AT_decl_column and DW_AT_call_column in DWARF.
3033
6782438d 3034gdwarf
1c70261c 3035Common Driver JoinedOrMissing Negative(gdwarf-)
a7b2e184 3036Generate debug information in default version of DWARF format.
6782438d 3037
53b2323e 3038gdwarf-
1c70261c 3039Common Driver Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs)
a7b2e184 3040Generate debug information in DWARF v2 (or later) format.
df38ffef
NB
3041
3042ggdb
1c70261c 3043Common Driver JoinedOrMissing
a7b2e184 3044Generate debug information in default extended format.
df38ffef 3045
924c9e3e
AO
3046ginline-points
3047Common Driver Var(debug_inline_points) Init(2)
04e5c73d 3048Generate extended entry point information for inlined functions.
924c9e3e
AO
3049
3050ginternal-reset-location-views
3051Common Driver Var(debug_internal_reset_location_views) Init(2)
04e5c73d 3052Compute locview reset points based on insn length estimates.
924c9e3e 3053
9ed32e27
AO
3054gno-
3055RejectNegative Joined Undocumented
3056; Catch the gno- prefix, so it doesn't backtrack to g<level>.
3057
5175cbaf 3058gno-pubnames
1c70261c 3059Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
5175cbaf
SA
3060Don't generate DWARF pubnames and pubtypes sections.
3061
3062gpubnames
1c70261c 3063Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
5175cbaf
SA
3064Generate DWARF pubnames and pubtypes sections.
3065
7a1dd0fa 3066ggnu-pubnames
1c70261c 3067Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
7a1dd0fa
SA
3068Generate DWARF pubnames and pubtypes sections with GNU extensions.
3069
e967adf4 3070grecord-gcc-switches
9ed32e27 3071Common Driver Var(dwarf_record_gcc_switches) Init(1)
e967adf4
JJ
3072Record gcc command line switches in DWARF DW_AT_producer.
3073
99ea153e 3074gsplit-dwarf
9ed32e27 3075Common Driver Var(dwarf_split_debug_info) Init(0)
a7b2e184 3076Generate debug information in separate .dwo files.
99ea153e 3077
df38ffef 3078gstabs
1c70261c 3079Common Driver JoinedOrMissing Negative(gstabs+)
a7b2e184 3080Generate debug information in STABS format.
df38ffef
NB
3081
3082gstabs+
1c70261c 3083Common Driver JoinedOrMissing Negative(gvms)
a7b2e184 3084Generate debug information in extended STABS format.
df38ffef 3085
8697bf9f
AO
3086gstatement-frontiers
3087Common Driver Var(debug_nonbind_markers_p) Init(2)
3088Emit progressive recommended breakpoint locations.
3089
65f753a0 3090gstrict-dwarf
9ed32e27 3091Common Driver Report Var(dwarf_strict) Init(0)
a7b2e184 3092Don't emit DWARF additions beyond selected version.
65f753a0 3093
03e992ac
TV
3094gdescribe-dies
3095Common Driver Report Var(flag_describe_dies) Init(0)
3096Add description attributes to some DWARF DIEs that have no name attribute.
3097
2153915d 3098gtoggle
1c70261c 3099Common Driver Report Var(flag_gtoggle)
a7b2e184 3100Toggle debug information generation.
2153915d 3101
bd2b9f1e
AO
3102gvariable-location-views
3103Common Driver Var(debug_variable_location_views, 1) Init(2)
3104Augment variable location lists with progressive views.
3105
3106gvariable-location-views=incompat5
3107Common Driver RejectNegative Var(debug_variable_location_views, -1) Init(2)
3108
df38ffef 3109gvms
1c70261c 3110Common Driver JoinedOrMissing Negative(gxcoff)
a7b2e184 3111Generate debug information in VMS format.
df38ffef
NB
3112
3113gxcoff
1c70261c 3114Common Driver JoinedOrMissing Negative(gxcoff+)
a7b2e184 3115Generate debug information in XCOFF format.
df38ffef
NB
3116
3117gxcoff+
180295ed 3118Common Driver JoinedOrMissing Negative(gdwarf)
a7b2e184 3119Generate debug information in extended XCOFF format.
e01cc6dc 3120
29d7cbd1
RO
3121Enum
3122Name(compressed_debug_sections) Type(int)
3123
3124; Since -gz= is completely handled in specs, the values aren't used and we
3125; assign arbitrary constants.
3126EnumValue
3127Enum(compressed_debug_sections) String(none) Value(0)
3128
3129EnumValue
3130Enum(compressed_debug_sections) String(zlib) Value(1)
3131
3132EnumValue
3133Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
3134
3135gz
3136Common Driver
a7b2e184 3137Generate compressed debug sections.
29d7cbd1
RO
3138
3139gz=
9ed32e27 3140Common Driver RejectNegative Joined Enum(compressed_debug_sections)
a7b2e184 3141-gz=<format> Generate compressed debug sections in format <format>.
29d7cbd1 3142
6d721f67
JM
3143h
3144Driver Joined Separate
3145
4adbd5dd
MK
3146iplugindir=
3147Common Joined Var(plugindir_string) Init(0)
a7b2e184 3148-iplugindir=<dir> Set <dir> to be the default plugin directory.
4adbd5dd 3149
e0cdc09f
MK
3150imultiarch
3151Common Joined Separate RejectDriver Var(imultiarch) Init(0)
a7b2e184 3152-imultiarch <dir> Set <dir> to be the multiarch include subdirectory.
e0cdc09f 3153
603349bf
JM
3154l
3155Driver Joined Separate
3156
dd9f93dc
JM
3157n
3158Driver
3159
603349bf
JM
3160no-canonical-prefixes
3161Driver
3162
d9d16a19
JM
3163nodefaultlibs
3164Driver
3165
bab79a40
JM
3166nostartfiles
3167Driver
3168
f37866e8
OH
3169nolibc
3170Driver
3171
d9d16a19
JM
3172nostdlib
3173Driver
3174
d185d268 3175o
d5478783 3176Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
a7b2e184 3177-o <file> Place output into <file>.
d185d268
NB
3178
3179p
50431bc4 3180Common Var(profile_flag)
a7b2e184 3181Enable function profiling.
d185d268 3182
603349bf
JM
3183pass-exit-codes
3184Driver Var(pass_exit_codes)
3185
d185d268 3186pedantic
c1771a20 3187Common Alias(Wpedantic)
d185d268
NB
3188
3189pedantic-errors
d5478783 3190Common Var(flag_pedantic_errors)
a7b2e184 3191Like -pedantic but issue them as errors.
d185d268 3192
d9d16a19
JM
3193pg
3194Driver
3195
603349bf
JM
3196pipe
3197Driver Var(use_pipes)
3198
3199print-file-name=
3200Driver JoinedOrMissing Var(print_file_name)
3201
3202print-libgcc-file-name
3203Driver
3204
3205print-multi-directory
3206Driver Var(print_multi_directory)
3207
3208print-multi-lib
3209Driver Var(print_multi_lib)
3210
3211print-multi-os-directory
3212Driver Var(print_multi_os_directory)
a7b2e184 3213
e0cdc09f
MK
3214print-multiarch
3215Driver Var(print_multiarch)
603349bf
JM
3216
3217print-prog-name=
3218Driver JoinedOrMissing Var(print_prog_name)
3219
3220print-search-dirs
3221Driver Var(print_search_dirs)
3222
3223print-sysroot
3224Driver Var(print_sysroot)
3225
3226print-sysroot-headers-suffix
3227Driver Var(print_sysroot_headers_suffix)
3228
d7b42618 3229quiet
603349bf 3230Common Var(quiet_flag) RejectDriver
a7b2e184 3231Do not display functions compiled or elapsed time.
d7b42618 3232
dd9f93dc
JM
3233r
3234Driver
3235
3236s
3237Driver
3238
603349bf
JM
3239save-temps
3240Driver
3241
3242save-temps=
3243Driver Joined
3244
dd9f93dc
JM
3245t
3246Driver
3247
603349bf
JM
3248time
3249Driver Var(report_times)
3250
3251time=
3252Driver JoinedOrMissing
3253
e200444e
JM
3254u
3255Driver Joined Separate
3256
5642f5d5
JM
3257undef
3258Driver
3259; C option, but driver must not handle as "-u ndef".
3260
603349bf 3261v
d5478783 3262Common Driver Var(verbose_flag)
a7b2e184 3263Enable verbose output.
603349bf 3264
d185d268 3265version
603349bf 3266Common Var(version_flag) RejectDriver
a7b2e184 3267Display the compiler's version.
d185d268
NB
3268
3269w
50431bc4 3270Common Var(inhibit_warnings)
a7b2e184 3271Suppress warnings.
d185d268 3272
603349bf
JM
3273wrapper
3274Driver Separate Var(wrapper_string)
3275
3276x
3277Driver Joined Separate
3278
528dc603 3279shared
b4fed890 3280Driver RejectNegative Negative(static-pie)
a7b2e184 3281Create a shared library.
528dc603 3282
603349bf
JM
3283shared-libgcc
3284Driver
3285
3286specs
5de8299c 3287Driver Separate Alias(specs=)
603349bf
JM
3288
3289specs=
3290Driver Joined
3291
d9d16a19
JM
3292static
3293Driver
3294
603349bf
JM
3295static-libgcc
3296Driver
3297
3298static-libgfortran
3299Driver
3300; Documented for Fortran, but always accepted by driver.
3301
3302static-libstdc++
3303Driver
3304
7a938933
ILT
3305static-libgo
3306Driver
3307; Documented for Go, but always accepted by driver.
3308
7e8d1b2d
L
3309static-libasan
3310Driver
3311
32b4b7f5
DV
3312static-libtsan
3313Driver
3314
9065ada9
JJ
3315static-liblsan
3316Driver
3317
de5a5fa1
MP
3318static-libubsan
3319Driver
3320
e200444e
JM
3321symbolic
3322Driver
3323
428b3812 3324no-pie
5460e1fc 3325Driver RejectNegative Negative(shared)
b4fed890 3326Don't create a dynamically linked position independent executable.
428b3812
L
3327
3328pie
3329Driver RejectNegative Negative(no-pie)
b4fed890
L
3330Create a dynamically linked position independent executable.
3331
3332static-pie
3333Driver RejectNegative Negative(pie)
3334Create a static position independent executable.
528dc603 3335
6d721f67
JM
3336z
3337Driver Joined Separate
3338
1e288103
TV
3339fipa-ra
3340Common Report Var(flag_ipa_ra) Optimization
a7b2e184 3341Use caller save register across calls if possible.
d996e61a 3342
d7b42618 3343; This comment is to ensure we retain the blank line above.
This page took 5.215438 seconds and 5 git commands to generate.