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