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