]> gcc.gnu.org Git - gcc.git/blame - gcc/common.opt
re PR fortran/36582 (Namelist I/O error: Bogus "Cannot match namelist object")
[gcc.git] / gcc / common.opt
CommitLineData
d7b42618 1; Options for the language- and target-independent parts of the compiler.
50431bc4 2
28a08168
ILT
3; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008
4; Free Software Foundation, Inc.
d7b42618
NB
5;
6; This file is part of GCC.
7;
8; GCC is free software; you can redistribute it and/or modify it under
9; the terms of the GNU General Public License as published by the Free
9dcd6f09 10; Software Foundation; either version 3, or (at your option) any later
d7b42618 11; version.
c22cacf3 12;
d7b42618
NB
13; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14; WARRANTY; without even the implied warranty of MERCHANTABILITY or
15; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16; for more details.
c22cacf3 17;
d7b42618 18; You should have received a copy of the GNU General Public License
9dcd6f09
NC
19; along with GCC; see the file COPYING3. If not see
20; <http://www.gnu.org/licenses/>.
d7b42618 21
71733172 22; See the GCC internals manual (options.texi) for a description of this file's format.
d7b42618
NB
23
24; Please try to keep this file in ASCII collating order.
25
d185d268
NB
26-help
27Common
cf03fd63 28Display this information
d185d268 29
c662432e
NC
30-help=
31Common Report Joined
32--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
903caebf 33
d185d268
NB
34-target-help
35Common
c662432e
NC
36Alias for --help=target
37
38;; The following three entries are to work around the gcc driver
39;; program's insatiable desire to turn options starting with a
40;; double dash (--) into options starting with a dash f (-f).
41fhelp
42Common
43
44fhelp=
45Common Joined
46
47ftarget-help
48Common
49
50-param
51Common Separate
52--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
d185d268
NB
53
54-version
55Common
56
57G
7b086b11 58Common Joined Separate UInteger
cf03fd63 59-G<number> Put global and static data smaller than <number> bytes into a special section (on some targets)
d185d268 60
903caebf
NB
61O
62Common JoinedOrMissing
cf03fd63 63-O<number> Set optimization level to <number>
903caebf
NB
64
65Os
66Common
cf03fd63 67Optimize for space rather than speed
903caebf
NB
68
69W
70Common RejectNegative
28786366 71This switch is deprecated; use -Wextra instead
903caebf 72
e01cc6dc 73Waggregate-return
c662432e 74Common Var(warn_aggregate_return) Warning
28786366 75Warn about returning structures, unions or arrays
e01cc6dc 76
590b1f2d 77Warray-bounds
21af5cdf 78Common Var(warn_array_bounds) Warning
590b1f2d
DM
79Warn if an array is accessed out of bounds
80
5c498b10 81Wattributes
c662432e 82Common Var(warn_attributes) Init(1) Warning
5c498b10
DD
83Warn about inappropriate attribute usage
84
e01cc6dc 85Wcast-align
c662432e 86Common Var(warn_cast_align) Warning
28786366 87Warn about pointer casts which increase alignment
e01cc6dc
NB
88
89Wdeprecated-declarations
c662432e 90Common Var(warn_deprecated_decl) Init(1) Warning
28786366 91Warn about uses of __attribute__((deprecated)) declarations
e01cc6dc
NB
92
93Wdisabled-optimization
c662432e 94Common Var(warn_disabled_optimization) Warning
28786366 95Warn when an optimization pass is disabled
e01cc6dc 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
c662432e 213Common Warning
cf03fd63 214Enable all -Wunused- warnings
903caebf 215
e01cc6dc 216Wunused-function
c662432e 217Common Var(warn_unused_function) Warning
28786366 218Warn when a function is unused
e01cc6dc
NB
219
220Wunused-label
c662432e 221Common Var(warn_unused_label) Warning
28786366 222Warn when a label is unused
e01cc6dc
NB
223
224Wunused-parameter
c662432e 225Common Var(warn_unused_parameter) Warning
28786366 226Warn when a function parameter is unused
e01cc6dc
NB
227
228Wunused-value
c662432e 229Common Var(warn_unused_value) Warning
28786366 230Warn when an expression value is unused
e01cc6dc
NB
231
232Wunused-variable
c662432e 233Common Var(warn_unused_variable) 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
50431bc4 278Common Report Var(align_functions,0)
f3fdaec4 279Align the start of functions
6ff3a151 280
058de654
NB
281falign-functions=
282Common RejectNegative Joined UInteger
283
6ff3a151 284falign-jumps
c662432e 285Common Report Var(align_jumps,0) Optimization
f3fdaec4 286Align labels which are only reached by jumping
6ff3a151 287
058de654
NB
288falign-jumps=
289Common RejectNegative Joined UInteger
290
6ff3a151 291falign-labels
c662432e 292Common Report Var(align_labels,0) Optimization
f3fdaec4 293Align all labels
6ff3a151 294
058de654
NB
295falign-labels=
296Common RejectNegative Joined UInteger
297
6ff3a151 298falign-loops
c662432e 299Common Report Var(align_loops) Optimization
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
355866de 462fearly-inlining
c662432e 463Common Report Var(flag_early_inlining) Init(1) Optimization
355866de
RG
464Perform early inlining
465
de32c0cb 466feliminate-dwarf2-dups
50431bc4 467Common Report Var(flag_eliminate_dwarf2_dups)
f3fdaec4 468Perform DWARF2 duplicate elimination
de32c0cb 469
6a08f7b3 470feliminate-unused-debug-symbols
50431bc4 471Common Report Var(flag_debug_only_used_symbols)
f3fdaec4 472Perform unused type elimination in debug info
6a08f7b3 473
de32c0cb 474feliminate-unused-debug-types
50431bc4 475Common Report Var(flag_eliminate_unused_debug_types) Init(1)
f3fdaec4 476Perform unused type elimination in debug info
de32c0cb 477
e713adf6 478femit-class-debug-always
eae8e474 479Common Report Var(flag_emit_class_debug_always) Init(0)
e713adf6
CD
480Do not suppress C++ class debug information.
481
6ff3a151 482fexceptions
c662432e 483Common Report Var(flag_exceptions) Optimization
f3fdaec4 484Enable exception handling
6ff3a151 485
de32c0cb 486fexpensive-optimizations
c662432e 487Common Report Var(flag_expensive_optimizations) Optimization
f3fdaec4 488Perform a number of minor, expensive optimizations
de32c0cb 489
058de654
NB
490ffast-math
491Common
492
6ff3a151 493ffinite-math-only
c662432e 494Common Report Var(flag_finite_math_only) Optimization
f3fdaec4 495Assume no NaNs or infinities are generated
6ff3a151 496
058de654
NB
497ffixed-
498Common Joined RejectNegative
cf03fd63 499-ffixed-<register> Mark <register> as being unavailable to the compiler
058de654 500
de32c0cb 501ffloat-store
c662432e 502Common Report Var(flag_float_store) Optimization
31b66477 503Don't allocate floats and doubles in extended-precision registers
de32c0cb
NB
504
505fforce-addr
3de5e93a
SB
506Common
507Does nothing. Preserved for backward compatibility.
de32c0cb 508
2ca2b607
SB
509fforward-propagate
510Common Report Var(flag_forward_propagate) Optimization
a52b023a
PB
511Perform a forward propagation pass on RTL
512
31b66477
KC
513; Nonzero means don't put addresses of constant functions in registers.
514; Used for compiling the Unix kernel, where strange substitutions are
515; done on the assembly output.
de32c0cb 516ffunction-cse
50431bc4 517Common Report Var(flag_no_function_cse,0)
f3fdaec4 518Allow function addresses to be held in registers
de32c0cb 519
6ff3a151 520ffunction-sections
50431bc4 521Common Report Var(flag_function_sections)
f3fdaec4 522Place each function into its own section
6ff3a151 523
de32c0cb 524fgcse
c662432e 525Common Report Var(flag_gcse) Optimization
f3fdaec4 526Perform global common subexpression elimination
de32c0cb
NB
527
528fgcse-lm
c662432e 529Common Report Var(flag_gcse_lm) Init(1) Optimization
f3fdaec4 530Perform enhanced load motion during global common subexpression elimination
de32c0cb
NB
531
532fgcse-sm
c662432e 533Common Report Var(flag_gcse_sm) Init(0) Optimization
f3fdaec4 534Perform store motion after global common subexpression elimination
de32c0cb 535
f5f2e3cd 536fgcse-las
c662432e 537Common Report Var(flag_gcse_las) Init(0) Optimization
f9957958
MH
538Perform redundant load after store elimination in global common subexpression
539elimination
540
541fgcse-after-reload
c662432e 542Common Report Var(flag_gcse_after_reload) Optimization
f9957958 543Perform global common subexpression elimination after register allocation
c85ce869 544has finished
f5f2e3cd 545
6ff3a151 546fguess-branch-probability
c662432e 547Common Report Var(flag_guess_branch_prob) Optimization
f3fdaec4 548Enable guessing of branch probabilities
6ff3a151 549
31b66477
KC
550; Nonzero means ignore `#ident' directives. 0 means handle them.
551; Generate position-independent code for executables if possible
552; On SVR4 targets, it also controls whether or not to emit a
553; string identifying the compiler.
6ff3a151 554fident
50431bc4 555Common Report Var(flag_no_ident,0)
f3fdaec4 556Process #ident directives
6ff3a151 557
de32c0cb 558fif-conversion
c662432e 559Common Report Var(flag_if_conversion) Optimization
f3fdaec4 560Perform conversion of conditional jumps to branchless equivalents
de32c0cb
NB
561
562fif-conversion2
c662432e 563Common Report Var(flag_if_conversion2) Optimization
f3fdaec4 564Perform conversion of conditional jumps to conditional execution
de32c0cb 565
31b66477
KC
566; -finhibit-size-directive inhibits output of .size for ELF.
567; This is used only for compiling crtstuff.c,
568; and it may be extended to other effects
569; needed for crtstuff.c on other systems.
6ff3a151 570finhibit-size-directive
50431bc4 571Common Report Var(flag_inhibit_size_directive)
f3fdaec4 572Do not generate .size directives
6ff3a151 573
31b66477
KC
574; Nonzero means that functions declared `inline' will be treated
575; as `static'. Prevents generation of zillions of copies of unused
576; static inline functions; instead, `inlines' are written out
577; only when actually used. Used in conjunction with -g. Also
578; does the right thing with #pragma interface.
de32c0cb 579finline
50431bc4 580Common Report Var(flag_no_inline,0) Init(2)
f3fdaec4 581Pay attention to the \"inline\" keyword
de32c0cb 582
4d4b8cb9
JH
583finline-small-functions
584Common Report Var(flag_inline_small_functions) Optimization
585Integrate simple functions into their callers when code size is known to not growth
586
de32c0cb 587finline-functions
c662432e 588Common Report Var(flag_inline_functions) Optimization
f3fdaec4 589Integrate simple functions into their callers
de32c0cb 590
355866de 591finline-functions-called-once
c662432e 592Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
355866de 593Integrate functions called once into their callers
d63db217 594
d302c9d6
NB
595finline-limit-
596Common RejectNegative Joined UInteger
597
598finline-limit=
599Common RejectNegative Joined UInteger
cf03fd63 600-finline-limit=<number> Limit the size of inlined functions to <number>
d302c9d6 601
6ff3a151 602finstrument-functions
50431bc4 603Common Report Var(flag_instrument_function_entry_exit)
f3fdaec4 604Instrument function entry and exit with profiling calls
6ff3a151 605
8d5a7d1f
ILT
606finstrument-functions-exclude-function-list=
607Common RejectNegative Joined
608-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
609
610finstrument-functions-exclude-file-list=
611Common RejectNegative Joined
612-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
613
d6e14e8f 614fipa-cp
c662432e 615Common Report Var(flag_ipa_cp) Optimization
d6e14e8f
SB
616Perform Interprocedural constant propagation
617
ea900239 618fipa-pure-const
c662432e 619Common Report Var(flag_ipa_pure_const) Init(0) Optimization
ea900239
DB
620Discover pure and const functions
621
4cf4d6a3 622fipa-pta
c662432e 623Common Report Var(flag_ipa_pta) Init(0) Optimization
4cf4d6a3
DB
624Perform interprocedural points-to analysis
625
ea900239 626fipa-reference
c662432e 627Common Report Var(flag_ipa_reference) Init(0) Optimization
ea900239
DB
628Discover readonly and non addressable static variables
629
630fipa-type-escape
c662432e 631Common Report Var(flag_ipa_type_escape) Init(0) Optimization
ea900239
DB
632Type based escape and alias analysis
633
43d861a5 634fipa-matrix-reorg
6ae4be32 635Common Report Var(flag_ipa_matrix_reorg) Optimization
43d861a5
RL
636Perform matrix layout flattening and transposing based
637on profiling information.
638
e1dc98b2
OG
639fipa-struct-reorg
640Common Report Var(flag_ipa_struct_reorg)
641Perform structure layout optimizations based
642on profiling information.
643
8b11a64c 644fivopts
c662432e 645Common Report Var(flag_ivopts) Init(1) Optimization
8b11a64c
ZD
646Optimize induction variables on trees
647
82c0180d 648fjump-tables
c662432e 649Common Var(flag_jump_tables) Init(1) Optimization
82c0180d
JM
650Use jump tables for sufficiently large switch statements
651
de32c0cb 652fkeep-inline-functions
50431bc4 653Common Report Var(flag_keep_inline_functions)
f3fdaec4 654Generate code for functions even if they are fully inlined
de32c0cb
NB
655
656fkeep-static-consts
50431bc4 657Common Report Var(flag_keep_static_consts) Init(1)
f3fdaec4 658Emit static const variables even if they are not used
de32c0cb 659
6ff3a151 660fleading-underscore
50431bc4 661Common Report Var(flag_leading_underscore) Init(-1)
f3fdaec4 662Give external symbols a leading underscore
6ff3a151 663
efa1cdf0
ZD
664floop-optimize
665Common
c0220ea4 666Does nothing. Preserved for backward compatibility.
efa1cdf0 667
6ff3a151 668fmath-errno
50431bc4 669Common Report Var(flag_errno_math) Init(1)
f3fdaec4 670Set errno after built-in math functions
6ff3a151
NB
671
672fmem-report
50431bc4 673Common Report Var(mem_report)
f3fdaec4 674Report on permanent memory allocation
6ff3a151 675
31b66477
KC
676; This will attempt to merge constant section constants, if 1 only
677; string constants and constants from constant pool, if 2 also constant
678; variables.
6ff3a151 679fmerge-all-constants
c662432e 680Common Report Var(flag_merge_constants,2) Init(1) Optimization
f3fdaec4 681Attempt to merge identical constants and constant variables
6ff3a151
NB
682
683fmerge-constants
c662432e 684Common Report Var(flag_merge_constants,1) VarExists Optimization
f3fdaec4 685Attempt to merge identical constants across compilation units
6ff3a151 686
28a08168
ILT
687fmerge-debug-strings
688Common Report Var(flag_merge_debug_strings) Init(1)
689Attempt to merge identical debug strings across compilation units
690
de32c0cb
NB
691fmessage-length=
692Common RejectNegative Joined UInteger
cf03fd63 693-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
de32c0cb 694
e5626198 695fmodulo-sched
c662432e 696Common Report Var(flag_modulo_sched) Optimization
e5626198
AZ
697Perform SMS based modulo scheduling before the first scheduling pass
698
517d76fa
VY
699fmodulo-sched-allow-regmoves
700Common Report Var(flag_modulo_sched_allow_regmoves)
701Perform SMS based modulo scheduling with register moves allowed
702
5e962776 703fmove-loop-invariants
c662432e 704Common Report Var(flag_move_loop_invariants) Init(1) Optimization
5e962776
ZD
705Move loop invariant computations out of loops
706
6de9cd9a 707fmudflap
50431bc4 708Common RejectNegative Report Var(flag_mudflap)
c85ce869 709Add mudflap bounds-checking instrumentation for single-threaded program
6de9cd9a
DN
710
711fmudflapth
110c4563 712Common RejectNegative Report VarExists Var(flag_mudflap,2)
c85ce869 713Add mudflap bounds-checking instrumentation for multi-threaded program
6de9cd9a
DN
714
715fmudflapir
50431bc4 716Common RejectNegative Report Var(flag_mudflap_ignore_reads)
c85ce869 717Ignore read operations when inserting mudflap instrumentation
6de9cd9a 718
6fb5fa3c 719fdce
6ae4be32 720Common Var(flag_dce) Init(1) Optimization
6fb5fa3c
DB
721Use the RTL dead code elimination pass
722
723fdse
6ae4be32 724Common Var(flag_dse) Init(1) Optimization
6fb5fa3c
DB
725Use the RTL dead store elimination pass
726
d72372e4 727freschedule-modulo-scheduled-loops
c662432e 728Common Report Var(flag_resched_modulo_sched) Optimization
d72372e4
MH
729Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
730
6ff3a151 731fnon-call-exceptions
c662432e 732Common Report Var(flag_non_call_exceptions) Optimization
f3fdaec4 733Support synchronous non-call exceptions
6ff3a151 734
de32c0cb 735fomit-frame-pointer
c662432e 736Common Report Var(flag_omit_frame_pointer) Optimization
f3fdaec4 737When possible do not generate stack frames
de32c0cb 738
6ff3a151 739foptimize-register-move
c662432e 740Common Report Var(flag_regmove) Optimization
f3fdaec4 741Do the full register move optimization pass
6ff3a151 742
de32c0cb 743foptimize-sibling-calls
c662432e 744Common Report Var(flag_optimize_sibling_calls) Optimization
f3fdaec4 745Optimize sibling and tail recursive calls
de32c0cb 746
a5573239
JH
747fpre-ipa-mem-report
748Common Report Var(pre_ipa_mem_report)
749Report on memory allocation before interprocedural optimization
750
751fpost-ipa-mem-report
752Common Report Var(post_ipa_mem_report)
753Report on memory allocation before interprocedural optimization
754
6ff3a151 755fpack-struct
c662432e 756Common Report Var(flag_pack_struct) Optimization
f3fdaec4 757Pack structure members together without holes
6ff3a151 758
467cecf3 759fpack-struct=
c662432e 760Common RejectNegative Joined UInteger Optimization
467cecf3
JB
761-fpack-struct=<number> Set initial maximum structure member alignment
762
de32c0cb 763fpcc-struct-return
50431bc4 764Common Report Var(flag_pcc_struct_return,1) VarExists
f3fdaec4 765Return small aggregates in memory, not registers
de32c0cb
NB
766
767fpeel-loops
c662432e 768Common Report Var(flag_peel_loops) Optimization
f3fdaec4 769Perform loop peeling
de32c0cb
NB
770
771fpeephole
c662432e 772Common Report Var(flag_no_peephole,0) Optimization
f3fdaec4 773Enable machine specific peephole optimizations
de32c0cb 774
6ff3a151 775fpeephole2
c662432e 776Common Report Var(flag_peephole2) Optimization
f3fdaec4 777Enable an RTL peephole pass before sched2
6ff3a151 778
31b66477
KC
779fPIC
780Common Report Var(flag_pic,2)
781Generate position-independent code if possible (large mode)
782
783fPIE
784Common Report Var(flag_pie,2)
785Generate position-independent code for executables if possible (large mode)
786
6ff3a151 787fpic
50431bc4 788Common Report Var(flag_pic,1) VarExists
31b66477 789Generate position-independent code if possible (small mode)
6ff3a151
NB
790
791fpie
50431bc4 792Common Report Var(flag_pie,1) VarExists
31b66477 793Generate position-independent code for executables if possible (small mode)
6ff3a151 794
bbc8a8dc 795fpredictive-commoning
6ae4be32 796Common Report Var(flag_predictive_commoning) Optimization
bbc8a8dc
ZD
797Run predictive commoning optimization.
798
de32c0cb 799fprefetch-loop-arrays
c662432e 800Common Report Var(flag_prefetch_loop_arrays) Optimization
f3fdaec4 801Generate prefetch instructions, if available, for arrays in loops
de32c0cb 802
6ff3a151 803fprofile
50431bc4 804Common Report Var(profile_flag)
f3fdaec4 805Enable basic program profiling code
6ff3a151
NB
806
807fprofile-arcs
50431bc4 808Common Report Var(profile_arc_flag)
f3fdaec4 809Insert arc-based program profiling code
6ff3a151 810
2f908293
SP
811fprofile-dir=
812Common Joined RejectNegative
813Set the top-level directory for storing the profile data.
814The default is 'pwd'.
815
a8a5f53a
JH
816fprofile-generate
817Common
818Enable common options for generating profile info for profile feedback directed optimizations
819
2f908293
SP
820fprofile-generate=
821Common Joined RejectNegative
822Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
823
a8a5f53a 824fprofile-use
2f908293 825Common Var(flag_profile_use)
a8a5f53a
JH
826Enable common options for performing profile feedback directed optimizations
827
2f908293
SP
828fprofile-use=
829Common Joined RejectNegative
830Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
831
fca9dc00 832fprofile-values
50431bc4 833Common Report Var(flag_profile_values)
fca9dc00
ZD
834Insert code to profile values of expressions
835
de32c0cb
NB
836frandom-seed
837Common
838
839frandom-seed=
840Common Joined RejectNegative
cf03fd63 841-frandom-seed=<string> Make compile reproducible using <string>
de32c0cb 842
e0d9d0dd
NC
843; This switch causes the command line that was used to create an
844; object file to be recorded into the object file. The exact format
845; of this recording is target and binary file format dependent.
846; It is related to the -fverbose-asm switch, but that switch only
847; records information in the assembler output file as comments, so
848; they never reach the object file.
849frecord-gcc-switches
850Common Report Var(flag_record_gcc_switches)
851Record gcc command line switches in the object file.
852
de32c0cb 853freg-struct-return
c662432e 854Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
f3fdaec4 855Return small aggregates in registers
de32c0cb 856
6ff3a151 857fregmove
c662432e 858Common Report Var(flag_regmove) Optimization
f3fdaec4 859Enables a register move optimization
6ff3a151
NB
860
861frename-registers
c662432e 862Common Report Var(flag_rename_registers) Init(2) Optimization
f3fdaec4 863Perform a register renaming optimization pass
6ff3a151
NB
864
865freorder-blocks
c662432e 866Common Report Var(flag_reorder_blocks) Optimization
f3fdaec4 867Reorder basic blocks to improve code placement
6ff3a151 868
750054a2 869freorder-blocks-and-partition
c662432e 870Common Report Var(flag_reorder_blocks_and_partition) Optimization
750054a2
CT
871Reorder basic blocks and partition into hot and cold sections
872
6ff3a151 873freorder-functions
c662432e 874Common Report Var(flag_reorder_functions) Optimization
f3fdaec4 875Reorder functions to improve code placement
6ff3a151 876
de32c0cb 877frerun-cse-after-loop
c662432e 878Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
f3fdaec4 879Add a common subexpression elimination pass after loop optimizations
de32c0cb 880
efa1cdf0
ZD
881frerun-loop-opt
882Common
c0220ea4 883Does nothing. Preserved for backward compatibility.
efa1cdf0 884
039c3d42 885frounding-math
c662432e 886Common Report Var(flag_rounding_math) Optimization
039c3d42
RS
887Disable optimizations that assume default FP rounding behavior
888
6ff3a151 889fsched-interblock
c662432e 890Common Report Var(flag_schedule_interblock) Init(1) Optimization
f3fdaec4 891Enable scheduling across basic blocks
6ff3a151
NB
892
893fsched-spec
c662432e 894Common Report Var(flag_schedule_speculative) Init(1) Optimization
f3fdaec4 895Allow speculative motion of non-loads
6ff3a151
NB
896
897fsched-spec-load
c662432e 898Common Report Var(flag_schedule_speculative_load) Optimization
f3fdaec4 899Allow speculative motion of some loads
6ff3a151
NB
900
901fsched-spec-load-dangerous
c662432e 902Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
f3fdaec4 903Allow speculative motion of more loads
6ff3a151 904
de32c0cb
NB
905fsched-verbose=
906Common RejectNegative Joined
cf03fd63 907-fsched-verbose=<number> Set the verbosity level of the scheduler
de32c0cb 908
6ff3a151 909fsched2-use-superblocks
c662432e 910Common Report Var(flag_sched2_use_superblocks) Optimization
f3fdaec4 911If scheduling post reload, do superblock scheduling
6ff3a151
NB
912
913fsched2-use-traces
c662432e 914Common Report Var(flag_sched2_use_traces) Optimization
f3fdaec4 915If scheduling post reload, do trace scheduling
6ff3a151 916
de32c0cb 917fschedule-insns
c662432e 918Common Report Var(flag_schedule_insns) Optimization
f3fdaec4 919Reschedule instructions before register allocation
de32c0cb
NB
920
921fschedule-insns2
c662432e 922Common Report Var(flag_schedule_insns_after_reload) Optimization
f3fdaec4 923Reschedule instructions after register allocation
de32c0cb 924
31b66477
KC
925; sched_stalled_insns means that insns can be moved prematurely from the queue
926; of stalled insns into the ready list.
569fa502 927fsched-stalled-insns
c662432e 928Common Report Var(flag_sched_stalled_insns) Optimization
569fa502
DN
929Allow premature scheduling of queued insns
930
931fsched-stalled-insns=
c22cacf3 932Common RejectNegative Joined UInteger
4e994432 933-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
569fa502 934
31b66477
KC
935; sched_stalled_insns_dep controls how many recently scheduled cycles will
936; be examined for a dependency on a stalled insn that is candidate for
937; premature removal from the queue of stalled insns into the ready list (has
938; an effect only if the flag 'sched_stalled_insns' is set).
569fa502 939fsched-stalled-insns-dep
c662432e 940Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization
569fa502
DN
941Set dependence distance checking in premature scheduling of queued insns
942
943fsched-stalled-insns-dep=
944Common RejectNegative Joined UInteger
4e994432 945-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
569fa502 946
aacd3885 947fsection-anchors
c662432e 948Common Report Var(flag_section_anchors) Optimization
aacd3885
RS
949Access data in the same section from shared anchor points
950
38109dab 951frtl-abstract-sequences
c662432e 952Common Report Var(flag_rtl_seqabstr) Optimization
38109dab
GL
953Perform sequence abstraction optimization on RTL
954
8cd37d0b
RL
955fsee
956Common Report Var(flag_see) Init(0)
957Eliminate redundant sign extensions using LCM.
958
8abb6b22 959fshow-column
f6230c17
TT
960Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(0)
961Show column numbers in diagnostics, when available. Default off
8abb6b22 962
6ff3a151 963fsignaling-nans
c662432e 964Common Report Var(flag_signaling_nans) Optimization
f3fdaec4 965Disable optimizations observable by IEEE signaling NaNs
6ff3a151 966
db02da79 967fsigned-zeros
21af5cdf 968Common Report Var(flag_signed_zeros) Init(1) Optimization
db02da79
RS
969Disable floating point optimizations that ignore the IEEE signedness of zero
970
6ff3a151 971fsingle-precision-constant
c662432e 972Common Report Var(flag_single_precision_constant) Optimization
f3fdaec4 973Convert floating point constants to single precision constants
6ff3a151 974
113d659a 975fsplit-ivs-in-unroller
c662432e 976Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
c85ce869 977Split lifetimes of induction variables when loops are unrolled
113d659a 978
e53a16e7 979fsplit-wide-types
21af5cdf 980Common Report Var(flag_split_wide_types) Optimization
e53a16e7
ILT
981Split wide types into independent registers
982
f37a4f14 983fvariable-expansion-in-unroller
c662432e 984Common Report Var(flag_variable_expansion_in_unroller) Optimization
c85ce869 985Apply variable expansion when loops are unrolled
f37a4f14 986
31b66477
KC
987; Emit code to probe the stack, to help detect stack overflow; also
988; may cause large objects to be allocated dynamically.
6ff3a151 989fstack-check
50431bc4 990Common Report Var(flag_stack_check)
f3fdaec4 991Insert stack checking code into the program
6ff3a151 992
de32c0cb
NB
993fstack-limit
994Common
995
058de654
NB
996fstack-limit-register=
997Common RejectNegative Joined
cf03fd63 998-fstack-limit-register=<register> Trap if the stack goes past <register>
058de654
NB
999
1000fstack-limit-symbol=
1001Common RejectNegative Joined
cf03fd63 1002-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
058de654 1003
7d69de61
RH
1004fstack-protector
1005Common Report Var(flag_stack_protect, 1)
1006Use propolice as a stack protection method
1007
1008fstack-protector-all
1009Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1010Use a stack protection method for every function
1011
de32c0cb 1012fstrength-reduce
efa1cdf0 1013Common
c0220ea4 1014Does nothing. Preserved for backward compatibility.
de32c0cb 1015
31b66477
KC
1016; Nonzero if we should do (language-dependent) alias analysis.
1017; Typically, this analysis will assume that expressions of certain
1018; types do not alias expressions of certain other types. Only used
1019; if alias analysis (in general) is enabled.
6ff3a151 1020fstrict-aliasing
c662432e 1021Common Report Var(flag_strict_aliasing) Optimization
f3fdaec4 1022Assume strict aliasing rules apply
6ff3a151 1023
eeef0e45
ILT
1024fstrict-overflow
1025Common Report Var(flag_strict_overflow)
1026Treat signed overflow as undefined
1027
de32c0cb 1028fsyntax-only
50431bc4 1029Common Report Var(flag_syntax_only)
f3fdaec4 1030Check for syntax errors, then stop
de32c0cb 1031
6ff3a151 1032ftest-coverage
50431bc4 1033Common Report Var(flag_test_coverage)
f3fdaec4 1034Create data files needed by \"gcov\"
6ff3a151 1035
de32c0cb 1036fthread-jumps
c662432e 1037Common Report Var(flag_thread_jumps) Optimization
f3fdaec4 1038Perform jump threading optimizations
de32c0cb 1039
6ff3a151 1040ftime-report
50431bc4 1041Common Report Var(time_report)
f3fdaec4 1042Report the time taken by each compiler pass
6ff3a151 1043
058de654
NB
1044ftls-model=
1045Common Joined RejectNegative
cf03fd63 1046-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
058de654 1047
474eccc6 1048ftoplevel-reorder
d6cc6ec9 1049Common Report Var(flag_toplevel_reorder) Init(2) Optimization
474eccc6
ILT
1050Reorder top level functions, variables, and asms
1051
de32c0cb 1052ftracer
50431bc4 1053Common Report Var(flag_tracer)
f3fdaec4 1054Perform superblock formation via tail duplication
de32c0cb 1055
31b66477
KC
1056; Zero means that floating-point math operations cannot generate a
1057; (user-visible) trap. This is the case, for example, in nonstop
1058; IEEE 754 arithmetic.
6ff3a151 1059ftrapping-math
c662432e 1060Common Report Var(flag_trapping_math) Init(1) Optimization
f3fdaec4 1061Assume floating-point operations can trap
6ff3a151
NB
1062
1063ftrapv
c662432e 1064Common Report Var(flag_trapv) Optimization
f3fdaec4 1065Trap for signed overflow in addition, subtraction and multiplication
6ff3a151 1066
6de9cd9a 1067ftree-ccp
c662432e 1068Common Report Var(flag_tree_ccp) Optimization
6de9cd9a
DN
1069Enable SSA-CCP optimization on trees
1070
0bca51f0 1071ftree-store-ccp
c662432e 1072Common Report Var(flag_tree_store_ccp) Optimization
0bca51f0
DN
1073Enable SSA-CCP optimization for stores and loads
1074
6de9cd9a 1075ftree-ch
c662432e 1076Common Report Var(flag_tree_ch) Optimization
6de9cd9a
DN
1077Enable loop header copying on trees
1078
6de9cd9a 1079ftree-copyrename
c662432e 1080Common Report Var(flag_tree_copyrename) Optimization
c85ce869 1081Replace SSA temporaries with better names in copies
6de9cd9a 1082
0bca51f0 1083ftree-copy-prop
c662432e 1084Common Report Var(flag_tree_copy_prop) Optimization
0bca51f0
DN
1085Enable copy propagation on trees
1086
1087ftree-store-copy-prop
324d2217 1088Common
e9033855 1089Does nothing. Preserved for backward compatibility.
0bca51f0 1090
a5828d1e
MM
1091ftree-cselim
1092Common Report Var(flag_tree_cselim) Init(2) Optimization
1093Transform condition stores into unconditional ones
1094
b6e99746
MJ
1095ftree-switch-conversion
1096Common Report Var(flag_tree_switch_conversion) Optimization
1097Perform conversions of switch initializations.
1098
6de9cd9a 1099ftree-dce
c662432e 1100Common Report Var(flag_tree_dce) Optimization
6de9cd9a
DN
1101Enable SSA dead code elimination optimization on trees
1102
1103ftree-dominator-opts
c662432e 1104Common Report Var(flag_tree_dom) Optimization
6de9cd9a
DN
1105Enable dominator optimizations
1106
1107ftree-dse
c662432e 1108Common Report Var(flag_tree_dse) Optimization
6de9cd9a
DN
1109Enable dead store elimination
1110
ff2ad0f7 1111ftree-fre
c662432e 1112Common Report Var(flag_tree_fre) Optimization
ff2ad0f7
DN
1113Enable Full Redundancy Elimination (FRE) on trees
1114
dea61d92 1115ftree-loop-distribution
53ed2f0e 1116Common Report Var(flag_tree_loop_distribution) Optimization
dea61d92
SP
1117Enable loop distribution on trees
1118
1b08d87d 1119ftree-loop-im
c662432e 1120Common Report Var(flag_tree_loop_im) Init(1) Optimization
a7e5372d
ZD
1121Enable loop invariant motion on trees
1122
599eabdb 1123ftree-loop-linear
c662432e 1124Common Report Var(flag_tree_loop_linear) Optimization
599eabdb
DB
1125Enable linear loop transforms on trees
1126
1b08d87d 1127ftree-loop-ivcanon
c662432e 1128Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1b08d87d
DB
1129Create canonical induction variables in loops
1130
c66b6c66 1131ftree-loop-optimize
c662432e 1132Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
c66b6c66
ZD
1133Enable loop optimizations on tree level
1134
5f40b3cb
ZD
1135ftree-parallelize-loops=
1136Common Report Joined UInteger Var(flag_tree_parallelize_loops) Init(1)
1137Enable automatic parallelization of loops
1138
6de9cd9a 1139ftree-pre
c662432e 1140Common Report Var(flag_tree_pre) Optimization
6de9cd9a
DN
1141Enable SSA-PRE optimization on trees
1142
13c59415
UB
1143ftree-reassoc
1144Common Report Var(flag_tree_reassoc) Init(1) Optimization
1145Enable reassociation on tree level
1146
c75ab022 1147ftree-salias
1353232d
RG
1148Common
1149Does nothing. Preserved for backward compatibility.
c75ab022 1150
fa555252 1151ftree-sink
c662432e 1152Common Report Var(flag_tree_sink) Optimization
fa555252
DB
1153Enable SSA code sinking on trees
1154
6de9cd9a 1155ftree-sra
c662432e 1156Common Report Var(flag_tree_sra) Optimization
6de9cd9a
DN
1157Perform scalar replacement of aggregates
1158
1159ftree-ter
c72321c9 1160Common Report Var(flag_tree_ter) Init(1) Optimization
6de9cd9a
DN
1161Replace temporary expressions in the SSA->normal pass
1162
c662432e
NC
1163ftree-lrs
1164Common Report Var(flag_tree_live_range_split) Optimization
1165Perform live range splitting during the SSA->normal pass
1166
0bca51f0 1167ftree-vrp
c662432e 1168Common Report Var(flag_tree_vrp) Init(0) Optimization
0bca51f0
DN
1169Perform Value Range Propagation on trees
1170
de32c0cb 1171funit-at-a-time
d6cc6ec9 1172Common Report Var(flag_unit_at_a_time) Init(1) Optimization
f3fdaec4 1173Compile whole compilation unit at a time
de32c0cb
NB
1174
1175funroll-loops
c662432e 1176Common Report Var(flag_unroll_loops) Optimization
f3fdaec4 1177Perform loop unrolling when iteration count is known
de32c0cb
NB
1178
1179funroll-all-loops
c662432e 1180Common Report Var(flag_unroll_all_loops) Optimization
f3fdaec4 1181Perform loop unrolling for all loops
de32c0cb 1182
f9cc1a70
PB
1183; Nonzero means that loop optimizer may assume that the induction variables
1184; that control loops do not overflow and that the loops with nontrivial
1185; exit condition are not infinite
1186funsafe-loop-optimizations
c662432e 1187Common Report Var(flag_unsafe_loop_optimizations) Optimization
f9cc1a70
PB
1188Allow loop optimizations to assume that the loops behave in normal way
1189
a1a82611
RE
1190fassociative-math
1191Common Report Var(flag_associative_math)
1192Allow optimization for floating-point arithmetic which may change the
1193result of the operation due to rounding.
1194
1195freciprocal-math
1196Common Report Var(flag_reciprocal_math)
1197Same as -fassociative-math for expressions which include division.
1198
31b66477
KC
1199; Nonzero means that unsafe floating-point math optimizations are allowed
1200; for the sake of speed. IEEE compliance is not guaranteed, and operations
1201; are allowed to assume that their arguments and results are "normal"
1202; (e.g., nonnegative for SQRT).
6ff3a151 1203funsafe-math-optimizations
c662432e 1204Common Report Var(flag_unsafe_math_optimizations) Optimization
f3fdaec4 1205Allow math optimizations that may violate IEEE or ISO standards
6ff3a151 1206
de32c0cb 1207funswitch-loops
c662432e 1208Common Report Var(flag_unswitch_loops) Optimization
f3fdaec4 1209Perform loop unswitching
de32c0cb 1210
6ff3a151 1211funwind-tables
c662432e 1212Common Report Var(flag_unwind_tables) Optimization
f3fdaec4 1213Just generate unwind tables for exception handling
6ff3a151 1214
014a1138 1215fvar-tracking
c662432e 1216Common Report Var(flag_var_tracking) VarExists Optimization
014a1138
JZ
1217Perform variable tracking
1218
62760ffd
CT
1219fvar-tracking-uninit
1220Common Report Var(flag_var_tracking_uninit) Optimization
1221Perform variable tracking and also tag variables that are uninitialized
1222
79fe1b3b 1223ftree-vectorize
c662432e 1224Common Report Var(flag_tree_vectorize) Optimization
79fe1b3b
DN
1225Enable loop vectorization on trees
1226
792ed98b
HJ
1227fvect-cost-model
1228Common Report Var(flag_vect_cost_model) Optimization
1229Enable use of cost model in vectorization
1230
c12cc930 1231ftree-vect-loop-version
c662432e 1232Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
c12cc930
KB
1233Enable loop versioning when doing loop vectorization on trees
1234
c866976a
LB
1235ftree-vectorizer-verbose=
1236Common RejectNegative Joined
4e994432 1237-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
c866976a 1238
fbf798fc 1239ftree-scev-cprop
21af5cdf 1240Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
fbf798fc
DN
1241Enable copy propagation of scalar-evolution information.
1242
31b66477
KC
1243; -fverbose-asm causes extra commentary information to be produced in
1244; the generated assembly code (to make it more readable). This option
1245; is generally only of use to those who actually need to read the
1246; generated assembly code (perhaps while debugging the compiler itself).
1247; -fno-verbose-asm, the default, causes the extra information
1248; to not be added and is useful when comparing two assembler files.
6ff3a151 1249fverbose-asm
50431bc4 1250Common Report Var(flag_verbose_asm)
f3fdaec4 1251Add extra commentary to assembler output
6ff3a151 1252
d7afec4b
ND
1253fvisibility=
1254Common Joined RejectNegative
1255-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1256
1257
fca9dc00 1258fvpt
c662432e 1259Common Report Var(flag_value_profile_transformations) Optimization
fca9dc00
ZD
1260Use expression value profiles in optimizations
1261
62551c66 1262fweb
c662432e 1263Common Report Var(flag_web) Init(2) Optimization
62551c66
JH
1264Construct webs and split unrelated uses of single variable
1265
c2699190
XDL
1266ftree-builtin-call-dce
1267Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1268Enable conditional dead code elimination for builtin calls
1269
ce91e74c 1270fwhole-program
c662432e 1271Common Report Var(flag_whole_program) Init(0) Optimization
ce91e74c
JH
1272Perform whole program optimizations
1273
6ff3a151 1274fwrapv
c662432e 1275Common Report Var(flag_wrapv) Optimization
f3fdaec4 1276Assume signed arithmetic overflow wraps around
6ff3a151 1277
6ff3a151 1278fzero-initialized-in-bss
50431bc4 1279Common Report Var(flag_zero_initialized_in_bss) Init(1)
f3fdaec4 1280Put zero initialized data in the bss section
6ff3a151 1281
e01cc6dc
NB
1282g
1283Common JoinedOrMissing
df38ffef
NB
1284Generate debug information in default format
1285
1286gcoff
14c7833c 1287Common JoinedOrMissing Negative(gdwarf-2)
df38ffef
NB
1288Generate debug information in COFF format
1289
df38ffef 1290gdwarf-2
14c7833c 1291Common JoinedOrMissing Negative(gstabs)
df38ffef
NB
1292Generate debug information in DWARF v2 format
1293
1294ggdb
1295Common JoinedOrMissing
1296Generate debug information in default extended format
1297
1298gstabs
14c7833c 1299Common JoinedOrMissing Negative(gstabs+)
df38ffef
NB
1300Generate debug information in STABS format
1301
1302gstabs+
14c7833c 1303Common JoinedOrMissing Negative(gvms)
df38ffef
NB
1304Generate debug information in extended STABS format
1305
1306gvms
14c7833c 1307Common JoinedOrMissing Negative(gxcoff)
df38ffef
NB
1308Generate debug information in VMS format
1309
1310gxcoff
14c7833c 1311Common JoinedOrMissing Negative(gxcoff+)
df38ffef
NB
1312Generate debug information in XCOFF format
1313
1314gxcoff+
14c7833c 1315Common JoinedOrMissing Negative(gcoff)
df38ffef 1316Generate debug information in extended XCOFF format
e01cc6dc 1317
d185d268
NB
1318o
1319Common Joined Separate
cf03fd63 1320-o <file> Place output into <file>
d185d268
NB
1321
1322p
50431bc4 1323Common Var(profile_flag)
cf03fd63 1324Enable function profiling
d185d268
NB
1325
1326pedantic
50431bc4 1327Common Var(pedantic)
cf03fd63 1328Issue warnings needed for strict compliance to the standard
d185d268
NB
1329
1330pedantic-errors
1331Common
cf03fd63 1332Like -pedantic but issue them as errors
d185d268 1333
d7b42618 1334quiet
50431bc4 1335Common Var(quiet_flag)
cf03fd63 1336Do not display functions compiled or elapsed time
d7b42618 1337
d185d268 1338version
50431bc4 1339Common Var(version_flag)
cf03fd63 1340Display the compiler's version
d185d268
NB
1341
1342w
50431bc4 1343Common Var(inhibit_warnings)
cf03fd63 1344Suppress warnings
d185d268 1345
528dc603
L
1346shared
1347Common RejectNegative Negative(pie)
1348Create a shared library
1349
1350pie
1351Common RejectNegative Negative(shared)
1352Create a position independent executable
1353
d7b42618 1354; This comment is to ensure we retain the blank line above.
This page took 1.425232 seconds and 5 git commands to generate.