]> gcc.gnu.org Git - gcc.git/blame - gcc/common.opt
Add a testcase for PR target/43668.
[gcc.git] / gcc / common.opt
CommitLineData
d7b42618 1; Options for the language- and target-independent parts of the compiler.
50431bc4 2
d7fb0a6d 3; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
28a08168 4; Free Software Foundation, Inc.
d7b42618
NB
5;
6; This file is part of GCC.
7;
8; GCC is free software; you can redistribute it and/or modify it under
9; the terms of the GNU General Public License as published by the Free
9dcd6f09 10; Software Foundation; either version 3, or (at your option) any later
d7b42618 11; version.
c22cacf3 12;
d7b42618
NB
13; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14; WARRANTY; without even the implied warranty of MERCHANTABILITY or
15; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16; for more details.
c22cacf3 17;
d7b42618 18; You should have received a copy of the GNU General Public License
9dcd6f09
NC
19; along with GCC; see the file COPYING3. If not see
20; <http://www.gnu.org/licenses/>.
d7b42618 21
71733172 22; See the GCC internals manual (options.texi) for a description of this file's format.
d7b42618
NB
23
24; Please try to keep this file in ASCII collating order.
25
d185d268
NB
26-help
27Common
cf03fd63 28Display this information
d185d268 29
c662432e
NC
30-help=
31Common Report Joined
32--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
903caebf 33
d185d268
NB
34-target-help
35Common
c662432e
NC
36Alias for --help=target
37
41fd0f9b 38;; The following four entries are to work around the gcc driver
c662432e
NC
39;; program's insatiable desire to turn options starting with a
40;; double dash (--) into options starting with a dash f (-f).
41fhelp
02e819ff 42Common Var(help_flag)
c662432e
NC
43
44fhelp=
45Common Joined
46
47ftarget-help
48Common
49
41fd0f9b
RAE
50fversion
51Common
52
c662432e
NC
53-param
54Common Separate
55--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
d185d268
NB
56
57-version
58Common
59
60G
7b086b11 61Common Joined Separate UInteger
cf03fd63 62-G<number> Put global and static data smaller than <number> bytes into a special section (on some targets)
d185d268 63
903caebf 64O
ab442df7 65Common JoinedOrMissing Optimization
cf03fd63 66-O<number> Set optimization level to <number>
903caebf
NB
67
68Os
ab442df7 69Common Optimization
cf03fd63 70Optimize for space rather than speed
903caebf
NB
71
72W
62a67c94 73Common RejectNegative Var(extra_warnings) Warning
28786366 74This switch is deprecated; use -Wextra instead
903caebf 75
e01cc6dc 76Waggregate-return
c662432e 77Common Var(warn_aggregate_return) Warning
28786366 78Warn about returning structures, unions or arrays
e01cc6dc 79
590b1f2d 80Warray-bounds
21af5cdf 81Common Var(warn_array_bounds) Warning
590b1f2d
DM
82Warn if an array is accessed out of bounds
83
5c498b10 84Wattributes
c662432e 85Common Var(warn_attributes) Init(1) Warning
5c498b10
DD
86Warn about inappropriate attribute usage
87
e01cc6dc 88Wcast-align
c662432e 89Common Var(warn_cast_align) Warning
28786366 90Warn about pointer casts which increase alignment
e01cc6dc 91
87cf0651
SB
92Wcpp
93Common Var(warn_cpp) Init(1) Warning
94Warn when a #warning directive is encountered
95
e01cc6dc 96Wdeprecated-declarations
c662432e 97Common Var(warn_deprecated_decl) Init(1) Warning
28786366 98Warn about uses of __attribute__((deprecated)) declarations
e01cc6dc
NB
99
100Wdisabled-optimization
c662432e 101Common Var(warn_disabled_optimization) Warning
28786366 102Warn when an optimization pass is disabled
e01cc6dc
NB
103
104Werror
50431bc4 105Common Var(warnings_are_errors)
28786366 106Treat all warnings as errors
e01cc6dc 107
79cf5994
DD
108Werror=
109Common Joined
110Treat specified warning as error
111
903caebf 112Wextra
62a67c94 113Common Var(extra_warnings) Warning
cf03fd63 114Print extra (possibly unwanted) warnings
903caebf 115
c65a01af 116Wfatal-errors
50431bc4 117Common Var(flag_fatal_errors)
c65a01af
RG
118Exit on the first error occurred
119
a214518f
SP
120Wframe-larger-than=
121Common RejectNegative Joined UInteger
f94e1d66 122-Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
a214518f 123
e01cc6dc 124Winline
c662432e 125Common Var(warn_inline) Warning
28786366 126Warn when an inlined function cannot be inlined
e01cc6dc
NB
127
128Wlarger-than-
e7a84854 129Common RejectNegative Joined UInteger Warning Undocumented
e8fc888d
MLI
130
131Wlarger-than=
132Common RejectNegative Joined UInteger Warning
133-Wlarger-than=<number> Warn if an object is larger than <number> bytes
e01cc6dc 134
f9cc1a70 135Wunsafe-loop-optimizations
c662432e 136Common Var(warn_unsafe_loop_optimizations) Warning
f9cc1a70
PB
137Warn if the loop cannot be optimized due to nontrivial assumptions.
138
e01cc6dc 139Wmissing-noreturn
c662432e 140Common Var(warn_missing_noreturn) Warning
28786366 141Warn about functions which might be candidates for __attribute__((noreturn))
e01cc6dc 142
7621f5d5
VR
143Wmudflap
144Common Var(warn_mudflap) Init(1) Warning
145Warn about constructs not instrumented by -fmudflap
146
71834ad3 147Woverflow
c662432e 148Common Var(warn_overflow) Init(1) Warning
71834ad3
RS
149Warn about overflow in arithmetic expressions
150
e01cc6dc 151Wpacked
c662432e 152Common Var(warn_packed) Warning
28786366 153Warn when the packed attribute has no effect on struct layout
e01cc6dc
NB
154
155Wpadded
c662432e 156Common Var(warn_padded) Warning
28786366 157Warn when padding is required to align structure members
e01cc6dc
NB
158
159Wshadow
c662432e 160Common Var(warn_shadow) Warning
28786366 161Warn when one local variable shadows another
e01cc6dc 162
7d69de61 163Wstack-protector
c662432e 164Common Var(warn_stack_protect) Warning
7d69de61
RH
165Warn when not issuing stack smashing protection for some reason
166
e01cc6dc 167Wstrict-aliasing
c662432e 168Common Warning
28786366 169Warn about code which might break strict aliasing rules
e01cc6dc 170
5399d643 171Wstrict-aliasing=
027b740e 172Common Joined UInteger Var(warn_strict_aliasing) Init(-1) Warning
5399d643
JW
173Warn about code which might break strict aliasing rules
174
6ac01510 175Wstrict-overflow
21af5cdf 176Common Warning
6ac01510
ILT
177Warn about optimizations that assume that signed overflow is undefined
178
179Wstrict-overflow=
027b740e 180Common Joined UInteger Var(warn_strict_overflow) Init(-1) Warning
6ac01510
ILT
181Warn about optimizations that assume that signed overflow is undefined
182
5dc16b19
MLI
183Wsuggest-attribute=const
184Common Var(warn_suggest_attribute_const) Warning
185Warn about functions which might be candidates for __attribute__((const))
186
187Wsuggest-attribute=pure
188Common Var(warn_suggest_attribute_pure) Warning
189Warn about functions which might be candidates for __attribute__((pure))
190
e01cc6dc 191Wswitch
c662432e 192Common Var(warn_switch) Warning
28786366 193Warn about enumerated switches, with no default, missing a case
e01cc6dc
NB
194
195Wswitch-default
c662432e 196Common Var(warn_switch_default) Warning
28786366 197Warn about enumerated switches missing a \"default:\" statement
e01cc6dc
NB
198
199Wswitch-enum
c662432e 200Common Var(warn_switch_enum) Warning
28786366 201Warn about all enumerated switches missing a specific case
e01cc6dc
NB
202
203Wsystem-headers
c662432e 204Common Var(warn_system_headers) Warning
f3fdaec4 205Do not suppress warnings from system headers
e01cc6dc 206
faebccf9
DN
207Wtype-limits
208Common Var(warn_type_limits) Init(-1) Warning
209Warn if a comparison is always true or always false due to the limited range of the data type
210
e01cc6dc 211Wuninitialized
62a67c94 212Common Var(warn_uninitialized) Init(-1) Warning
28786366 213Warn about uninitialized automatic variables
e01cc6dc
NB
214
215Wunreachable-code
bc3c12a2
EF
216Common
217Does nothing. Preserved for backward compatibility.
e01cc6dc 218
903caebf 219Wunused
e73f7547 220Common Var(warn_unused) Init(0) Warning
cf03fd63 221Enable all -Wunused- warnings
903caebf 222
ebfbbdc5
JJ
223Wunused-but-set-parameter
224Common Var(warn_unused_but_set_parameter) Init(-1) Warning
225Warn when a function parameter is only set, otherwise unused
226
227Wunused-but-set-variable
228Common Var(warn_unused_but_set_variable) Init(-1) Warning
229Warn when a variable is only set, otherwise unused
230
e01cc6dc 231Wunused-function
e73f7547 232Common Var(warn_unused_function) Init(-1) Warning
28786366 233Warn when a function is unused
e01cc6dc
NB
234
235Wunused-label
e73f7547 236Common Var(warn_unused_label) Init(-1) Warning
28786366 237Warn when a label is unused
e01cc6dc
NB
238
239Wunused-parameter
e73f7547 240Common Var(warn_unused_parameter) Init(-1) Warning
28786366 241Warn when a function parameter is unused
e01cc6dc
NB
242
243Wunused-value
e73f7547 244Common Var(warn_unused_value) Init(-1) Warning
28786366 245Warn when an expression value is unused
e01cc6dc
NB
246
247Wunused-variable
e73f7547 248Common Var(warn_unused_variable) Init(-1) Warning
28786366 249Warn when a variable is unused
e01cc6dc 250
16c1c158 251Wcoverage-mismatch
21af5cdf 252Common RejectNegative Var(warn_coverage_mismatch) Warning
16c1c158
RG
253Warn instead of error in case profiles in -fprofile-use do not match
254
d185d268
NB
255aux-info
256Common Separate
cf03fd63 257-aux-info <file> Emit declaration information into <file>
d185d268
NB
258
259aux-info=
260Common Joined
261
262auxbase
263Common Separate
264
265auxbase-strip
266Common Separate
267
268d
269Common Joined
cf03fd63 270-d<letters> Enable dumps from specific passes of the compiler
d185d268
NB
271
272dumpbase
273Common Separate
cf03fd63 274-dumpbase <file> Set the file basename to be used for dumps
d185d268 275
d7fb0a6d
L
276dumpdir
277Common Separate
316fc112 278-dumpdir <dir> Set the directory name to be used for dumps
d7fb0a6d 279
31b66477
KC
280; The version of the C++ ABI in use. The following values are allowed:
281;
282; 0: The version of the ABI believed most conformant with the C++ ABI
283; specification. This ABI may change as bugs are discovered and fixed.
284; Therefore, 0 will not necessarily indicate the same ABI in different
285; versions of G++.
286;
287; 1: The version of the ABI first used in G++ 3.2.
288;
abfe01ce
JM
289; 2: The version of the ABI first used in G++ 3.4 (and current default).
290;
291; 3: The version of the ABI that fixes the missing underscore
292; in template non-type arguments of pointer type.
293;
294; 4: The version of the ABI that introduces unambiguous mangling of
295; vector types.
99a8d35b 296;
31b66477
KC
297; Additional positive integers will be assigned as new versions of
298; the ABI become the default version of the ABI.
57782ad8 299fabi-version=
50431bc4 300Common Joined UInteger Var(flag_abi_version) Init(2)
57782ad8 301
6ff3a151 302falign-functions
ab442df7 303Common Report Var(align_functions,0) Optimization UInteger
f3fdaec4 304Align the start of functions
6ff3a151 305
058de654
NB
306falign-functions=
307Common RejectNegative Joined UInteger
308
6ff3a151 309falign-jumps
ab442df7 310Common Report Var(align_jumps,0) Optimization UInteger
f3fdaec4 311Align labels which are only reached by jumping
6ff3a151 312
058de654
NB
313falign-jumps=
314Common RejectNegative Joined UInteger
315
6ff3a151 316falign-labels
ab442df7 317Common Report Var(align_labels,0) Optimization UInteger
f3fdaec4 318Align all labels
6ff3a151 319
058de654
NB
320falign-labels=
321Common RejectNegative Joined UInteger
322
6ff3a151 323falign-loops
ab442df7 324Common Report Var(align_loops) Optimization UInteger
f3fdaec4 325Align the start of loops
6ff3a151 326
058de654
NB
327falign-loops=
328Common RejectNegative Joined UInteger
329
6ff3a151 330fargument-alias
0d3c82d6
RG
331Common
332Does nothing. Preserved for backward compatibility.
6ff3a151
NB
333
334fargument-noalias
0d3c82d6
RG
335Common
336Does nothing. Preserved for backward compatibility.
6ff3a151
NB
337
338fargument-noalias-global
0d3c82d6
RG
339Common
340Does nothing. Preserved for backward compatibility.
6ff3a151 341
0698a1d2 342fargument-noalias-anything
0d3c82d6
RG
343Common
344Does nothing. Preserved for backward compatibility.
0698a1d2 345
6ff3a151 346fasynchronous-unwind-tables
c662432e 347Common Report Var(flag_asynchronous_unwind_tables) Optimization
f3fdaec4 348Generate unwind tables that are exact at each instruction boundary
6ff3a151 349
6fb5fa3c
DB
350fauto-inc-dec
351Common Report Var(flag_auto_inc_dec) Init(1)
352Generate auto-inc/dec instructions
353
31b66477
KC
354; -fcheck-bounds causes gcc to generate array bounds checks.
355; For C, C++ and ObjC: defaults off.
356; For Java: defaults to on.
357; For Fortran: defaults to off.
6ff3a151 358fbounds-check
50431bc4 359Common Report Var(flag_bounds_check)
f3fdaec4 360Generate code to check bounds before indexing arrays
6ff3a151
NB
361
362fbranch-count-reg
c662432e 363Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
f3fdaec4 364Replace add, compare, branch with branch on count register
6ff3a151
NB
365
366fbranch-probabilities
c662432e 367Common Report Var(flag_branch_probabilities) Optimization
f3fdaec4 368Use profiling information for branch probabilities
6ff3a151 369
de32c0cb 370fbranch-target-load-optimize
c662432e 371Common Report Var(flag_branch_target_load_optimize) Optimization
f3fdaec4 372Perform branch target load optimization before prologue / epilogue threading
de32c0cb
NB
373
374fbranch-target-load-optimize2
c662432e 375Common Report Var(flag_branch_target_load_optimize2) Optimization
f3fdaec4 376Perform branch target load optimization after prologue / epilogue threading
de32c0cb 377
1194fc79 378fbtr-bb-exclusive
c662432e 379Common Report Var(flag_btr_bb_exclusive) Optimization
1194fc79
R
380Restrict target load migration not to re-use registers in any basic block
381
058de654
NB
382fcall-saved-
383Common Joined RejectNegative
cf03fd63 384-fcall-saved-<register> Mark <register> as being preserved across functions
058de654
NB
385
386fcall-used-
387Common Joined RejectNegative
cf03fd63 388-fcall-used-<register> Mark <register> as being corrupted by function calls
058de654 389
31b66477
KC
390; Nonzero for -fcaller-saves: allocate values in regs that need to
391; be saved across function calls, if that produces overall better code.
392; Optional now, so people can test it.
de32c0cb 393fcaller-saves
c662432e 394Common Report Var(flag_caller_saves) Optimization
f3fdaec4 395Save registers around function calls
de32c0cb 396
3d8864c0
SP
397fcheck-data-deps
398Common Report Var(flag_check_data_deps)
399Compare the results of several data dependence analyzers.
400
6ff3a151 401fcommon
c662432e 402Common Report Var(flag_no_common,0) Optimization
f3fdaec4 403Do not put uninitialized globals in the common section
6ff3a151 404
2153915d
AO
405fcompare-debug=
406Common JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
f94e1d66 407-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
2153915d
AO
408
409fcompare-debug-second
410Common RejectNegative Var(flag_compare_debug)
411Run only the second compilation of -fcompare-debug
412
b5b8b0ac
AO
413fconserve-stack
414Common Var(flag_conserve_stack) Optimization
415Do not perform optimizations increasing noticeably stack usage
416
6ff3a151 417fcprop-registers
c662432e 418Common Report Var(flag_cprop_registers) Optimization
f3fdaec4 419Perform a register copy-propagation optimization pass
6ff3a151 420
de32c0cb 421fcrossjumping
c662432e 422Common Report Var(flag_crossjumping) Optimization
f3fdaec4 423Perform cross-jumping optimization
de32c0cb
NB
424
425fcse-follow-jumps
c662432e 426Common Report Var(flag_cse_follow_jumps) Optimization
f3fdaec4 427When running CSE, follow jumps to their targets
de32c0cb
NB
428
429fcse-skip-blocks
5f39ad47
SB
430Common
431Does nothing. Preserved for backward compatibility.
de32c0cb 432
c7463669 433fcx-limited-range
c662432e 434Common Report Var(flag_cx_limited_range) Optimization
c7463669
RH
435Omit range reduction step when performing complex division
436
35085f76
JB
437fcx-fortran-rules
438Common Report Var(flag_cx_fortran_rules) Optimization
439Complex multiplication and division follow Fortran rules
440
6ff3a151 441fdata-sections
c662432e 442Common Report Var(flag_data_sections) Optimization
f3fdaec4 443Place data items into their own section
6ff3a151 444
0a090f42
SP
445fdbg-cnt-list
446Common Report
447List all available debugging counters with their limits and counts.
448
6fb5fa3c
DB
449fdbg-cnt=
450Common RejectNegative Joined
f94e1d66 451-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
6fb5fa3c 452
c8aea42c
PB
453fdebug-prefix-map=
454Common Joined RejectNegative
455Map one directory name to another in debug information
456
31b66477
KC
457; Nonzero for -fdefer-pop: don't pop args after each function call
458; instead save them up to pop many calls' args with one insns.
de32c0cb 459fdefer-pop
c662432e 460Common Report Var(flag_defer_pop) Optimization
f3fdaec4 461Defer popping functions args from stack until later
de32c0cb
NB
462
463fdelayed-branch
c662432e 464Common Report Var(flag_delayed_branch) Optimization
f3fdaec4 465Attempt to fill delay slots of branch instructions
de32c0cb
NB
466
467fdelete-null-pointer-checks
1ad2f450 468Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
f3fdaec4 469Delete useless null pointer checks
de32c0cb
NB
470
471fdiagnostics-show-location=
472Common Joined RejectNegative
cf03fd63 473-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
de32c0cb 474
ccf08a6e 475fdiagnostics-show-option
c7d0de89 476Common Var(flag_diagnostics_show_option) Init(1)
c85ce869 477Amend appropriate diagnostic messages with the command line option that controls them
ccf08a6e 478
6de9cd9a
DN
479fdump-
480Common Joined RejectNegative
481-fdump-<type> Dump various compiler internals to a file
482
2153915d
AO
483fdump-final-insns=
484Common RejectNegative Joined Var(flag_dump_final_insns)
485-fdump-final-insns=filename Dump to filename the insns at the end of translation
486
24a7799e
R
487fdump-noaddr
488Common Report Var(flag_dump_noaddr)
489Suppress output of addresses in debugging dumps
490
6ff3a151 491fdump-unnumbered
50431bc4 492Common Report Var(flag_dump_unnumbered) VarExists
24a7799e 493Suppress output of instruction numbers, line number notes and addresses in debugging dumps
6ff3a151 494
2aa7c49b
AO
495fdump-unnumbered-links
496Common Report Var(flag_dump_unnumbered_links) VarExists
497Suppress output of previous and next insn numbers in debugging dumps
498
b5b8b0ac
AO
499fdwarf2-cfi-asm
500Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
501Enable CFI tables via GAS assembler directives.
502
355866de 503fearly-inlining
c662432e 504Common Report Var(flag_early_inlining) Init(1) Optimization
355866de
RG
505Perform early inlining
506
de32c0cb 507feliminate-dwarf2-dups
50431bc4 508Common Report Var(flag_eliminate_dwarf2_dups)
f3fdaec4 509Perform DWARF2 duplicate elimination
de32c0cb 510
07ffa034
MJ
511fipa-sra
512Common Report Var(flag_ipa_sra) Init(0) Optimization
513Perform interprocedural reduction of aggregates
514
6a08f7b3 515feliminate-unused-debug-symbols
50431bc4 516Common Report Var(flag_debug_only_used_symbols)
f3fdaec4 517Perform unused type elimination in debug info
6a08f7b3 518
de32c0cb 519feliminate-unused-debug-types
50431bc4 520Common Report Var(flag_eliminate_unused_debug_types) Init(1)
f3fdaec4 521Perform unused type elimination in debug info
de32c0cb 522
e713adf6 523femit-class-debug-always
eae8e474 524Common Report Var(flag_emit_class_debug_always) Init(0)
e713adf6
CD
525Do not suppress C++ class debug information.
526
77831620
CC
527fenable-icf-debug
528Common Report Var(flag_enable_icf_debug)
529Generate debug information to support Identical Code Folding (ICF)
530
6ff3a151 531fexceptions
c662432e 532Common Report Var(flag_exceptions) Optimization
f3fdaec4 533Enable exception handling
6ff3a151 534
de32c0cb 535fexpensive-optimizations
c662432e 536Common Report Var(flag_expensive_optimizations) Optimization
f3fdaec4 537Perform a number of minor, expensive optimizations
de32c0cb 538
8ce94e44
JM
539fexcess-precision=
540Common Joined RejectNegative
541-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
542
058de654
NB
543ffast-math
544Common
545
6ff3a151 546ffinite-math-only
c662432e 547Common Report Var(flag_finite_math_only) Optimization
f3fdaec4 548Assume no NaNs or infinities are generated
6ff3a151 549
058de654
NB
550ffixed-
551Common Joined RejectNegative
cf03fd63 552-ffixed-<register> Mark <register> as being unavailable to the compiler
058de654 553
de32c0cb 554ffloat-store
c662432e 555Common Report Var(flag_float_store) Optimization
31b66477 556Don't allocate floats and doubles in extended-precision registers
de32c0cb
NB
557
558fforce-addr
3de5e93a
SB
559Common
560Does nothing. Preserved for backward compatibility.
de32c0cb 561
2ca2b607
SB
562fforward-propagate
563Common Report Var(flag_forward_propagate) Optimization
a52b023a
PB
564Perform a forward propagation pass on RTL
565
31b66477
KC
566; Nonzero means don't put addresses of constant functions in registers.
567; Used for compiling the Unix kernel, where strange substitutions are
568; done on the assembly output.
de32c0cb 569ffunction-cse
50431bc4 570Common Report Var(flag_no_function_cse,0)
f3fdaec4 571Allow function addresses to be held in registers
de32c0cb 572
6ff3a151 573ffunction-sections
50431bc4 574Common Report Var(flag_function_sections)
f3fdaec4 575Place each function into its own section
6ff3a151 576
de32c0cb 577fgcse
c662432e 578Common Report Var(flag_gcse) Optimization
f3fdaec4 579Perform global common subexpression elimination
de32c0cb
NB
580
581fgcse-lm
c662432e 582Common Report Var(flag_gcse_lm) Init(1) Optimization
f3fdaec4 583Perform enhanced load motion during global common subexpression elimination
de32c0cb
NB
584
585fgcse-sm
c662432e 586Common Report Var(flag_gcse_sm) Init(0) Optimization
f3fdaec4 587Perform store motion after global common subexpression elimination
de32c0cb 588
f5f2e3cd 589fgcse-las
c662432e 590Common Report Var(flag_gcse_las) Init(0) Optimization
f9957958
MH
591Perform redundant load after store elimination in global common subexpression
592elimination
593
594fgcse-after-reload
c662432e 595Common Report Var(flag_gcse_after_reload) Optimization
f9957958 596Perform global common subexpression elimination after register allocation
c85ce869 597has finished
f5f2e3cd 598
d0a58904 599; This option is not documented yet as its semantics will change.
f8bf9252
SP
600fgraphite
601Common Report Var(flag_graphite)
602Enable in and out of Graphite representation
603
204b560f
SP
604fgraphite-identity
605Common Report Var(flag_graphite_identity) Optimization
606Enable Graphite Identity transformation
607
3cf0e270
SP
608floop-parallelize-all
609Common Report Var(flag_loop_parallelize_all) Optimization
204b560f
SP
610Mark all loops as parallel
611
f8bf9252
SP
612floop-strip-mine
613Common Report Var(flag_loop_strip_mine) Optimization
614Enable Loop Strip Mining transformation
615
616floop-interchange
617Common Report Var(flag_loop_interchange) Optimization
618Enable Loop Interchange transformation
619
620floop-block
621Common Report Var(flag_loop_block) Optimization
622Enable Loop Blocking transformation
623
6ff3a151 624fguess-branch-probability
c662432e 625Common Report Var(flag_guess_branch_prob) Optimization
f3fdaec4 626Enable guessing of branch probabilities
6ff3a151 627
31b66477
KC
628; Nonzero means ignore `#ident' directives. 0 means handle them.
629; Generate position-independent code for executables if possible
630; On SVR4 targets, it also controls whether or not to emit a
631; string identifying the compiler.
6ff3a151 632fident
50431bc4 633Common Report Var(flag_no_ident,0)
f3fdaec4 634Process #ident directives
6ff3a151 635
de32c0cb 636fif-conversion
c662432e 637Common Report Var(flag_if_conversion) Optimization
f3fdaec4 638Perform conversion of conditional jumps to branchless equivalents
de32c0cb
NB
639
640fif-conversion2
c662432e 641Common Report Var(flag_if_conversion2) Optimization
f3fdaec4 642Perform conversion of conditional jumps to conditional execution
de32c0cb 643
31b66477
KC
644; -finhibit-size-directive inhibits output of .size for ELF.
645; This is used only for compiling crtstuff.c,
646; and it may be extended to other effects
647; needed for crtstuff.c on other systems.
6ff3a151 648finhibit-size-directive
50431bc4 649Common Report Var(flag_inhibit_size_directive)
f3fdaec4 650Do not generate .size directives
6ff3a151 651
3e293154
MJ
652findirect-inlining
653Common Report Var(flag_indirect_inlining)
654Perform indirect inlining
655
31b66477
KC
656; Nonzero means that functions declared `inline' will be treated
657; as `static'. Prevents generation of zillions of copies of unused
658; static inline functions; instead, `inlines' are written out
659; only when actually used. Used in conjunction with -g. Also
660; does the right thing with #pragma interface.
de32c0cb 661finline
e90acd93 662Common Report Var(flag_no_inline,0) Init(0)
f3fdaec4 663Pay attention to the \"inline\" keyword
de32c0cb 664
4d4b8cb9
JH
665finline-small-functions
666Common Report Var(flag_inline_small_functions) Optimization
667Integrate simple functions into their callers when code size is known to not growth
668
de32c0cb 669finline-functions
c662432e 670Common Report Var(flag_inline_functions) Optimization
f3fdaec4 671Integrate simple functions into their callers
de32c0cb 672
355866de 673finline-functions-called-once
c662432e 674Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
355866de 675Integrate functions called once into their callers
d63db217 676
d302c9d6
NB
677finline-limit-
678Common RejectNegative Joined UInteger
679
680finline-limit=
681Common RejectNegative Joined UInteger
cf03fd63 682-finline-limit=<number> Limit the size of inlined functions to <number>
d302c9d6 683
6ff3a151 684finstrument-functions
50431bc4 685Common Report Var(flag_instrument_function_entry_exit)
f3fdaec4 686Instrument function entry and exit with profiling calls
6ff3a151 687
8d5a7d1f
ILT
688finstrument-functions-exclude-function-list=
689Common RejectNegative Joined
690-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
691
692finstrument-functions-exclude-file-list=
693Common RejectNegative Joined
694-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
695
d6e14e8f 696fipa-cp
c662432e 697Common Report Var(flag_ipa_cp) Optimization
d6e14e8f
SB
698Perform Interprocedural constant propagation
699
5e45130d
JH
700fipa-cp-clone
701Common Report Var(flag_ipa_cp_clone) Optimization
702Perform cloning to make Interprocedural constant propagation stronger
703
e65bb9be
JH
704fipa-profile
705Common Report Var(flag_ipa_profile) Init(0) Optimization
706Perform interprocedural profile propagation
ea900239 707
4cf4d6a3 708fipa-pta
c662432e 709Common Report Var(flag_ipa_pta) Init(0) Optimization
4cf4d6a3
DB
710Perform interprocedural points-to analysis
711
e65bb9be
JH
712fipa-pure-const
713Common Report Var(flag_ipa_pure_const) Init(0) Optimization
714Discover pure and const functions
715
ea900239 716fipa-reference
c662432e 717Common Report Var(flag_ipa_reference) Init(0) Optimization
ea900239
DB
718Discover readonly and non addressable static variables
719
720fipa-type-escape
c662432e 721Common Report Var(flag_ipa_type_escape) Init(0) Optimization
ea900239
DB
722Type based escape and alias analysis
723
43d861a5 724fipa-matrix-reorg
6ae4be32 725Common Report Var(flag_ipa_matrix_reorg) Optimization
43d861a5
RL
726Perform matrix layout flattening and transposing based
727on profiling information.
728
e1dc98b2
OG
729fipa-struct-reorg
730Common Report Var(flag_ipa_struct_reorg)
731Perform structure layout optimizations based
732on profiling information.
733
058e97ec
VM
734fira-algorithm=
735Common Joined RejectNegative
7db7ed3c
VM
736-fira-algorithm=[CB|priority] Set the used IRA algorithm
737
738fira-region=
739Common Joined RejectNegative
740-fira-region=[one|all|mixed] Set regions for IRA
058e97ec
VM
741
742fira-coalesce
743Common Report Var(flag_ira_coalesce) Init(0)
744Do optimistic coalescing.
745
1833192f
VM
746fira-loop-pressure
747Common Report Var(flag_ira_loop_pressure)
748Use IRA based register pressure calculation
749in RTL loop optimizations.
750
058e97ec
VM
751fira-share-save-slots
752Common Report Var(flag_ira_share_save_slots) Init(1)
753Share slots for saving different hard registers.
754
755fira-share-spill-slots
756Common Report Var(flag_ira_share_spill_slots) Init(1)
757Share stack slots for spilled pseudo-registers.
758
759fira-verbose=
760Common RejectNegative Joined UInteger
f94e1d66 761-fira-verbose=<number> Control IRA's level of diagnostic messages.
058e97ec 762
8b11a64c 763fivopts
c662432e 764Common Report Var(flag_ivopts) Init(1) Optimization
8b11a64c
ZD
765Optimize induction variables on trees
766
82c0180d 767fjump-tables
c662432e 768Common Var(flag_jump_tables) Init(1) Optimization
82c0180d
JM
769Use jump tables for sufficiently large switch statements
770
de32c0cb 771fkeep-inline-functions
50431bc4 772Common Report Var(flag_keep_inline_functions)
f3fdaec4 773Generate code for functions even if they are fully inlined
de32c0cb
NB
774
775fkeep-static-consts
50431bc4 776Common Report Var(flag_keep_static_consts) Init(1)
f3fdaec4 777Emit static const variables even if they are not used
de32c0cb 778
6ff3a151 779fleading-underscore
50431bc4 780Common Report Var(flag_leading_underscore) Init(-1)
f3fdaec4 781Give external symbols a leading underscore
6ff3a151 782
efa1cdf0
ZD
783floop-optimize
784Common
c0220ea4 785Does nothing. Preserved for backward compatibility.
efa1cdf0 786
d7f09764
DN
787flto
788Common Var(flag_lto)
789Enable link-time optimization.
790
791; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
792flto-compression-level=
793Common Joined UInteger Var(flag_lto_compression_level) Init(-1)
f94e1d66 794-flto-compression-level=<number> Use zlib compression level <number> for IL
d7f09764
DN
795
796flto-report
797Common Report Var(flag_lto_report) Init(0) Optimization
798Report various link-time optimization statistics
799
6ff3a151 800fmath-errno
ab442df7 801Common Report Var(flag_errno_math) Init(1) Optimization
f3fdaec4 802Set errno after built-in math functions
6ff3a151
NB
803
804fmem-report
50431bc4 805Common Report Var(mem_report)
f3fdaec4 806Report on permanent memory allocation
6ff3a151 807
31b66477
KC
808; This will attempt to merge constant section constants, if 1 only
809; string constants and constants from constant pool, if 2 also constant
810; variables.
6ff3a151 811fmerge-all-constants
c662432e 812Common Report Var(flag_merge_constants,2) Init(1) Optimization
f3fdaec4 813Attempt to merge identical constants and constant variables
6ff3a151
NB
814
815fmerge-constants
c662432e 816Common Report Var(flag_merge_constants,1) VarExists Optimization
f3fdaec4 817Attempt to merge identical constants across compilation units
6ff3a151 818
28a08168
ILT
819fmerge-debug-strings
820Common Report Var(flag_merge_debug_strings) Init(1)
821Attempt to merge identical debug strings across compilation units
822
de32c0cb
NB
823fmessage-length=
824Common RejectNegative Joined UInteger
cf03fd63 825-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
de32c0cb 826
e5626198 827fmodulo-sched
c662432e 828Common Report Var(flag_modulo_sched) Optimization
e5626198
AZ
829Perform SMS based modulo scheduling before the first scheduling pass
830
517d76fa
VY
831fmodulo-sched-allow-regmoves
832Common Report Var(flag_modulo_sched_allow_regmoves)
833Perform SMS based modulo scheduling with register moves allowed
834
5e962776 835fmove-loop-invariants
c662432e 836Common Report Var(flag_move_loop_invariants) Init(1) Optimization
5e962776
ZD
837Move loop invariant computations out of loops
838
6de9cd9a 839fmudflap
50431bc4 840Common RejectNegative Report Var(flag_mudflap)
c85ce869 841Add mudflap bounds-checking instrumentation for single-threaded program
6de9cd9a
DN
842
843fmudflapth
110c4563 844Common RejectNegative Report VarExists Var(flag_mudflap,2)
c85ce869 845Add mudflap bounds-checking instrumentation for multi-threaded program
6de9cd9a
DN
846
847fmudflapir
50431bc4 848Common RejectNegative Report Var(flag_mudflap_ignore_reads)
c85ce869 849Ignore read operations when inserting mudflap instrumentation
6de9cd9a 850
6fb5fa3c 851fdce
6ae4be32 852Common Var(flag_dce) Init(1) Optimization
6fb5fa3c
DB
853Use the RTL dead code elimination pass
854
855fdse
6ae4be32 856Common Var(flag_dse) Init(1) Optimization
6fb5fa3c
DB
857Use the RTL dead store elimination pass
858
d72372e4 859freschedule-modulo-scheduled-loops
c662432e 860Common Report Var(flag_resched_modulo_sched) Optimization
d72372e4
MH
861Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
862
6ff3a151 863fnon-call-exceptions
c662432e 864Common Report Var(flag_non_call_exceptions) Optimization
f3fdaec4 865Support synchronous non-call exceptions
6ff3a151 866
de32c0cb 867fomit-frame-pointer
c662432e 868Common Report Var(flag_omit_frame_pointer) Optimization
f3fdaec4 869When possible do not generate stack frames
de32c0cb 870
6ff3a151 871foptimize-register-move
c662432e 872Common Report Var(flag_regmove) Optimization
f3fdaec4 873Do the full register move optimization pass
6ff3a151 874
de32c0cb 875foptimize-sibling-calls
c662432e 876Common Report Var(flag_optimize_sibling_calls) Optimization
f3fdaec4 877Optimize sibling and tail recursive calls
de32c0cb 878
a5573239
JH
879fpre-ipa-mem-report
880Common Report Var(pre_ipa_mem_report)
881Report on memory allocation before interprocedural optimization
882
883fpost-ipa-mem-report
884Common Report Var(post_ipa_mem_report)
885Report on memory allocation before interprocedural optimization
886
6ff3a151 887fpack-struct
c662432e 888Common Report Var(flag_pack_struct) Optimization
f3fdaec4 889Pack structure members together without holes
6ff3a151 890
467cecf3 891fpack-struct=
c662432e 892Common RejectNegative Joined UInteger Optimization
467cecf3
JB
893-fpack-struct=<number> Set initial maximum structure member alignment
894
de32c0cb 895fpcc-struct-return
50431bc4 896Common Report Var(flag_pcc_struct_return,1) VarExists
f3fdaec4 897Return small aggregates in memory, not registers
de32c0cb
NB
898
899fpeel-loops
c662432e 900Common Report Var(flag_peel_loops) Optimization
f3fdaec4 901Perform loop peeling
de32c0cb
NB
902
903fpeephole
c662432e 904Common Report Var(flag_no_peephole,0) Optimization
f3fdaec4 905Enable machine specific peephole optimizations
de32c0cb 906
6ff3a151 907fpeephole2
c662432e 908Common Report Var(flag_peephole2) Optimization
f3fdaec4 909Enable an RTL peephole pass before sched2
6ff3a151 910
31b66477
KC
911fPIC
912Common Report Var(flag_pic,2)
913Generate position-independent code if possible (large mode)
914
915fPIE
916Common Report Var(flag_pie,2)
917Generate position-independent code for executables if possible (large mode)
918
6ff3a151 919fpic
50431bc4 920Common Report Var(flag_pic,1) VarExists
31b66477 921Generate position-independent code if possible (small mode)
6ff3a151
NB
922
923fpie
50431bc4 924Common Report Var(flag_pie,1) VarExists
31b66477 925Generate position-independent code for executables if possible (small mode)
6ff3a151 926
68a607d8
DN
927fplugin=
928Common Joined RejectNegative
929Specify a plugin to load
930
931fplugin-arg-
932Common Joined RejectNegative
f94e1d66 933-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
68a607d8 934
bbc8a8dc 935fpredictive-commoning
6ae4be32 936Common Report Var(flag_predictive_commoning) Optimization
bbc8a8dc
ZD
937Run predictive commoning optimization.
938
de32c0cb 939fprefetch-loop-arrays
c662432e 940Common Report Var(flag_prefetch_loop_arrays) Optimization
f3fdaec4 941Generate prefetch instructions, if available, for arrays in loops
de32c0cb 942
6ff3a151 943fprofile
50431bc4 944Common Report Var(profile_flag)
f3fdaec4 945Enable basic program profiling code
6ff3a151
NB
946
947fprofile-arcs
50431bc4 948Common Report Var(profile_arc_flag)
f3fdaec4 949Insert arc-based program profiling code
6ff3a151 950
2f908293
SP
951fprofile-dir=
952Common Joined RejectNegative
953Set the top-level directory for storing the profile data.
954The default is 'pwd'.
955
52c76998
PY
956fprofile-correction
957Common Report Var(flag_profile_correction)
958Enable correction of flow inconsistent profile data input
959
a8a5f53a
JH
960fprofile-generate
961Common
962Enable common options for generating profile info for profile feedback directed optimizations
963
2f908293
SP
964fprofile-generate=
965Common Joined RejectNegative
966Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
967
a8a5f53a 968fprofile-use
2f908293 969Common Var(flag_profile_use)
a8a5f53a
JH
970Enable common options for performing profile feedback directed optimizations
971
2f908293
SP
972fprofile-use=
973Common Joined RejectNegative
974Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
975
fca9dc00 976fprofile-values
50431bc4 977Common Report Var(flag_profile_values)
fca9dc00
ZD
978Insert code to profile values of expressions
979
de32c0cb
NB
980frandom-seed
981Common
982
983frandom-seed=
984Common Joined RejectNegative
cf03fd63 985-frandom-seed=<string> Make compile reproducible using <string>
de32c0cb 986
e0d9d0dd
NC
987; This switch causes the command line that was used to create an
988; object file to be recorded into the object file. The exact format
989; of this recording is target and binary file format dependent.
990; It is related to the -fverbose-asm switch, but that switch only
991; records information in the assembler output file as comments, so
992; they never reach the object file.
993frecord-gcc-switches
994Common Report Var(flag_record_gcc_switches)
995Record gcc command line switches in the object file.
996
de32c0cb 997freg-struct-return
c662432e 998Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
f3fdaec4 999Return small aggregates in registers
de32c0cb 1000
6ff3a151 1001fregmove
c662432e 1002Common Report Var(flag_regmove) Optimization
f3fdaec4 1003Enables a register move optimization
6ff3a151
NB
1004
1005frename-registers
c662432e 1006Common Report Var(flag_rename_registers) Init(2) Optimization
f3fdaec4 1007Perform a register renaming optimization pass
6ff3a151
NB
1008
1009freorder-blocks
c662432e 1010Common Report Var(flag_reorder_blocks) Optimization
f3fdaec4 1011Reorder basic blocks to improve code placement
6ff3a151 1012
750054a2 1013freorder-blocks-and-partition
c662432e 1014Common Report Var(flag_reorder_blocks_and_partition) Optimization
750054a2
CT
1015Reorder basic blocks and partition into hot and cold sections
1016
6ff3a151 1017freorder-functions
c662432e 1018Common Report Var(flag_reorder_functions) Optimization
f3fdaec4 1019Reorder functions to improve code placement
6ff3a151 1020
de32c0cb 1021frerun-cse-after-loop
c662432e 1022Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
f3fdaec4 1023Add a common subexpression elimination pass after loop optimizations
de32c0cb 1024
efa1cdf0
ZD
1025frerun-loop-opt
1026Common
c0220ea4 1027Does nothing. Preserved for backward compatibility.
efa1cdf0 1028
039c3d42 1029frounding-math
c662432e 1030Common Report Var(flag_rounding_math) Optimization
039c3d42
RS
1031Disable optimizations that assume default FP rounding behavior
1032
6ff3a151 1033fsched-interblock
c662432e 1034Common Report Var(flag_schedule_interblock) Init(1) Optimization
f3fdaec4 1035Enable scheduling across basic blocks
6ff3a151 1036
ce18efcb
VM
1037fsched-pressure
1038Common Report Var(flag_sched_pressure) Init(0) Optimization
1039Enable register pressure sensitive insn scheduling
1040
6ff3a151 1041fsched-spec
c662432e 1042Common Report Var(flag_schedule_speculative) Init(1) Optimization
f3fdaec4 1043Allow speculative motion of non-loads
6ff3a151
NB
1044
1045fsched-spec-load
c662432e 1046Common Report Var(flag_schedule_speculative_load) Optimization
f3fdaec4 1047Allow speculative motion of some loads
6ff3a151
NB
1048
1049fsched-spec-load-dangerous
c662432e 1050Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
f3fdaec4 1051Allow speculative motion of more loads
6ff3a151 1052
de32c0cb
NB
1053fsched-verbose=
1054Common RejectNegative Joined
cf03fd63 1055-fsched-verbose=<number> Set the verbosity level of the scheduler
de32c0cb 1056
6ff3a151 1057fsched2-use-superblocks
c662432e 1058Common Report Var(flag_sched2_use_superblocks) Optimization
f3fdaec4 1059If scheduling post reload, do superblock scheduling
6ff3a151
NB
1060
1061fsched2-use-traces
57257f0d
AM
1062Common
1063Does nothing. Preserved for backward compatibility.
6ff3a151 1064
de32c0cb 1065fschedule-insns
c662432e 1066Common Report Var(flag_schedule_insns) Optimization
f3fdaec4 1067Reschedule instructions before register allocation
de32c0cb
NB
1068
1069fschedule-insns2
c662432e 1070Common Report Var(flag_schedule_insns_after_reload) Optimization
f3fdaec4 1071Reschedule instructions after register allocation
de32c0cb 1072
e855c69d
AB
1073; This flag should be on when a target implements non-trivial
1074; scheduling hooks, maybe saving some information for its own sake.
1075; On IA64, for example, this is used for correct bundling.
1076fselective-scheduling
1077Common Report Var(flag_selective_scheduling) Optimization
1078Schedule instructions using selective scheduling algorithm
1079
1080fselective-scheduling2
1081Common Report Var(flag_selective_scheduling2) Optimization
1082Run selective scheduling after reload
1083
1084fsel-sched-pipelining
1085Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1086Perform software pipelining of inner loops during selective scheduling
1087
1088fsel-sched-pipelining-outer-loops
1089Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1090Perform software pipelining of outer loops during selective scheduling
1091
1092fsel-sched-reschedule-pipelined
1093Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1094Reschedule pipelined regions without pipelining
1095
31b66477
KC
1096; sched_stalled_insns means that insns can be moved prematurely from the queue
1097; of stalled insns into the ready list.
569fa502 1098fsched-stalled-insns
ab442df7 1099Common Report Var(flag_sched_stalled_insns) Optimization UInteger
569fa502
DN
1100Allow premature scheduling of queued insns
1101
1102fsched-stalled-insns=
c22cacf3 1103Common RejectNegative Joined UInteger
4e994432 1104-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
569fa502 1105
31b66477
KC
1106; sched_stalled_insns_dep controls how many recently scheduled cycles will
1107; be examined for a dependency on a stalled insn that is candidate for
1108; premature removal from the queue of stalled insns into the ready list (has
1109; an effect only if the flag 'sched_stalled_insns' is set).
569fa502 1110fsched-stalled-insns-dep
ab442df7 1111Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
569fa502
DN
1112Set dependence distance checking in premature scheduling of queued insns
1113
1114fsched-stalled-insns-dep=
1115Common RejectNegative Joined UInteger
4e994432 1116-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
569fa502 1117
ee4764a8
GS
1118fsched-group-heuristic
1119Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1120Enable the group heuristic in the scheduler
1121
1122fsched-critical-path-heuristic
1123Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1124Enable the critical path heuristic in the scheduler
1125
1126fsched-spec-insn-heuristic
1127Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1128Enable the speculative instruction heuristic in the scheduler
1129
ee4764a8
GS
1130fsched-rank-heuristic
1131Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1132Enable the rank heuristic in the scheduler
1133
1134fsched-last-insn-heuristic
1135Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1136Enable the last instruction heuristic in the scheduler
1137
1138fsched-dep-count-heuristic
1139Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1140Enable the dependent count heuristic in the scheduler
1141
aacd3885 1142fsection-anchors
c662432e 1143Common Report Var(flag_section_anchors) Optimization
aacd3885
RS
1144Access data in the same section from shared anchor points
1145
8cd37d0b 1146fsee
8393a9c8
SD
1147Common
1148Does nothing. Preserved for backward compatibility.
8cd37d0b 1149
8abb6b22 1150fshow-column
e74fe492
AH
1151Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(1)
1152Show column numbers in diagnostics, when available. Default on
8abb6b22 1153
6ff3a151 1154fsignaling-nans
c662432e 1155Common Report Var(flag_signaling_nans) Optimization
f3fdaec4 1156Disable optimizations observable by IEEE signaling NaNs
6ff3a151 1157
db02da79 1158fsigned-zeros
21af5cdf 1159Common Report Var(flag_signed_zeros) Init(1) Optimization
db02da79
RS
1160Disable floating point optimizations that ignore the IEEE signedness of zero
1161
6ff3a151 1162fsingle-precision-constant
c662432e 1163Common Report Var(flag_single_precision_constant) Optimization
f3fdaec4 1164Convert floating point constants to single precision constants
6ff3a151 1165
113d659a 1166fsplit-ivs-in-unroller
c662432e 1167Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
c85ce869 1168Split lifetimes of induction variables when loops are unrolled
113d659a 1169
e53a16e7 1170fsplit-wide-types
21af5cdf 1171Common Report Var(flag_split_wide_types) Optimization
e53a16e7
ILT
1172Split wide types into independent registers
1173
f37a4f14 1174fvariable-expansion-in-unroller
c662432e 1175Common Report Var(flag_variable_expansion_in_unroller) Optimization
c85ce869 1176Apply variable expansion when loops are unrolled
f37a4f14 1177
b38f3813
EB
1178fstack-check=
1179Common Report RejectNegative Joined
1180-fstack-check=[no|generic|specific] Insert stack checking code into the program
1181
6ff3a151 1182fstack-check
b38f3813
EB
1183Common Report
1184Insert stack checking code into the program. Same as -fstack-check=specific
6ff3a151 1185
de32c0cb
NB
1186fstack-limit
1187Common
1188
058de654
NB
1189fstack-limit-register=
1190Common RejectNegative Joined
cf03fd63 1191-fstack-limit-register=<register> Trap if the stack goes past <register>
058de654
NB
1192
1193fstack-limit-symbol=
1194Common RejectNegative Joined
cf03fd63 1195-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
058de654 1196
7d69de61
RH
1197fstack-protector
1198Common Report Var(flag_stack_protect, 1)
1199Use propolice as a stack protection method
1200
1201fstack-protector-all
1202Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1203Use a stack protection method for every function
1204
de32c0cb 1205fstrength-reduce
efa1cdf0 1206Common
c0220ea4 1207Does nothing. Preserved for backward compatibility.
de32c0cb 1208
31b66477
KC
1209; Nonzero if we should do (language-dependent) alias analysis.
1210; Typically, this analysis will assume that expressions of certain
1211; types do not alias expressions of certain other types. Only used
1212; if alias analysis (in general) is enabled.
6ff3a151 1213fstrict-aliasing
c662432e 1214Common Report Var(flag_strict_aliasing) Optimization
f3fdaec4 1215Assume strict aliasing rules apply
6ff3a151 1216
eeef0e45
ILT
1217fstrict-overflow
1218Common Report Var(flag_strict_overflow)
1219Treat signed overflow as undefined
1220
de32c0cb 1221fsyntax-only
50431bc4 1222Common Report Var(flag_syntax_only)
f3fdaec4 1223Check for syntax errors, then stop
de32c0cb 1224
6ff3a151 1225ftest-coverage
50431bc4 1226Common Report Var(flag_test_coverage)
f3fdaec4 1227Create data files needed by \"gcov\"
6ff3a151 1228
de32c0cb 1229fthread-jumps
c662432e 1230Common Report Var(flag_thread_jumps) Optimization
f3fdaec4 1231Perform jump threading optimizations
de32c0cb 1232
6ff3a151 1233ftime-report
50431bc4 1234Common Report Var(time_report)
f3fdaec4 1235Report the time taken by each compiler pass
6ff3a151 1236
058de654
NB
1237ftls-model=
1238Common Joined RejectNegative
cf03fd63 1239-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
058de654 1240
474eccc6 1241ftoplevel-reorder
d6cc6ec9 1242Common Report Var(flag_toplevel_reorder) Init(2) Optimization
474eccc6
ILT
1243Reorder top level functions, variables, and asms
1244
de32c0cb 1245ftracer
50431bc4 1246Common Report Var(flag_tracer)
f3fdaec4 1247Perform superblock formation via tail duplication
de32c0cb 1248
31b66477
KC
1249; Zero means that floating-point math operations cannot generate a
1250; (user-visible) trap. This is the case, for example, in nonstop
1251; IEEE 754 arithmetic.
6ff3a151 1252ftrapping-math
c662432e 1253Common Report Var(flag_trapping_math) Init(1) Optimization
f3fdaec4 1254Assume floating-point operations can trap
6ff3a151
NB
1255
1256ftrapv
c662432e 1257Common Report Var(flag_trapv) Optimization
f3fdaec4 1258Trap for signed overflow in addition, subtraction and multiplication
6ff3a151 1259
6de9cd9a 1260ftree-ccp
c662432e 1261Common Report Var(flag_tree_ccp) Optimization
6de9cd9a
DN
1262Enable SSA-CCP optimization on trees
1263
0bca51f0 1264ftree-store-ccp
dce2b2f6
RG
1265Common
1266Does nothing. Preserved for backward compatibility.
0bca51f0 1267
6de9cd9a 1268ftree-ch
c662432e 1269Common Report Var(flag_tree_ch) Optimization
6de9cd9a
DN
1270Enable loop header copying on trees
1271
6de9cd9a 1272ftree-copyrename
c662432e 1273Common Report Var(flag_tree_copyrename) Optimization
c85ce869 1274Replace SSA temporaries with better names in copies
6de9cd9a 1275
0bca51f0 1276ftree-copy-prop
c662432e 1277Common Report Var(flag_tree_copy_prop) Optimization
0bca51f0
DN
1278Enable copy propagation on trees
1279
1280ftree-store-copy-prop
324d2217 1281Common
e9033855 1282Does nothing. Preserved for backward compatibility.
0bca51f0 1283
a5828d1e
MM
1284ftree-cselim
1285Common Report Var(flag_tree_cselim) Init(2) Optimization
1286Transform condition stores into unconditional ones
1287
b6e99746
MJ
1288ftree-switch-conversion
1289Common Report Var(flag_tree_switch_conversion) Optimization
1290Perform conversions of switch initializations.
1291
6de9cd9a 1292ftree-dce
c662432e 1293Common Report Var(flag_tree_dce) Optimization
6de9cd9a
DN
1294Enable SSA dead code elimination optimization on trees
1295
1296ftree-dominator-opts
c662432e 1297Common Report Var(flag_tree_dom) Optimization
6de9cd9a
DN
1298Enable dominator optimizations
1299
1300ftree-dse
c662432e 1301Common Report Var(flag_tree_dse) Optimization
6de9cd9a
DN
1302Enable dead store elimination
1303
248fc9f3
RG
1304ftree-forwprop
1305Common Report Var(flag_tree_forwprop) Init(1) Optimization
1306Enable forward propagation on trees
1307
ff2ad0f7 1308ftree-fre
c662432e 1309Common Report Var(flag_tree_fre) Optimization
ff2ad0f7
DN
1310Enable Full Redundancy Elimination (FRE) on trees
1311
dea61d92 1312ftree-loop-distribution
53ed2f0e 1313Common Report Var(flag_tree_loop_distribution) Optimization
dea61d92
SP
1314Enable loop distribution on trees
1315
1b08d87d 1316ftree-loop-im
c662432e 1317Common Report Var(flag_tree_loop_im) Init(1) Optimization
a7e5372d
ZD
1318Enable loop invariant motion on trees
1319
599eabdb 1320ftree-loop-linear
c662432e 1321Common Report Var(flag_tree_loop_linear) Optimization
599eabdb
DB
1322Enable linear loop transforms on trees
1323
1b08d87d 1324ftree-loop-ivcanon
c662432e 1325Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1b08d87d
DB
1326Create canonical induction variables in loops
1327
c66b6c66 1328ftree-loop-optimize
c662432e 1329Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
c66b6c66
ZD
1330Enable loop optimizations on tree level
1331
5f40b3cb
ZD
1332ftree-parallelize-loops=
1333Common Report Joined UInteger Var(flag_tree_parallelize_loops) Init(1)
1334Enable automatic parallelization of loops
1335
248fc9f3
RG
1336ftree-phiprop
1337Common Report Var(flag_tree_phiprop) Init(1) Optimization
1338Enable hoisting loads from conditional pointers.
1339
6de9cd9a 1340ftree-pre
c662432e 1341Common Report Var(flag_tree_pre) Optimization
6de9cd9a
DN
1342Enable SSA-PRE optimization on trees
1343
248fc9f3
RG
1344ftree-pta
1345Common Report Var(flag_tree_pta) Init(1) Optimization
1346Perform function-local points-to analysis on trees.
1347
13c59415
UB
1348ftree-reassoc
1349Common Report Var(flag_tree_reassoc) Init(1) Optimization
1350Enable reassociation on tree level
1351
c75ab022 1352ftree-salias
1353232d
RG
1353Common
1354Does nothing. Preserved for backward compatibility.
c75ab022 1355
fa555252 1356ftree-sink
c662432e 1357Common Report Var(flag_tree_sink) Optimization
fa555252
DB
1358Enable SSA code sinking on trees
1359
6de9cd9a 1360ftree-sra
c662432e 1361Common Report Var(flag_tree_sra) Optimization
6de9cd9a
DN
1362Perform scalar replacement of aggregates
1363
1364ftree-ter
c72321c9 1365Common Report Var(flag_tree_ter) Init(1) Optimization
6de9cd9a
DN
1366Replace temporary expressions in the SSA->normal pass
1367
c662432e
NC
1368ftree-lrs
1369Common Report Var(flag_tree_live_range_split) Optimization
1370Perform live range splitting during the SSA->normal pass
1371
0bca51f0 1372ftree-vrp
c662432e 1373Common Report Var(flag_tree_vrp) Init(0) Optimization
0bca51f0
DN
1374Perform Value Range Propagation on trees
1375
de32c0cb 1376funit-at-a-time
d6cc6ec9 1377Common Report Var(flag_unit_at_a_time) Init(1) Optimization
f3fdaec4 1378Compile whole compilation unit at a time
de32c0cb
NB
1379
1380funroll-loops
c662432e 1381Common Report Var(flag_unroll_loops) Optimization
f3fdaec4 1382Perform loop unrolling when iteration count is known
de32c0cb
NB
1383
1384funroll-all-loops
c662432e 1385Common Report Var(flag_unroll_all_loops) Optimization
f3fdaec4 1386Perform loop unrolling for all loops
de32c0cb 1387
f9cc1a70
PB
1388; Nonzero means that loop optimizer may assume that the induction variables
1389; that control loops do not overflow and that the loops with nontrivial
1390; exit condition are not infinite
1391funsafe-loop-optimizations
c662432e 1392Common Report Var(flag_unsafe_loop_optimizations) Optimization
f9cc1a70
PB
1393Allow loop optimizations to assume that the loops behave in normal way
1394
a1a82611
RE
1395fassociative-math
1396Common Report Var(flag_associative_math)
1397Allow optimization for floating-point arithmetic which may change the
1398result of the operation due to rounding.
1399
1400freciprocal-math
1401Common Report Var(flag_reciprocal_math)
1402Same as -fassociative-math for expressions which include division.
1403
31b66477
KC
1404; Nonzero means that unsafe floating-point math optimizations are allowed
1405; for the sake of speed. IEEE compliance is not guaranteed, and operations
1406; are allowed to assume that their arguments and results are "normal"
1407; (e.g., nonnegative for SQRT).
6ff3a151 1408funsafe-math-optimizations
c662432e 1409Common Report Var(flag_unsafe_math_optimizations) Optimization
f3fdaec4 1410Allow math optimizations that may violate IEEE or ISO standards
6ff3a151 1411
de32c0cb 1412funswitch-loops
c662432e 1413Common Report Var(flag_unswitch_loops) Optimization
f3fdaec4 1414Perform loop unswitching
de32c0cb 1415
6ff3a151 1416funwind-tables
c662432e 1417Common Report Var(flag_unwind_tables) Optimization
f3fdaec4 1418Just generate unwind tables for exception handling
6ff3a151 1419
da18ea94
RAE
1420fuse-linker-plugin
1421Common Undocumented
1422
014a1138 1423fvar-tracking
c662432e 1424Common Report Var(flag_var_tracking) VarExists Optimization
014a1138
JZ
1425Perform variable tracking
1426
b5b8b0ac
AO
1427fvar-tracking-assignments
1428Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1429Perform variable tracking by annotating assignments
1430
1431fvar-tracking-assignments-toggle
1432Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1433Toggle -fvar-tracking-assignments
1434
62760ffd
CT
1435fvar-tracking-uninit
1436Common Report Var(flag_var_tracking_uninit) Optimization
1437Perform variable tracking and also tag variables that are uninitialized
1438
79fe1b3b 1439ftree-vectorize
c662432e 1440Common Report Var(flag_tree_vectorize) Optimization
79fe1b3b
DN
1441Enable loop vectorization on trees
1442
a70d6342
IR
1443ftree-slp-vectorize
1444Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1445Enable basic block vectorization (SLP) on trees
1446
792ed98b
HJ
1447fvect-cost-model
1448Common Report Var(flag_vect_cost_model) Optimization
1449Enable use of cost model in vectorization
1450
c12cc930 1451ftree-vect-loop-version
c662432e 1452Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
c12cc930
KB
1453Enable loop versioning when doing loop vectorization on trees
1454
c866976a
LB
1455ftree-vectorizer-verbose=
1456Common RejectNegative Joined
4e994432 1457-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
c866976a 1458
fbf798fc 1459ftree-scev-cprop
21af5cdf 1460Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
fbf798fc
DN
1461Enable copy propagation of scalar-evolution information.
1462
31b66477
KC
1463; -fverbose-asm causes extra commentary information to be produced in
1464; the generated assembly code (to make it more readable). This option
1465; is generally only of use to those who actually need to read the
1466; generated assembly code (perhaps while debugging the compiler itself).
1467; -fno-verbose-asm, the default, causes the extra information
1468; to not be added and is useful when comparing two assembler files.
6ff3a151 1469fverbose-asm
50431bc4 1470Common Report Var(flag_verbose_asm)
f3fdaec4 1471Add extra commentary to assembler output
6ff3a151 1472
d7afec4b
ND
1473fvisibility=
1474Common Joined RejectNegative
1475-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1476
1477
fca9dc00 1478fvpt
c662432e 1479Common Report Var(flag_value_profile_transformations) Optimization
fca9dc00
ZD
1480Use expression value profiles in optimizations
1481
62551c66 1482fweb
c662432e 1483Common Report Var(flag_web) Init(2) Optimization
62551c66
JH
1484Construct webs and split unrelated uses of single variable
1485
d7f09764
DN
1486fwhopr
1487Common Var(flag_whopr)
1488Enable partitioned link-time optimization.
1489
c2699190
XDL
1490ftree-builtin-call-dce
1491Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1492Enable conditional dead code elimination for builtin calls
1493
ce91e74c 1494fwhole-program
c662432e 1495Common Report Var(flag_whole_program) Init(0) Optimization
ce91e74c
JH
1496Perform whole program optimizations
1497
6ff3a151 1498fwrapv
c662432e 1499Common Report Var(flag_wrapv) Optimization
f3fdaec4 1500Assume signed arithmetic overflow wraps around
6ff3a151 1501
6ff3a151 1502fzero-initialized-in-bss
50431bc4 1503Common Report Var(flag_zero_initialized_in_bss) Init(1)
f3fdaec4 1504Put zero initialized data in the bss section
6ff3a151 1505
e01cc6dc
NB
1506g
1507Common JoinedOrMissing
df38ffef
NB
1508Generate debug information in default format
1509
1510gcoff
53b2323e 1511Common JoinedOrMissing Negative(gdwarf-)
df38ffef
NB
1512Generate debug information in COFF format
1513
53b2323e
RH
1514gdwarf-
1515Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1516Generate debug information in DWARF v2 (or later) format
df38ffef
NB
1517
1518ggdb
1519Common JoinedOrMissing
1520Generate debug information in default extended format
1521
1522gstabs
14c7833c 1523Common JoinedOrMissing Negative(gstabs+)
df38ffef
NB
1524Generate debug information in STABS format
1525
1526gstabs+
14c7833c 1527Common JoinedOrMissing Negative(gvms)
df38ffef
NB
1528Generate debug information in extended STABS format
1529
65f753a0 1530gno-strict-dwarf
047a3193 1531Common RejectNegative Var(dwarf_strict,0) Init(-1)
65f753a0
JJ
1532Emit DWARF additions beyond selected version
1533
1534gstrict-dwarf
1535Common Report RejectNegative Var(dwarf_strict,1) VarExists
1536Don't emit DWARF additions beyond selected version
1537
2153915d
AO
1538gtoggle
1539Common Report Var(flag_gtoggle)
1540Toggle debug information generation
1541
df38ffef 1542gvms
14c7833c 1543Common JoinedOrMissing Negative(gxcoff)
df38ffef
NB
1544Generate debug information in VMS format
1545
1546gxcoff
14c7833c 1547Common JoinedOrMissing Negative(gxcoff+)
df38ffef
NB
1548Generate debug information in XCOFF format
1549
1550gxcoff+
14c7833c 1551Common JoinedOrMissing Negative(gcoff)
df38ffef 1552Generate debug information in extended XCOFF format
e01cc6dc 1553
4adbd5dd
MK
1554iplugindir=
1555Common Joined Var(plugindir_string) Init(0)
1556-iplugindir=<dir> Set <dir> to be the default plugin directory
1557
d185d268
NB
1558o
1559Common Joined Separate
cf03fd63 1560-o <file> Place output into <file>
d185d268
NB
1561
1562p
50431bc4 1563Common Var(profile_flag)
cf03fd63 1564Enable function profiling
d185d268
NB
1565
1566pedantic
50431bc4 1567Common Var(pedantic)
cf03fd63 1568Issue warnings needed for strict compliance to the standard
d185d268
NB
1569
1570pedantic-errors
1571Common
cf03fd63 1572Like -pedantic but issue them as errors
d185d268 1573
d7b42618 1574quiet
50431bc4 1575Common Var(quiet_flag)
cf03fd63 1576Do not display functions compiled or elapsed time
d7b42618 1577
d185d268 1578version
50431bc4 1579Common Var(version_flag)
cf03fd63 1580Display the compiler's version
d185d268
NB
1581
1582w
50431bc4 1583Common Var(inhibit_warnings)
cf03fd63 1584Suppress warnings
d185d268 1585
528dc603
L
1586shared
1587Common RejectNegative Negative(pie)
1588Create a shared library
1589
1590pie
1591Common RejectNegative Negative(shared)
1592Create a position independent executable
1593
d7b42618 1594; This comment is to ensure we retain the blank line above.
This page took 2.024094 seconds and 5 git commands to generate.