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