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