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