]> gcc.gnu.org Git - gcc.git/blame - gcc/common.opt
* config/rs6000/linux-unwind.h (get_regs): Constify casts.
[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 387
6a78eaa3
JH
388fconserve-stack
389Common Var(flag_conserve_stack,0) Optimization
390Do not perform optimizations increasing noticeably stack usage
391
6ff3a151 392fcprop-registers
c662432e 393Common Report Var(flag_cprop_registers) Optimization
f3fdaec4 394Perform a register copy-propagation optimization pass
6ff3a151 395
de32c0cb 396fcrossjumping
c662432e 397Common Report Var(flag_crossjumping) Optimization
f3fdaec4 398Perform cross-jumping optimization
de32c0cb
NB
399
400fcse-follow-jumps
c662432e 401Common Report Var(flag_cse_follow_jumps) Optimization
f3fdaec4 402When running CSE, follow jumps to their targets
de32c0cb
NB
403
404fcse-skip-blocks
c662432e 405Common Report Var(flag_cse_skip_blocks) Optimization
f3fdaec4 406When running CSE, follow conditional jumps
de32c0cb 407
c7463669 408fcx-limited-range
c662432e 409Common Report Var(flag_cx_limited_range) Optimization
c7463669
RH
410Omit range reduction step when performing complex division
411
35085f76
JB
412fcx-fortran-rules
413Common Report Var(flag_cx_fortran_rules) Optimization
414Complex multiplication and division follow Fortran rules
415
6ff3a151 416fdata-sections
c662432e 417Common Report Var(flag_data_sections) Optimization
f3fdaec4 418Place data items into their own section
6ff3a151 419
0a090f42
SP
420fdbg-cnt-list
421Common Report
422List all available debugging counters with their limits and counts.
423
6fb5fa3c
DB
424fdbg-cnt=
425Common RejectNegative Joined
0a090f42 426-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
6fb5fa3c 427
c8aea42c
PB
428fdebug-prefix-map=
429Common Joined RejectNegative
430Map one directory name to another in debug information
431
31b66477
KC
432; Nonzero for -fdefer-pop: don't pop args after each function call
433; instead save them up to pop many calls' args with one insns.
de32c0cb 434fdefer-pop
c662432e 435Common Report Var(flag_defer_pop) Optimization
f3fdaec4 436Defer popping functions args from stack until later
de32c0cb
NB
437
438fdelayed-branch
c662432e 439Common Report Var(flag_delayed_branch) Optimization
f3fdaec4 440Attempt to fill delay slots of branch instructions
de32c0cb
NB
441
442fdelete-null-pointer-checks
c662432e 443Common Report Var(flag_delete_null_pointer_checks) Optimization
f3fdaec4 444Delete useless null pointer checks
de32c0cb
NB
445
446fdiagnostics-show-location=
447Common Joined RejectNegative
cf03fd63 448-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
de32c0cb 449
ccf08a6e 450fdiagnostics-show-option
2098fe9e 451Common
c85ce869 452Amend appropriate diagnostic messages with the command line option that controls them
ccf08a6e 453
6de9cd9a
DN
454fdump-
455Common Joined RejectNegative
456-fdump-<type> Dump various compiler internals to a file
457
24a7799e
R
458fdump-noaddr
459Common Report Var(flag_dump_noaddr)
460Suppress output of addresses in debugging dumps
461
6ff3a151 462fdump-unnumbered
50431bc4 463Common Report Var(flag_dump_unnumbered) VarExists
24a7799e 464Suppress output of instruction numbers, line number notes and addresses in debugging dumps
6ff3a151 465
d4ea4622
RH
466fdwarf2-cfi-asm
467Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
468Enable CFI tables via GAS assembler directives.
469
355866de 470fearly-inlining
c662432e 471Common Report Var(flag_early_inlining) Init(1) Optimization
355866de
RG
472Perform early inlining
473
de32c0cb 474feliminate-dwarf2-dups
50431bc4 475Common Report Var(flag_eliminate_dwarf2_dups)
f3fdaec4 476Perform DWARF2 duplicate elimination
de32c0cb 477
6a08f7b3 478feliminate-unused-debug-symbols
50431bc4 479Common Report Var(flag_debug_only_used_symbols)
f3fdaec4 480Perform unused type elimination in debug info
6a08f7b3 481
de32c0cb 482feliminate-unused-debug-types
50431bc4 483Common Report Var(flag_eliminate_unused_debug_types) Init(1)
f3fdaec4 484Perform unused type elimination in debug info
de32c0cb 485
e713adf6 486femit-class-debug-always
eae8e474 487Common Report Var(flag_emit_class_debug_always) Init(0)
e713adf6
CD
488Do not suppress C++ class debug information.
489
6ff3a151 490fexceptions
c662432e 491Common Report Var(flag_exceptions) Optimization
f3fdaec4 492Enable exception handling
6ff3a151 493
de32c0cb 494fexpensive-optimizations
c662432e 495Common Report Var(flag_expensive_optimizations) Optimization
f3fdaec4 496Perform a number of minor, expensive optimizations
de32c0cb 497
058de654
NB
498ffast-math
499Common
500
6ff3a151 501ffinite-math-only
c662432e 502Common Report Var(flag_finite_math_only) Optimization
f3fdaec4 503Assume no NaNs or infinities are generated
6ff3a151 504
058de654
NB
505ffixed-
506Common Joined RejectNegative
cf03fd63 507-ffixed-<register> Mark <register> as being unavailable to the compiler
058de654 508
de32c0cb 509ffloat-store
c662432e 510Common Report Var(flag_float_store) Optimization
31b66477 511Don't allocate floats and doubles in extended-precision registers
de32c0cb
NB
512
513fforce-addr
3de5e93a
SB
514Common
515Does nothing. Preserved for backward compatibility.
de32c0cb 516
2ca2b607
SB
517fforward-propagate
518Common Report Var(flag_forward_propagate) Optimization
a52b023a
PB
519Perform a forward propagation pass on RTL
520
31b66477
KC
521; Nonzero means don't put addresses of constant functions in registers.
522; Used for compiling the Unix kernel, where strange substitutions are
523; done on the assembly output.
de32c0cb 524ffunction-cse
50431bc4 525Common Report Var(flag_no_function_cse,0)
f3fdaec4 526Allow function addresses to be held in registers
de32c0cb 527
6ff3a151 528ffunction-sections
50431bc4 529Common Report Var(flag_function_sections)
f3fdaec4 530Place each function into its own section
6ff3a151 531
de32c0cb 532fgcse
c662432e 533Common Report Var(flag_gcse) Optimization
f3fdaec4 534Perform global common subexpression elimination
de32c0cb
NB
535
536fgcse-lm
c662432e 537Common Report Var(flag_gcse_lm) Init(1) Optimization
f3fdaec4 538Perform enhanced load motion during global common subexpression elimination
de32c0cb
NB
539
540fgcse-sm
c662432e 541Common Report Var(flag_gcse_sm) Init(0) Optimization
f3fdaec4 542Perform store motion after global common subexpression elimination
de32c0cb 543
f5f2e3cd 544fgcse-las
c662432e 545Common Report Var(flag_gcse_las) Init(0) Optimization
f9957958
MH
546Perform redundant load after store elimination in global common subexpression
547elimination
548
549fgcse-after-reload
c662432e 550Common Report Var(flag_gcse_after_reload) Optimization
f9957958 551Perform global common subexpression elimination after register allocation
c85ce869 552has finished
f5f2e3cd 553
f8bf9252
SP
554fgraphite
555Common Report Var(flag_graphite)
556Enable in and out of Graphite representation
557
558floop-strip-mine
559Common Report Var(flag_loop_strip_mine) Optimization
560Enable Loop Strip Mining transformation
561
562floop-interchange
563Common Report Var(flag_loop_interchange) Optimization
564Enable Loop Interchange transformation
565
566floop-block
567Common Report Var(flag_loop_block) Optimization
568Enable Loop Blocking transformation
569
20ed8b32
TG
570fgraphite-identity
571Common Report Var(flag_graphite_identity) Optimization
572Enable Graphite Identity transformation
573
6ff3a151 574fguess-branch-probability
c662432e 575Common Report Var(flag_guess_branch_prob) Optimization
f3fdaec4 576Enable guessing of branch probabilities
6ff3a151 577
31b66477
KC
578; Nonzero means ignore `#ident' directives. 0 means handle them.
579; Generate position-independent code for executables if possible
580; On SVR4 targets, it also controls whether or not to emit a
581; string identifying the compiler.
6ff3a151 582fident
50431bc4 583Common Report Var(flag_no_ident,0)
f3fdaec4 584Process #ident directives
6ff3a151 585
de32c0cb 586fif-conversion
c662432e 587Common Report Var(flag_if_conversion) Optimization
f3fdaec4 588Perform conversion of conditional jumps to branchless equivalents
de32c0cb
NB
589
590fif-conversion2
c662432e 591Common Report Var(flag_if_conversion2) Optimization
f3fdaec4 592Perform conversion of conditional jumps to conditional execution
de32c0cb 593
31b66477
KC
594; -finhibit-size-directive inhibits output of .size for ELF.
595; This is used only for compiling crtstuff.c,
596; and it may be extended to other effects
597; needed for crtstuff.c on other systems.
6ff3a151 598finhibit-size-directive
50431bc4 599Common Report Var(flag_inhibit_size_directive)
f3fdaec4 600Do not generate .size directives
6ff3a151 601
3e293154
MJ
602findirect-inlining
603Common Report Var(flag_indirect_inlining)
604Perform indirect inlining
605
31b66477
KC
606; Nonzero means that functions declared `inline' will be treated
607; as `static'. Prevents generation of zillions of copies of unused
608; static inline functions; instead, `inlines' are written out
609; only when actually used. Used in conjunction with -g. Also
610; does the right thing with #pragma interface.
de32c0cb 611finline
e90acd93 612Common Report Var(flag_no_inline,0) Init(0)
f3fdaec4 613Pay attention to the \"inline\" keyword
de32c0cb 614
4d4b8cb9
JH
615finline-small-functions
616Common Report Var(flag_inline_small_functions) Optimization
617Integrate simple functions into their callers when code size is known to not growth
618
de32c0cb 619finline-functions
c662432e 620Common Report Var(flag_inline_functions) Optimization
f3fdaec4 621Integrate simple functions into their callers
de32c0cb 622
355866de 623finline-functions-called-once
c662432e 624Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
355866de 625Integrate functions called once into their callers
d63db217 626
d302c9d6
NB
627finline-limit-
628Common RejectNegative Joined UInteger
629
630finline-limit=
631Common RejectNegative Joined UInteger
cf03fd63 632-finline-limit=<number> Limit the size of inlined functions to <number>
d302c9d6 633
6ff3a151 634finstrument-functions
50431bc4 635Common Report Var(flag_instrument_function_entry_exit)
f3fdaec4 636Instrument function entry and exit with profiling calls
6ff3a151 637
8d5a7d1f
ILT
638finstrument-functions-exclude-function-list=
639Common RejectNegative Joined
640-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
641
642finstrument-functions-exclude-file-list=
643Common RejectNegative Joined
644-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
645
d6e14e8f 646fipa-cp
c662432e 647Common Report Var(flag_ipa_cp) Optimization
d6e14e8f
SB
648Perform Interprocedural constant propagation
649
5e45130d
JH
650fipa-cp-clone
651Common Report Var(flag_ipa_cp_clone) Optimization
652Perform cloning to make Interprocedural constant propagation stronger
653
ea900239 654fipa-pure-const
c662432e 655Common Report Var(flag_ipa_pure_const) Init(0) Optimization
ea900239
DB
656Discover pure and const functions
657
4cf4d6a3 658fipa-pta
c662432e 659Common Report Var(flag_ipa_pta) Init(0) Optimization
4cf4d6a3
DB
660Perform interprocedural points-to analysis
661
ea900239 662fipa-reference
c662432e 663Common Report Var(flag_ipa_reference) Init(0) Optimization
ea900239
DB
664Discover readonly and non addressable static variables
665
666fipa-type-escape
c662432e 667Common Report Var(flag_ipa_type_escape) Init(0) Optimization
ea900239
DB
668Type based escape and alias analysis
669
43d861a5 670fipa-matrix-reorg
6ae4be32 671Common Report Var(flag_ipa_matrix_reorg) Optimization
43d861a5
RL
672Perform matrix layout flattening and transposing based
673on profiling information.
674
e1dc98b2
OG
675fipa-struct-reorg
676Common Report Var(flag_ipa_struct_reorg)
677Perform structure layout optimizations based
678on profiling information.
679
058e97ec
VM
680fira
681Common Report Var(flag_ira) Init(0)
682Use integrated register allocator.
683
684fira-algorithm=
685Common Joined RejectNegative
686-fira-algorithm=[regional|CB|mixed] Set the used IRA algorithm
687
688fira-coalesce
689Common Report Var(flag_ira_coalesce) Init(0)
690Do optimistic coalescing.
691
692fira-share-save-slots
693Common Report Var(flag_ira_share_save_slots) Init(1)
694Share slots for saving different hard registers.
695
696fira-share-spill-slots
697Common Report Var(flag_ira_share_spill_slots) Init(1)
698Share stack slots for spilled pseudo-registers.
699
700fira-verbose=
701Common RejectNegative Joined UInteger
702-fira-verbose=<number> Control IRA's level of diagnostic messages.
703
8b11a64c 704fivopts
c662432e 705Common Report Var(flag_ivopts) Init(1) Optimization
8b11a64c
ZD
706Optimize induction variables on trees
707
82c0180d 708fjump-tables
c662432e 709Common Var(flag_jump_tables) Init(1) Optimization
82c0180d
JM
710Use jump tables for sufficiently large switch statements
711
de32c0cb 712fkeep-inline-functions
50431bc4 713Common Report Var(flag_keep_inline_functions)
f3fdaec4 714Generate code for functions even if they are fully inlined
de32c0cb
NB
715
716fkeep-static-consts
50431bc4 717Common Report Var(flag_keep_static_consts) Init(1)
f3fdaec4 718Emit static const variables even if they are not used
de32c0cb 719
6ff3a151 720fleading-underscore
50431bc4 721Common Report Var(flag_leading_underscore) Init(-1)
f3fdaec4 722Give external symbols a leading underscore
6ff3a151 723
efa1cdf0
ZD
724floop-optimize
725Common
c0220ea4 726Does nothing. Preserved for backward compatibility.
efa1cdf0 727
6ff3a151 728fmath-errno
ab442df7 729Common Report Var(flag_errno_math) Init(1) Optimization
f3fdaec4 730Set errno after built-in math functions
6ff3a151
NB
731
732fmem-report
50431bc4 733Common Report Var(mem_report)
f3fdaec4 734Report on permanent memory allocation
6ff3a151 735
31b66477
KC
736; This will attempt to merge constant section constants, if 1 only
737; string constants and constants from constant pool, if 2 also constant
738; variables.
6ff3a151 739fmerge-all-constants
c662432e 740Common Report Var(flag_merge_constants,2) Init(1) Optimization
f3fdaec4 741Attempt to merge identical constants and constant variables
6ff3a151
NB
742
743fmerge-constants
c662432e 744Common Report Var(flag_merge_constants,1) VarExists Optimization
f3fdaec4 745Attempt to merge identical constants across compilation units
6ff3a151 746
28a08168
ILT
747fmerge-debug-strings
748Common Report Var(flag_merge_debug_strings) Init(1)
749Attempt to merge identical debug strings across compilation units
750
de32c0cb
NB
751fmessage-length=
752Common RejectNegative Joined UInteger
cf03fd63 753-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
de32c0cb 754
e5626198 755fmodulo-sched
c662432e 756Common Report Var(flag_modulo_sched) Optimization
e5626198
AZ
757Perform SMS based modulo scheduling before the first scheduling pass
758
517d76fa
VY
759fmodulo-sched-allow-regmoves
760Common Report Var(flag_modulo_sched_allow_regmoves)
761Perform SMS based modulo scheduling with register moves allowed
762
5e962776 763fmove-loop-invariants
c662432e 764Common Report Var(flag_move_loop_invariants) Init(1) Optimization
5e962776
ZD
765Move loop invariant computations out of loops
766
6de9cd9a 767fmudflap
50431bc4 768Common RejectNegative Report Var(flag_mudflap)
c85ce869 769Add mudflap bounds-checking instrumentation for single-threaded program
6de9cd9a
DN
770
771fmudflapth
110c4563 772Common RejectNegative Report VarExists Var(flag_mudflap,2)
c85ce869 773Add mudflap bounds-checking instrumentation for multi-threaded program
6de9cd9a
DN
774
775fmudflapir
50431bc4 776Common RejectNegative Report Var(flag_mudflap_ignore_reads)
c85ce869 777Ignore read operations when inserting mudflap instrumentation
6de9cd9a 778
6fb5fa3c 779fdce
6ae4be32 780Common Var(flag_dce) Init(1) Optimization
6fb5fa3c
DB
781Use the RTL dead code elimination pass
782
783fdse
6ae4be32 784Common Var(flag_dse) Init(1) Optimization
6fb5fa3c
DB
785Use the RTL dead store elimination pass
786
d72372e4 787freschedule-modulo-scheduled-loops
c662432e 788Common Report Var(flag_resched_modulo_sched) Optimization
d72372e4
MH
789Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
790
6ff3a151 791fnon-call-exceptions
c662432e 792Common Report Var(flag_non_call_exceptions) Optimization
f3fdaec4 793Support synchronous non-call exceptions
6ff3a151 794
de32c0cb 795fomit-frame-pointer
c662432e 796Common Report Var(flag_omit_frame_pointer) Optimization
f3fdaec4 797When possible do not generate stack frames
de32c0cb 798
6ff3a151 799foptimize-register-move
c662432e 800Common Report Var(flag_regmove) Optimization
f3fdaec4 801Do the full register move optimization pass
6ff3a151 802
de32c0cb 803foptimize-sibling-calls
c662432e 804Common Report Var(flag_optimize_sibling_calls) Optimization
f3fdaec4 805Optimize sibling and tail recursive calls
de32c0cb 806
a5573239
JH
807fpre-ipa-mem-report
808Common Report Var(pre_ipa_mem_report)
809Report on memory allocation before interprocedural optimization
810
811fpost-ipa-mem-report
812Common Report Var(post_ipa_mem_report)
813Report on memory allocation before interprocedural optimization
814
6ff3a151 815fpack-struct
c662432e 816Common Report Var(flag_pack_struct) Optimization
f3fdaec4 817Pack structure members together without holes
6ff3a151 818
467cecf3 819fpack-struct=
c662432e 820Common RejectNegative Joined UInteger Optimization
467cecf3
JB
821-fpack-struct=<number> Set initial maximum structure member alignment
822
de32c0cb 823fpcc-struct-return
50431bc4 824Common Report Var(flag_pcc_struct_return,1) VarExists
f3fdaec4 825Return small aggregates in memory, not registers
de32c0cb
NB
826
827fpeel-loops
c662432e 828Common Report Var(flag_peel_loops) Optimization
f3fdaec4 829Perform loop peeling
de32c0cb
NB
830
831fpeephole
c662432e 832Common Report Var(flag_no_peephole,0) Optimization
f3fdaec4 833Enable machine specific peephole optimizations
de32c0cb 834
6ff3a151 835fpeephole2
c662432e 836Common Report Var(flag_peephole2) Optimization
f3fdaec4 837Enable an RTL peephole pass before sched2
6ff3a151 838
31b66477
KC
839fPIC
840Common Report Var(flag_pic,2)
841Generate position-independent code if possible (large mode)
842
843fPIE
844Common Report Var(flag_pie,2)
845Generate position-independent code for executables if possible (large mode)
846
6ff3a151 847fpic
50431bc4 848Common Report Var(flag_pic,1) VarExists
31b66477 849Generate position-independent code if possible (small mode)
6ff3a151
NB
850
851fpie
50431bc4 852Common Report Var(flag_pie,1) VarExists
31b66477 853Generate position-independent code for executables if possible (small mode)
6ff3a151 854
bbc8a8dc 855fpredictive-commoning
6ae4be32 856Common Report Var(flag_predictive_commoning) Optimization
bbc8a8dc
ZD
857Run predictive commoning optimization.
858
de32c0cb 859fprefetch-loop-arrays
c662432e 860Common Report Var(flag_prefetch_loop_arrays) Optimization
f3fdaec4 861Generate prefetch instructions, if available, for arrays in loops
de32c0cb 862
6ff3a151 863fprofile
50431bc4 864Common Report Var(profile_flag)
f3fdaec4 865Enable basic program profiling code
6ff3a151
NB
866
867fprofile-arcs
50431bc4 868Common Report Var(profile_arc_flag)
f3fdaec4 869Insert arc-based program profiling code
6ff3a151 870
2f908293
SP
871fprofile-dir=
872Common Joined RejectNegative
873Set the top-level directory for storing the profile data.
874The default is 'pwd'.
875
52c76998
PY
876fprofile-correction
877Common Report Var(flag_profile_correction)
878Enable correction of flow inconsistent profile data input
879
a8a5f53a
JH
880fprofile-generate
881Common
882Enable common options for generating profile info for profile feedback directed optimizations
883
2f908293
SP
884fprofile-generate=
885Common Joined RejectNegative
886Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
887
a8a5f53a 888fprofile-use
2f908293 889Common Var(flag_profile_use)
a8a5f53a
JH
890Enable common options for performing profile feedback directed optimizations
891
2f908293
SP
892fprofile-use=
893Common Joined RejectNegative
894Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
895
fca9dc00 896fprofile-values
50431bc4 897Common Report Var(flag_profile_values)
fca9dc00
ZD
898Insert code to profile values of expressions
899
de32c0cb
NB
900frandom-seed
901Common
902
903frandom-seed=
904Common Joined RejectNegative
cf03fd63 905-frandom-seed=<string> Make compile reproducible using <string>
de32c0cb 906
e0d9d0dd
NC
907; This switch causes the command line that was used to create an
908; object file to be recorded into the object file. The exact format
909; of this recording is target and binary file format dependent.
910; It is related to the -fverbose-asm switch, but that switch only
911; records information in the assembler output file as comments, so
912; they never reach the object file.
913frecord-gcc-switches
914Common Report Var(flag_record_gcc_switches)
915Record gcc command line switches in the object file.
916
de32c0cb 917freg-struct-return
c662432e 918Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
f3fdaec4 919Return small aggregates in registers
de32c0cb 920
6ff3a151 921fregmove
c662432e 922Common Report Var(flag_regmove) Optimization
f3fdaec4 923Enables a register move optimization
6ff3a151
NB
924
925frename-registers
c662432e 926Common Report Var(flag_rename_registers) Init(2) Optimization
f3fdaec4 927Perform a register renaming optimization pass
6ff3a151
NB
928
929freorder-blocks
c662432e 930Common Report Var(flag_reorder_blocks) Optimization
f3fdaec4 931Reorder basic blocks to improve code placement
6ff3a151 932
750054a2 933freorder-blocks-and-partition
c662432e 934Common Report Var(flag_reorder_blocks_and_partition) Optimization
750054a2
CT
935Reorder basic blocks and partition into hot and cold sections
936
6ff3a151 937freorder-functions
c662432e 938Common Report Var(flag_reorder_functions) Optimization
f3fdaec4 939Reorder functions to improve code placement
6ff3a151 940
de32c0cb 941frerun-cse-after-loop
c662432e 942Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
f3fdaec4 943Add a common subexpression elimination pass after loop optimizations
de32c0cb 944
efa1cdf0
ZD
945frerun-loop-opt
946Common
c0220ea4 947Does nothing. Preserved for backward compatibility.
efa1cdf0 948
039c3d42 949frounding-math
c662432e 950Common Report Var(flag_rounding_math) Optimization
039c3d42
RS
951Disable optimizations that assume default FP rounding behavior
952
6ff3a151 953fsched-interblock
c662432e 954Common Report Var(flag_schedule_interblock) Init(1) Optimization
f3fdaec4 955Enable scheduling across basic blocks
6ff3a151
NB
956
957fsched-spec
c662432e 958Common Report Var(flag_schedule_speculative) Init(1) Optimization
f3fdaec4 959Allow speculative motion of non-loads
6ff3a151
NB
960
961fsched-spec-load
c662432e 962Common Report Var(flag_schedule_speculative_load) Optimization
f3fdaec4 963Allow speculative motion of some loads
6ff3a151
NB
964
965fsched-spec-load-dangerous
c662432e 966Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
f3fdaec4 967Allow speculative motion of more loads
6ff3a151 968
de32c0cb
NB
969fsched-verbose=
970Common RejectNegative Joined
cf03fd63 971-fsched-verbose=<number> Set the verbosity level of the scheduler
de32c0cb 972
6ff3a151 973fsched2-use-superblocks
c662432e 974Common Report Var(flag_sched2_use_superblocks) Optimization
f3fdaec4 975If scheduling post reload, do superblock scheduling
6ff3a151
NB
976
977fsched2-use-traces
c662432e 978Common Report Var(flag_sched2_use_traces) Optimization
f3fdaec4 979If scheduling post reload, do trace scheduling
6ff3a151 980
de32c0cb 981fschedule-insns
c662432e 982Common Report Var(flag_schedule_insns) Optimization
f3fdaec4 983Reschedule instructions before register allocation
de32c0cb
NB
984
985fschedule-insns2
c662432e 986Common Report Var(flag_schedule_insns_after_reload) Optimization
f3fdaec4 987Reschedule instructions after register allocation
de32c0cb 988
e855c69d
AB
989; This flag should be on when a target implements non-trivial
990; scheduling hooks, maybe saving some information for its own sake.
991; On IA64, for example, this is used for correct bundling.
992fselective-scheduling
993Common Report Var(flag_selective_scheduling) Optimization
994Schedule instructions using selective scheduling algorithm
995
996fselective-scheduling2
997Common Report Var(flag_selective_scheduling2) Optimization
998Run selective scheduling after reload
999
1000fsel-sched-pipelining
1001Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1002Perform software pipelining of inner loops during selective scheduling
1003
1004fsel-sched-pipelining-outer-loops
1005Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1006Perform software pipelining of outer loops during selective scheduling
1007
1008fsel-sched-reschedule-pipelined
1009Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1010Reschedule pipelined regions without pipelining
1011
31b66477
KC
1012; sched_stalled_insns means that insns can be moved prematurely from the queue
1013; of stalled insns into the ready list.
569fa502 1014fsched-stalled-insns
ab442df7 1015Common Report Var(flag_sched_stalled_insns) Optimization UInteger
569fa502
DN
1016Allow premature scheduling of queued insns
1017
1018fsched-stalled-insns=
c22cacf3 1019Common RejectNegative Joined UInteger
4e994432 1020-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
569fa502 1021
31b66477
KC
1022; sched_stalled_insns_dep controls how many recently scheduled cycles will
1023; be examined for a dependency on a stalled insn that is candidate for
1024; premature removal from the queue of stalled insns into the ready list (has
1025; an effect only if the flag 'sched_stalled_insns' is set).
569fa502 1026fsched-stalled-insns-dep
ab442df7 1027Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
569fa502
DN
1028Set dependence distance checking in premature scheduling of queued insns
1029
1030fsched-stalled-insns-dep=
1031Common RejectNegative Joined UInteger
4e994432 1032-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
569fa502 1033
aacd3885 1034fsection-anchors
c662432e 1035Common Report Var(flag_section_anchors) Optimization
aacd3885
RS
1036Access data in the same section from shared anchor points
1037
38109dab 1038frtl-abstract-sequences
c662432e 1039Common Report Var(flag_rtl_seqabstr) Optimization
38109dab
GL
1040Perform sequence abstraction optimization on RTL
1041
8cd37d0b
RL
1042fsee
1043Common Report Var(flag_see) Init(0)
1044Eliminate redundant sign extensions using LCM.
1045
8abb6b22 1046fshow-column
f6230c17
TT
1047Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(0)
1048Show column numbers in diagnostics, when available. Default off
8abb6b22 1049
6ff3a151 1050fsignaling-nans
c662432e 1051Common Report Var(flag_signaling_nans) Optimization
f3fdaec4 1052Disable optimizations observable by IEEE signaling NaNs
6ff3a151 1053
db02da79 1054fsigned-zeros
21af5cdf 1055Common Report Var(flag_signed_zeros) Init(1) Optimization
db02da79
RS
1056Disable floating point optimizations that ignore the IEEE signedness of zero
1057
6ff3a151 1058fsingle-precision-constant
c662432e 1059Common Report Var(flag_single_precision_constant) Optimization
f3fdaec4 1060Convert floating point constants to single precision constants
6ff3a151 1061
113d659a 1062fsplit-ivs-in-unroller
c662432e 1063Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
c85ce869 1064Split lifetimes of induction variables when loops are unrolled
113d659a 1065
e53a16e7 1066fsplit-wide-types
21af5cdf 1067Common Report Var(flag_split_wide_types) Optimization
e53a16e7
ILT
1068Split wide types into independent registers
1069
f37a4f14 1070fvariable-expansion-in-unroller
c662432e 1071Common Report Var(flag_variable_expansion_in_unroller) Optimization
c85ce869 1072Apply variable expansion when loops are unrolled
f37a4f14 1073
b38f3813
EB
1074fstack-check=
1075Common Report RejectNegative Joined
1076-fstack-check=[no|generic|specific] Insert stack checking code into the program
1077
6ff3a151 1078fstack-check
b38f3813
EB
1079Common Report
1080Insert stack checking code into the program. Same as -fstack-check=specific
6ff3a151 1081
de32c0cb
NB
1082fstack-limit
1083Common
1084
058de654
NB
1085fstack-limit-register=
1086Common RejectNegative Joined
cf03fd63 1087-fstack-limit-register=<register> Trap if the stack goes past <register>
058de654
NB
1088
1089fstack-limit-symbol=
1090Common RejectNegative Joined
cf03fd63 1091-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
058de654 1092
7d69de61
RH
1093fstack-protector
1094Common Report Var(flag_stack_protect, 1)
1095Use propolice as a stack protection method
1096
1097fstack-protector-all
1098Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1099Use a stack protection method for every function
1100
de32c0cb 1101fstrength-reduce
efa1cdf0 1102Common
c0220ea4 1103Does nothing. Preserved for backward compatibility.
de32c0cb 1104
31b66477
KC
1105; Nonzero if we should do (language-dependent) alias analysis.
1106; Typically, this analysis will assume that expressions of certain
1107; types do not alias expressions of certain other types. Only used
1108; if alias analysis (in general) is enabled.
6ff3a151 1109fstrict-aliasing
c662432e 1110Common Report Var(flag_strict_aliasing) Optimization
f3fdaec4 1111Assume strict aliasing rules apply
6ff3a151 1112
eeef0e45
ILT
1113fstrict-overflow
1114Common Report Var(flag_strict_overflow)
1115Treat signed overflow as undefined
1116
de32c0cb 1117fsyntax-only
50431bc4 1118Common Report Var(flag_syntax_only)
f3fdaec4 1119Check for syntax errors, then stop
de32c0cb 1120
6ff3a151 1121ftest-coverage
50431bc4 1122Common Report Var(flag_test_coverage)
f3fdaec4 1123Create data files needed by \"gcov\"
6ff3a151 1124
de32c0cb 1125fthread-jumps
c662432e 1126Common Report Var(flag_thread_jumps) Optimization
f3fdaec4 1127Perform jump threading optimizations
de32c0cb 1128
6ff3a151 1129ftime-report
50431bc4 1130Common Report Var(time_report)
f3fdaec4 1131Report the time taken by each compiler pass
6ff3a151 1132
058de654
NB
1133ftls-model=
1134Common Joined RejectNegative
cf03fd63 1135-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
058de654 1136
474eccc6 1137ftoplevel-reorder
d6cc6ec9 1138Common Report Var(flag_toplevel_reorder) Init(2) Optimization
474eccc6
ILT
1139Reorder top level functions, variables, and asms
1140
de32c0cb 1141ftracer
50431bc4 1142Common Report Var(flag_tracer)
f3fdaec4 1143Perform superblock formation via tail duplication
de32c0cb 1144
31b66477
KC
1145; Zero means that floating-point math operations cannot generate a
1146; (user-visible) trap. This is the case, for example, in nonstop
1147; IEEE 754 arithmetic.
6ff3a151 1148ftrapping-math
c662432e 1149Common Report Var(flag_trapping_math) Init(1) Optimization
f3fdaec4 1150Assume floating-point operations can trap
6ff3a151
NB
1151
1152ftrapv
c662432e 1153Common Report Var(flag_trapv) Optimization
f3fdaec4 1154Trap for signed overflow in addition, subtraction and multiplication
6ff3a151 1155
6de9cd9a 1156ftree-ccp
c662432e 1157Common Report Var(flag_tree_ccp) Optimization
6de9cd9a
DN
1158Enable SSA-CCP optimization on trees
1159
0bca51f0 1160ftree-store-ccp
dce2b2f6
RG
1161Common
1162Does nothing. Preserved for backward compatibility.
0bca51f0 1163
6de9cd9a 1164ftree-ch
c662432e 1165Common Report Var(flag_tree_ch) Optimization
6de9cd9a
DN
1166Enable loop header copying on trees
1167
6de9cd9a 1168ftree-copyrename
c662432e 1169Common Report Var(flag_tree_copyrename) Optimization
c85ce869 1170Replace SSA temporaries with better names in copies
6de9cd9a 1171
0bca51f0 1172ftree-copy-prop
c662432e 1173Common Report Var(flag_tree_copy_prop) Optimization
0bca51f0
DN
1174Enable copy propagation on trees
1175
1176ftree-store-copy-prop
324d2217 1177Common
e9033855 1178Does nothing. Preserved for backward compatibility.
0bca51f0 1179
a5828d1e
MM
1180ftree-cselim
1181Common Report Var(flag_tree_cselim) Init(2) Optimization
1182Transform condition stores into unconditional ones
1183
b6e99746
MJ
1184ftree-switch-conversion
1185Common Report Var(flag_tree_switch_conversion) Optimization
1186Perform conversions of switch initializations.
1187
6de9cd9a 1188ftree-dce
c662432e 1189Common Report Var(flag_tree_dce) Optimization
6de9cd9a
DN
1190Enable SSA dead code elimination optimization on trees
1191
1192ftree-dominator-opts
c662432e 1193Common Report Var(flag_tree_dom) Optimization
6de9cd9a
DN
1194Enable dominator optimizations
1195
1196ftree-dse
c662432e 1197Common Report Var(flag_tree_dse) Optimization
6de9cd9a
DN
1198Enable dead store elimination
1199
ff2ad0f7 1200ftree-fre
c662432e 1201Common Report Var(flag_tree_fre) Optimization
ff2ad0f7
DN
1202Enable Full Redundancy Elimination (FRE) on trees
1203
dea61d92 1204ftree-loop-distribution
53ed2f0e 1205Common Report Var(flag_tree_loop_distribution) Optimization
dea61d92
SP
1206Enable loop distribution on trees
1207
1b08d87d 1208ftree-loop-im
c662432e 1209Common Report Var(flag_tree_loop_im) Init(1) Optimization
a7e5372d
ZD
1210Enable loop invariant motion on trees
1211
599eabdb 1212ftree-loop-linear
c662432e 1213Common Report Var(flag_tree_loop_linear) Optimization
599eabdb
DB
1214Enable linear loop transforms on trees
1215
1b08d87d 1216ftree-loop-ivcanon
c662432e 1217Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1b08d87d
DB
1218Create canonical induction variables in loops
1219
c66b6c66 1220ftree-loop-optimize
c662432e 1221Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
c66b6c66
ZD
1222Enable loop optimizations on tree level
1223
5f40b3cb
ZD
1224ftree-parallelize-loops=
1225Common Report Joined UInteger Var(flag_tree_parallelize_loops) Init(1)
1226Enable automatic parallelization of loops
1227
6de9cd9a 1228ftree-pre
c662432e 1229Common Report Var(flag_tree_pre) Optimization
6de9cd9a
DN
1230Enable SSA-PRE optimization on trees
1231
13c59415
UB
1232ftree-reassoc
1233Common Report Var(flag_tree_reassoc) Init(1) Optimization
1234Enable reassociation on tree level
1235
c75ab022 1236ftree-salias
1353232d
RG
1237Common
1238Does nothing. Preserved for backward compatibility.
c75ab022 1239
fa555252 1240ftree-sink
c662432e 1241Common Report Var(flag_tree_sink) Optimization
fa555252
DB
1242Enable SSA code sinking on trees
1243
6de9cd9a 1244ftree-sra
c662432e 1245Common Report Var(flag_tree_sra) Optimization
6de9cd9a
DN
1246Perform scalar replacement of aggregates
1247
1248ftree-ter
c72321c9 1249Common Report Var(flag_tree_ter) Init(1) Optimization
6de9cd9a
DN
1250Replace temporary expressions in the SSA->normal pass
1251
c662432e
NC
1252ftree-lrs
1253Common Report Var(flag_tree_live_range_split) Optimization
1254Perform live range splitting during the SSA->normal pass
1255
0bca51f0 1256ftree-vrp
c662432e 1257Common Report Var(flag_tree_vrp) Init(0) Optimization
0bca51f0
DN
1258Perform Value Range Propagation on trees
1259
de32c0cb 1260funit-at-a-time
d6cc6ec9 1261Common Report Var(flag_unit_at_a_time) Init(1) Optimization
f3fdaec4 1262Compile whole compilation unit at a time
de32c0cb
NB
1263
1264funroll-loops
c662432e 1265Common Report Var(flag_unroll_loops) Optimization
f3fdaec4 1266Perform loop unrolling when iteration count is known
de32c0cb
NB
1267
1268funroll-all-loops
c662432e 1269Common Report Var(flag_unroll_all_loops) Optimization
f3fdaec4 1270Perform loop unrolling for all loops
de32c0cb 1271
f9cc1a70
PB
1272; Nonzero means that loop optimizer may assume that the induction variables
1273; that control loops do not overflow and that the loops with nontrivial
1274; exit condition are not infinite
1275funsafe-loop-optimizations
c662432e 1276Common Report Var(flag_unsafe_loop_optimizations) Optimization
f9cc1a70
PB
1277Allow loop optimizations to assume that the loops behave in normal way
1278
a1a82611
RE
1279fassociative-math
1280Common Report Var(flag_associative_math)
1281Allow optimization for floating-point arithmetic which may change the
1282result of the operation due to rounding.
1283
1284freciprocal-math
1285Common Report Var(flag_reciprocal_math)
1286Same as -fassociative-math for expressions which include division.
1287
31b66477
KC
1288; Nonzero means that unsafe floating-point math optimizations are allowed
1289; for the sake of speed. IEEE compliance is not guaranteed, and operations
1290; are allowed to assume that their arguments and results are "normal"
1291; (e.g., nonnegative for SQRT).
6ff3a151 1292funsafe-math-optimizations
c662432e 1293Common Report Var(flag_unsafe_math_optimizations) Optimization
f3fdaec4 1294Allow math optimizations that may violate IEEE or ISO standards
6ff3a151 1295
de32c0cb 1296funswitch-loops
c662432e 1297Common Report Var(flag_unswitch_loops) Optimization
f3fdaec4 1298Perform loop unswitching
de32c0cb 1299
6ff3a151 1300funwind-tables
c662432e 1301Common Report Var(flag_unwind_tables) Optimization
f3fdaec4 1302Just generate unwind tables for exception handling
6ff3a151 1303
014a1138 1304fvar-tracking
c662432e 1305Common Report Var(flag_var_tracking) VarExists Optimization
014a1138
JZ
1306Perform variable tracking
1307
62760ffd
CT
1308fvar-tracking-uninit
1309Common Report Var(flag_var_tracking_uninit) Optimization
1310Perform variable tracking and also tag variables that are uninitialized
1311
79fe1b3b 1312ftree-vectorize
c662432e 1313Common Report Var(flag_tree_vectorize) Optimization
79fe1b3b
DN
1314Enable loop vectorization on trees
1315
792ed98b
HJ
1316fvect-cost-model
1317Common Report Var(flag_vect_cost_model) Optimization
1318Enable use of cost model in vectorization
1319
c12cc930 1320ftree-vect-loop-version
c662432e 1321Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
c12cc930
KB
1322Enable loop versioning when doing loop vectorization on trees
1323
c866976a
LB
1324ftree-vectorizer-verbose=
1325Common RejectNegative Joined
4e994432 1326-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
c866976a 1327
fbf798fc 1328ftree-scev-cprop
21af5cdf 1329Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
fbf798fc
DN
1330Enable copy propagation of scalar-evolution information.
1331
31b66477
KC
1332; -fverbose-asm causes extra commentary information to be produced in
1333; the generated assembly code (to make it more readable). This option
1334; is generally only of use to those who actually need to read the
1335; generated assembly code (perhaps while debugging the compiler itself).
1336; -fno-verbose-asm, the default, causes the extra information
1337; to not be added and is useful when comparing two assembler files.
6ff3a151 1338fverbose-asm
50431bc4 1339Common Report Var(flag_verbose_asm)
f3fdaec4 1340Add extra commentary to assembler output
6ff3a151 1341
d7afec4b
ND
1342fvisibility=
1343Common Joined RejectNegative
1344-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1345
1346
fca9dc00 1347fvpt
c662432e 1348Common Report Var(flag_value_profile_transformations) Optimization
fca9dc00
ZD
1349Use expression value profiles in optimizations
1350
62551c66 1351fweb
c662432e 1352Common Report Var(flag_web) Init(2) Optimization
62551c66
JH
1353Construct webs and split unrelated uses of single variable
1354
c2699190
XDL
1355ftree-builtin-call-dce
1356Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1357Enable conditional dead code elimination for builtin calls
1358
ce91e74c 1359fwhole-program
c662432e 1360Common Report Var(flag_whole_program) Init(0) Optimization
ce91e74c
JH
1361Perform whole program optimizations
1362
6ff3a151 1363fwrapv
c662432e 1364Common Report Var(flag_wrapv) Optimization
f3fdaec4 1365Assume signed arithmetic overflow wraps around
6ff3a151 1366
6ff3a151 1367fzero-initialized-in-bss
50431bc4 1368Common Report Var(flag_zero_initialized_in_bss) Init(1)
f3fdaec4 1369Put zero initialized data in the bss section
6ff3a151 1370
e01cc6dc
NB
1371g
1372Common JoinedOrMissing
df38ffef
NB
1373Generate debug information in default format
1374
1375gcoff
14c7833c 1376Common JoinedOrMissing Negative(gdwarf-2)
df38ffef
NB
1377Generate debug information in COFF format
1378
df38ffef 1379gdwarf-2
14c7833c 1380Common JoinedOrMissing Negative(gstabs)
df38ffef
NB
1381Generate debug information in DWARF v2 format
1382
1383ggdb
1384Common JoinedOrMissing
1385Generate debug information in default extended format
1386
1387gstabs
14c7833c 1388Common JoinedOrMissing Negative(gstabs+)
df38ffef
NB
1389Generate debug information in STABS format
1390
1391gstabs+
14c7833c 1392Common JoinedOrMissing Negative(gvms)
df38ffef
NB
1393Generate debug information in extended STABS format
1394
1395gvms
14c7833c 1396Common JoinedOrMissing Negative(gxcoff)
df38ffef
NB
1397Generate debug information in VMS format
1398
1399gxcoff
14c7833c 1400Common JoinedOrMissing Negative(gxcoff+)
df38ffef
NB
1401Generate debug information in XCOFF format
1402
1403gxcoff+
14c7833c 1404Common JoinedOrMissing Negative(gcoff)
df38ffef 1405Generate debug information in extended XCOFF format
e01cc6dc 1406
d185d268
NB
1407o
1408Common Joined Separate
cf03fd63 1409-o <file> Place output into <file>
d185d268
NB
1410
1411p
50431bc4 1412Common Var(profile_flag)
cf03fd63 1413Enable function profiling
d185d268
NB
1414
1415pedantic
50431bc4 1416Common Var(pedantic)
cf03fd63 1417Issue warnings needed for strict compliance to the standard
d185d268
NB
1418
1419pedantic-errors
1420Common
cf03fd63 1421Like -pedantic but issue them as errors
d185d268 1422
d7b42618 1423quiet
50431bc4 1424Common Var(quiet_flag)
cf03fd63 1425Do not display functions compiled or elapsed time
d7b42618 1426
d185d268 1427version
50431bc4 1428Common Var(version_flag)
cf03fd63 1429Display the compiler's version
d185d268
NB
1430
1431w
50431bc4 1432Common Var(inhibit_warnings)
cf03fd63 1433Suppress warnings
d185d268 1434
528dc603
L
1435shared
1436Common RejectNegative Negative(pie)
1437Create a shared library
1438
1439pie
1440Common RejectNegative Negative(shared)
1441Create a position independent executable
1442
d7b42618 1443; This comment is to ensure we retain the blank line above.
This page took 1.487495 seconds and 5 git commands to generate.