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