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