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