]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/common.opt
2010-06-25 Manuel López-Ibáñez <manu@gcc.gnu.org>
[thirdparty/gcc.git] / gcc / common.opt
CommitLineData
3272db82 1; Options for the language- and target-independent parts of the compiler.
2e9da478 2
50ca7c37 3; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
7765591b 4; Free Software Foundation, Inc.
3272db82 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
8c4c00c1 10; Software Foundation; either version 3, or (at your option) any later
3272db82 11; version.
a0c938f0 12;
3272db82 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.
a0c938f0 17;
3272db82 18; You should have received a copy of the GNU General Public License
8c4c00c1 19; along with GCC; see the file COPYING3. If not see
20; <http://www.gnu.org/licenses/>.
3272db82 21
a4b0007b 22; See the GCC internals manual (options.texi) for a description of this file's format.
3272db82 23
24; Please try to keep this file in ASCII collating order.
25
e690b385 26-help
27Common
53b8e5c1 28Display this information
e690b385 29
87c75316 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
da3b1bab 33
e690b385 34-target-help
35Common
87c75316 36Alias for --help=target
37
39932bd2 38;; The following four entries are to work around the gcc driver
87c75316 39;; program's insatiable desire to turn options starting with a
40;; double dash (--) into options starting with a dash f (-f).
41fhelp
2dfeb300 42Common Var(help_flag)
87c75316 43
44fhelp=
45Common Joined
46
47ftarget-help
48Common
49
39932bd2 50fversion
51Common
52
87c75316 53-param
54Common Separate
55--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
e690b385 56
57-version
58Common
59
60G
837277ab 61Common Joined Separate UInteger
53b8e5c1 62-G<number> Put global and static data smaller than <number> bytes into a special section (on some targets)
e690b385 63
da3b1bab 64O
46f8e3b0 65Common JoinedOrMissing Optimization
53b8e5c1 66-O<number> Set optimization level to <number>
da3b1bab 67
68Os
46f8e3b0 69Common Optimization
53b8e5c1 70Optimize for space rather than speed
da3b1bab 71
1ebc0b9f 72Ofast
73Common Optimization
74Optimize for speed disregarding exact standards compliance
75
da3b1bab 76W
a0ded67b 77Common RejectNegative Var(extra_warnings) Warning
bb0814ce 78This switch is deprecated; use -Wextra instead
da3b1bab 79
6f2f567f 80Waggregate-return
87c75316 81Common Var(warn_aggregate_return) Warning
bb0814ce 82Warn about returning structures, unions or arrays
6f2f567f 83
5bc96398 84Warray-bounds
e8831472 85Common Var(warn_array_bounds) Warning
5bc96398 86Warn if an array is accessed out of bounds
87
9b2d6d13 88Wattributes
87c75316 89Common Var(warn_attributes) Init(1) Warning
9b2d6d13 90Warn about inappropriate attribute usage
91
6f2f567f 92Wcast-align
87c75316 93Common Var(warn_cast_align) Warning
bb0814ce 94Warn about pointer casts which increase alignment
6f2f567f 95
3a79f5da 96Wcpp
97Common Var(warn_cpp) Init(1) Warning
98Warn when a #warning directive is encountered
99
6f2f567f 100Wdeprecated-declarations
87c75316 101Common Var(warn_deprecated_decl) Init(1) Warning
bb0814ce 102Warn about uses of __attribute__((deprecated)) declarations
6f2f567f 103
104Wdisabled-optimization
87c75316 105Common Var(warn_disabled_optimization) Warning
bb0814ce 106Warn when an optimization pass is disabled
6f2f567f 107
108Werror
2e9da478 109Common Var(warnings_are_errors)
bb0814ce 110Treat all warnings as errors
6f2f567f 111
76f02516 112Werror=
113Common Joined
114Treat specified warning as error
115
da3b1bab 116Wextra
a0ded67b 117Common Var(extra_warnings) Warning
53b8e5c1 118Print extra (possibly unwanted) warnings
da3b1bab 119
295acf4f 120Wfatal-errors
2e9da478 121Common Var(flag_fatal_errors)
295acf4f 122Exit on the first error occurred
123
6fdade09 124Wframe-larger-than=
125Common RejectNegative Joined UInteger
cf210371 126-Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
6fdade09 127
6f2f567f 128Winline
87c75316 129Common Var(warn_inline) Warning
bb0814ce 130Warn when an inlined function cannot be inlined
6f2f567f 131
132Wlarger-than-
f00fc6e6 133Common RejectNegative Joined UInteger Warning Undocumented
17c66687 134
135Wlarger-than=
136Common RejectNegative Joined UInteger Warning
137-Wlarger-than=<number> Warn if an object is larger than <number> bytes
6f2f567f 138
7e3cc681 139Wunsafe-loop-optimizations
87c75316 140Common Var(warn_unsafe_loop_optimizations) Warning
7e3cc681 141Warn if the loop cannot be optimized due to nontrivial assumptions.
142
6f2f567f 143Wmissing-noreturn
87c75316 144Common Var(warn_missing_noreturn) Warning
bb0814ce 145Warn about functions which might be candidates for __attribute__((noreturn))
6f2f567f 146
f63eb5d3 147Wmudflap
148Common Var(warn_mudflap) Init(1) Warning
149Warn about constructs not instrumented by -fmudflap
150
55972f40 151Woverflow
87c75316 152Common Var(warn_overflow) Init(1) Warning
55972f40 153Warn about overflow in arithmetic expressions
154
6f2f567f 155Wpacked
87c75316 156Common Var(warn_packed) Warning
bb0814ce 157Warn when the packed attribute has no effect on struct layout
6f2f567f 158
159Wpadded
87c75316 160Common Var(warn_padded) Warning
bb0814ce 161Warn when padding is required to align structure members
6f2f567f 162
163Wshadow
87c75316 164Common Var(warn_shadow) Warning
bb0814ce 165Warn when one local variable shadows another
6f2f567f 166
f1a0edff 167Wstack-protector
87c75316 168Common Var(warn_stack_protect) Warning
f1a0edff 169Warn when not issuing stack smashing protection for some reason
170
6f2f567f 171Wstrict-aliasing
87c75316 172Common Warning
bb0814ce 173Warn about code which might break strict aliasing rules
6f2f567f 174
c1628b55 175Wstrict-aliasing=
212cc995 176Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
c1628b55 177Warn about code which might break strict aliasing rules
178
add6ee5e 179Wstrict-overflow
e8831472 180Common Warning
add6ee5e 181Warn about optimizations that assume that signed overflow is undefined
182
183Wstrict-overflow=
212cc995 184Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
add6ee5e 185Warn about optimizations that assume that signed overflow is undefined
186
2c06958d 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
43d60d64 195Wsuggest-attribute=noreturn
196Common Var(warn_suggest_attribute_noreturn) Warning
197Warn about functions which might be candidates for __attribute__((noreturn))
198
6f2f567f 199Wswitch
87c75316 200Common Var(warn_switch) Warning
bb0814ce 201Warn about enumerated switches, with no default, missing a case
6f2f567f 202
203Wswitch-default
87c75316 204Common Var(warn_switch_default) Warning
bb0814ce 205Warn about enumerated switches missing a \"default:\" statement
6f2f567f 206
207Wswitch-enum
87c75316 208Common Var(warn_switch_enum) Warning
bb0814ce 209Warn about all enumerated switches missing a specific case
6f2f567f 210
211Wsystem-headers
87c75316 212Common Var(warn_system_headers) Warning
72528c71 213Do not suppress warnings from system headers
6f2f567f 214
100b67da 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
6f2f567f 219Wuninitialized
a0ded67b 220Common Var(warn_uninitialized) Init(-1) Warning
bb0814ce 221Warn about uninitialized automatic variables
6f2f567f 222
223Wunreachable-code
cc029bec 224Common
225Does nothing. Preserved for backward compatibility.
6f2f567f 226
da3b1bab 227Wunused
278e3a1f 228Common Var(warn_unused) Init(0) Warning
53b8e5c1 229Enable all -Wunused- warnings
da3b1bab 230
abc6c64f 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
6f2f567f 239Wunused-function
278e3a1f 240Common Var(warn_unused_function) Init(-1) Warning
bb0814ce 241Warn when a function is unused
6f2f567f 242
243Wunused-label
278e3a1f 244Common Var(warn_unused_label) Init(-1) Warning
bb0814ce 245Warn when a label is unused
6f2f567f 246
247Wunused-parameter
278e3a1f 248Common Var(warn_unused_parameter) Init(-1) Warning
bb0814ce 249Warn when a function parameter is unused
6f2f567f 250
251Wunused-value
278e3a1f 252Common Var(warn_unused_value) Init(-1) Warning
bb0814ce 253Warn when an expression value is unused
6f2f567f 254
255Wunused-variable
278e3a1f 256Common Var(warn_unused_variable) Init(-1) Warning
bb0814ce 257Warn when a variable is unused
6f2f567f 258
c81ed7c1 259Wcoverage-mismatch
21cd990d 260Common Var(warn_coverage_mismatch) Init(1) Warning
261Warn in case profiles in -fprofile-use do not match
c81ed7c1 262
e690b385 263aux-info
264Common Separate
53b8e5c1 265-aux-info <file> Emit declaration information into <file>
e690b385 266
267aux-info=
268Common Joined
269
270auxbase
271Common Separate
272
273auxbase-strip
274Common Separate
275
276d
277Common Joined
53b8e5c1 278-d<letters> Enable dumps from specific passes of the compiler
e690b385 279
280dumpbase
281Common Separate
53b8e5c1 282-dumpbase <file> Set the file basename to be used for dumps
e690b385 283
50ca7c37 284dumpdir
285Common Separate
eb21bbd2 286-dumpdir <dir> Set the directory name to be used for dumps
50ca7c37 287
82a16202 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;
29e2e80a 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.
e9e7c198 304;
82a16202 305; Additional positive integers will be assigned as new versions of
306; the ABI become the default version of the ABI.
e100aadc 307fabi-version=
212cc995 308Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
e100aadc 309
ecdb6d1a 310falign-functions
46f8e3b0 311Common Report Var(align_functions,0) Optimization UInteger
72528c71 312Align the start of functions
ecdb6d1a 313
941a4893 314falign-functions=
315Common RejectNegative Joined UInteger
316
ecdb6d1a 317falign-jumps
46f8e3b0 318Common Report Var(align_jumps,0) Optimization UInteger
72528c71 319Align labels which are only reached by jumping
ecdb6d1a 320
941a4893 321falign-jumps=
322Common RejectNegative Joined UInteger
323
ecdb6d1a 324falign-labels
46f8e3b0 325Common Report Var(align_labels,0) Optimization UInteger
72528c71 326Align all labels
ecdb6d1a 327
941a4893 328falign-labels=
329Common RejectNegative Joined UInteger
330
ecdb6d1a 331falign-loops
46f8e3b0 332Common Report Var(align_loops) Optimization UInteger
72528c71 333Align the start of loops
ecdb6d1a 334
941a4893 335falign-loops=
336Common RejectNegative Joined UInteger
337
ecdb6d1a 338fargument-alias
e190b18a 339Common
340Does nothing. Preserved for backward compatibility.
ecdb6d1a 341
342fargument-noalias
e190b18a 343Common
344Does nothing. Preserved for backward compatibility.
ecdb6d1a 345
346fargument-noalias-global
e190b18a 347Common
348Does nothing. Preserved for backward compatibility.
ecdb6d1a 349
5ff22aea 350fargument-noalias-anything
e190b18a 351Common
352Does nothing. Preserved for backward compatibility.
5ff22aea 353
ecdb6d1a 354fasynchronous-unwind-tables
87c75316 355Common Report Var(flag_asynchronous_unwind_tables) Optimization
72528c71 356Generate unwind tables that are exact at each instruction boundary
ecdb6d1a 357
3072d30e 358fauto-inc-dec
359Common Report Var(flag_auto_inc_dec) Init(1)
360Generate auto-inc/dec instructions
361
82a16202 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.
ecdb6d1a 366fbounds-check
2e9da478 367Common Report Var(flag_bounds_check)
72528c71 368Generate code to check bounds before indexing arrays
ecdb6d1a 369
370fbranch-count-reg
87c75316 371Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
72528c71 372Replace add, compare, branch with branch on count register
ecdb6d1a 373
374fbranch-probabilities
87c75316 375Common Report Var(flag_branch_probabilities) Optimization
72528c71 376Use profiling information for branch probabilities
ecdb6d1a 377
1e06725a 378fbranch-target-load-optimize
87c75316 379Common Report Var(flag_branch_target_load_optimize) Optimization
72528c71 380Perform branch target load optimization before prologue / epilogue threading
1e06725a 381
382fbranch-target-load-optimize2
87c75316 383Common Report Var(flag_branch_target_load_optimize2) Optimization
72528c71 384Perform branch target load optimization after prologue / epilogue threading
1e06725a 385
08d163a9 386fbtr-bb-exclusive
87c75316 387Common Report Var(flag_btr_bb_exclusive) Optimization
08d163a9 388Restrict target load migration not to re-use registers in any basic block
389
941a4893 390fcall-saved-
391Common Joined RejectNegative
53b8e5c1 392-fcall-saved-<register> Mark <register> as being preserved across functions
941a4893 393
394fcall-used-
395Common Joined RejectNegative
53b8e5c1 396-fcall-used-<register> Mark <register> as being corrupted by function calls
941a4893 397
82a16202 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.
1e06725a 401fcaller-saves
87c75316 402Common Report Var(flag_caller_saves) Optimization
72528c71 403Save registers around function calls
1e06725a 404
355572cc 405fcheck-data-deps
406Common Report Var(flag_check_data_deps)
407Compare the results of several data dependence analyzers.
408
ecdb6d1a 409fcommon
87c75316 410Common Report Var(flag_no_common,0) Optimization
72528c71 411Do not put uninitialized globals in the common section
ecdb6d1a 412
71278019 413fcompare-debug=
414Common JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
cf210371 415-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
71278019 416
417fcompare-debug-second
418Common RejectNegative Var(flag_compare_debug)
419Run only the second compilation of -fcompare-debug
420
9845d120 421fconserve-stack
422Common Var(flag_conserve_stack) Optimization
423Do not perform optimizations increasing noticeably stack usage
424
ecdb6d1a 425fcprop-registers
87c75316 426Common Report Var(flag_cprop_registers) Optimization
72528c71 427Perform a register copy-propagation optimization pass
ecdb6d1a 428
1e06725a 429fcrossjumping
87c75316 430Common Report Var(flag_crossjumping) Optimization
72528c71 431Perform cross-jumping optimization
1e06725a 432
433fcse-follow-jumps
87c75316 434Common Report Var(flag_cse_follow_jumps) Optimization
72528c71 435When running CSE, follow jumps to their targets
1e06725a 436
437fcse-skip-blocks
d743aba2 438Common
439Does nothing. Preserved for backward compatibility.
1e06725a 440
45b9d334 441fcx-limited-range
87c75316 442Common Report Var(flag_cx_limited_range) Optimization
45b9d334 443Omit range reduction step when performing complex division
444
608256a0 445fcx-fortran-rules
446Common Report Var(flag_cx_fortran_rules) Optimization
447Complex multiplication and division follow Fortran rules
448
ecdb6d1a 449fdata-sections
87c75316 450Common Report Var(flag_data_sections) Optimization
72528c71 451Place data items into their own section
ecdb6d1a 452
d2153a46 453fdbg-cnt-list
454Common Report
455List all available debugging counters with their limits and counts.
456
3072d30e 457fdbg-cnt=
458Common RejectNegative Joined
cf210371 459-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
3072d30e 460
5f1f2de5 461fdebug-prefix-map=
462Common Joined RejectNegative
463Map one directory name to another in debug information
464
82a16202 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.
1e06725a 467fdefer-pop
87c75316 468Common Report Var(flag_defer_pop) Optimization
72528c71 469Defer popping functions args from stack until later
1e06725a 470
471fdelayed-branch
87c75316 472Common Report Var(flag_delayed_branch) Optimization
72528c71 473Attempt to fill delay slots of branch instructions
1e06725a 474
475fdelete-null-pointer-checks
7df298fe 476Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
72528c71 477Delete useless null pointer checks
1e06725a 478
479fdiagnostics-show-location=
480Common Joined RejectNegative
53b8e5c1 481-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
1e06725a 482
efb9d9ee 483fdiagnostics-show-option
3fee9a69 484Common Var(flag_diagnostics_show_option) Init(1)
3284a242 485Amend appropriate diagnostic messages with the command line option that controls them
efb9d9ee 486
4ee9c684 487fdump-
488Common Joined RejectNegative
489-fdump-<type> Dump various compiler internals to a file
490
71278019 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
969239ad 495fdump-noaddr
496Common Report Var(flag_dump_noaddr)
497Suppress output of addresses in debugging dumps
498
ecdb6d1a 499fdump-unnumbered
2e9da478 500Common Report Var(flag_dump_unnumbered) VarExists
969239ad 501Suppress output of instruction numbers, line number notes and addresses in debugging dumps
ecdb6d1a 502
0a59e439 503fdump-unnumbered-links
504Common Report Var(flag_dump_unnumbered_links) VarExists
505Suppress output of previous and next insn numbers in debugging dumps
506
9845d120 507fdwarf2-cfi-asm
508Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
509Enable CFI tables via GAS assembler directives.
510
f1aa280c 511fearly-inlining
87c75316 512Common Report Var(flag_early_inlining) Init(1) Optimization
f1aa280c 513Perform early inlining
514
1e06725a 515feliminate-dwarf2-dups
2e9da478 516Common Report Var(flag_eliminate_dwarf2_dups)
72528c71 517Perform DWARF2 duplicate elimination
1e06725a 518
2f29eac3 519fipa-sra
520Common Report Var(flag_ipa_sra) Init(0) Optimization
521Perform interprocedural reduction of aggregates
522
262444a6 523feliminate-unused-debug-symbols
2e9da478 524Common Report Var(flag_debug_only_used_symbols)
72528c71 525Perform unused type elimination in debug info
262444a6 526
1e06725a 527feliminate-unused-debug-types
2e9da478 528Common Report Var(flag_eliminate_unused_debug_types) Init(1)
72528c71 529Perform unused type elimination in debug info
1e06725a 530
0c573f98 531femit-class-debug-always
fd5e1dfe 532Common Report Var(flag_emit_class_debug_always) Init(0)
0c573f98 533Do not suppress C++ class debug information.
534
d907ec51 535fenable-icf-debug
536Common Report Var(flag_enable_icf_debug)
537Generate debug information to support Identical Code Folding (ICF)
538
ecdb6d1a 539fexceptions
87c75316 540Common Report Var(flag_exceptions) Optimization
72528c71 541Enable exception handling
ecdb6d1a 542
1e06725a 543fexpensive-optimizations
87c75316 544Common Report Var(flag_expensive_optimizations) Optimization
72528c71 545Perform a number of minor, expensive optimizations
1e06725a 546
c6418a4e 547fexcess-precision=
548Common Joined RejectNegative
549-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
550
941a4893 551ffast-math
552Common
553
ecdb6d1a 554ffinite-math-only
87c75316 555Common Report Var(flag_finite_math_only) Optimization
72528c71 556Assume no NaNs or infinities are generated
ecdb6d1a 557
941a4893 558ffixed-
559Common Joined RejectNegative
53b8e5c1 560-ffixed-<register> Mark <register> as being unavailable to the compiler
941a4893 561
1e06725a 562ffloat-store
87c75316 563Common Report Var(flag_float_store) Optimization
82a16202 564Don't allocate floats and doubles in extended-precision registers
1e06725a 565
566fforce-addr
4d25f9eb 567Common
568Does nothing. Preserved for backward compatibility.
1e06725a 569
55d51835 570fforward-propagate
571Common Report Var(flag_forward_propagate) Optimization
42a3a38b 572Perform a forward propagation pass on RTL
573
82a16202 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.
1e06725a 577ffunction-cse
2e9da478 578Common Report Var(flag_no_function_cse,0)
72528c71 579Allow function addresses to be held in registers
1e06725a 580
ecdb6d1a 581ffunction-sections
2e9da478 582Common Report Var(flag_function_sections)
72528c71 583Place each function into its own section
ecdb6d1a 584
1e06725a 585fgcse
87c75316 586Common Report Var(flag_gcse) Optimization
72528c71 587Perform global common subexpression elimination
1e06725a 588
589fgcse-lm
87c75316 590Common Report Var(flag_gcse_lm) Init(1) Optimization
72528c71 591Perform enhanced load motion during global common subexpression elimination
1e06725a 592
593fgcse-sm
87c75316 594Common Report Var(flag_gcse_sm) Init(0) Optimization
72528c71 595Perform store motion after global common subexpression elimination
1e06725a 596
5c47e414 597fgcse-las
87c75316 598Common Report Var(flag_gcse_las) Init(0) Optimization
839f8415 599Perform redundant load after store elimination in global common subexpression
600elimination
601
602fgcse-after-reload
87c75316 603Common Report Var(flag_gcse_after_reload) Optimization
839f8415 604Perform global common subexpression elimination after register allocation
3284a242 605has finished
5c47e414 606
d3399492 607; This option is not documented yet as its semantics will change.
255b6be7 608fgraphite
609Common Report Var(flag_graphite)
610Enable in and out of Graphite representation
611
26c166eb 612fgraphite-identity
613Common Report Var(flag_graphite_identity) Optimization
614Enable Graphite Identity transformation
615
16848556 616floop-parallelize-all
617Common Report Var(flag_loop_parallelize_all) Optimization
26c166eb 618Mark all loops as parallel
619
255b6be7 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
a420d927 632fstrict-volatile-bitfields
633Common Report Var(flag_strict_volatile_bitfields) Init(-1)
634Force bitfield accesses to match their type width
635
ecdb6d1a 636fguess-branch-probability
87c75316 637Common Report Var(flag_guess_branch_prob) Optimization
72528c71 638Enable guessing of branch probabilities
ecdb6d1a 639
82a16202 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.
ecdb6d1a 644fident
2e9da478 645Common Report Var(flag_no_ident,0)
72528c71 646Process #ident directives
ecdb6d1a 647
1e06725a 648fif-conversion
87c75316 649Common Report Var(flag_if_conversion) Optimization
72528c71 650Perform conversion of conditional jumps to branchless equivalents
1e06725a 651
652fif-conversion2
87c75316 653Common Report Var(flag_if_conversion2) Optimization
72528c71 654Perform conversion of conditional jumps to conditional execution
1e06725a 655
82a16202 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.
ecdb6d1a 660finhibit-size-directive
2e9da478 661Common Report Var(flag_inhibit_size_directive)
72528c71 662Do not generate .size directives
ecdb6d1a 663
f8daee9b 664findirect-inlining
665Common Report Var(flag_indirect_inlining)
666Perform indirect inlining
667
82a16202 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.
1e06725a 673finline
1c2f0012 674Common Report Var(flag_no_inline,0) Init(0)
72528c71 675Pay attention to the \"inline\" keyword
1e06725a 676
b97510b2 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
1e06725a 681finline-functions
87c75316 682Common Report Var(flag_inline_functions) Optimization
72528c71 683Integrate simple functions into their callers
1e06725a 684
f1aa280c 685finline-functions-called-once
87c75316 686Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
f1aa280c 687Integrate functions called once into their callers
9e0baf4d 688
39470ac3 689finline-limit-
690Common RejectNegative Joined UInteger
691
692finline-limit=
693Common RejectNegative Joined UInteger
53b8e5c1 694-finline-limit=<number> Limit the size of inlined functions to <number>
39470ac3 695
ecdb6d1a 696finstrument-functions
2e9da478 697Common Report Var(flag_instrument_function_entry_exit)
72528c71 698Instrument function entry and exit with profiling calls
ecdb6d1a 699
a95c0776 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
a17a73c7 708fipa-cp
87c75316 709Common Report Var(flag_ipa_cp) Optimization
a17a73c7 710Perform Interprocedural constant propagation
711
2a15795f 712fipa-cp-clone
713Common Report Var(flag_ipa_cp_clone) Optimization
714Perform cloning to make Interprocedural constant propagation stronger
715
4e2db0ad 716fipa-profile
717Common Report Var(flag_ipa_profile) Init(0) Optimization
718Perform interprocedural profile propagation
f7d118a9 719
bdf4f142 720fipa-pta
87c75316 721Common Report Var(flag_ipa_pta) Init(0) Optimization
bdf4f142 722Perform interprocedural points-to analysis
723
4e2db0ad 724fipa-pure-const
725Common Report Var(flag_ipa_pure_const) Init(0) Optimization
726Discover pure and const functions
727
f7d118a9 728fipa-reference
87c75316 729Common Report Var(flag_ipa_reference) Init(0) Optimization
f7d118a9 730Discover readonly and non addressable static variables
731
604cde73 732fipa-matrix-reorg
76c71f34 733Common Report Var(flag_ipa_matrix_reorg) Optimization
604cde73 734Perform matrix layout flattening and transposing based
735on profiling information.
736
f27ac341 737fipa-struct-reorg
738Common Report Var(flag_ipa_struct_reorg)
739Perform structure layout optimizations based
740on profiling information.
741
47dd2e78 742fira-algorithm=
743Common Joined RejectNegative
14792f4e 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
47dd2e78 749
750fira-coalesce
751Common Report Var(flag_ira_coalesce) Init(0)
752Do optimistic coalescing.
753
e8eed2f8 754fira-loop-pressure
755Common Report Var(flag_ira_loop_pressure)
756Use IRA based register pressure calculation
757in RTL loop optimizations.
758
47dd2e78 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=
4aafe913 768Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
cf210371 769-fira-verbose=<number> Control IRA's level of diagnostic messages.
47dd2e78 770
dec41e98 771fivopts
87c75316 772Common Report Var(flag_ivopts) Init(1) Optimization
dec41e98 773Optimize induction variables on trees
774
51d8e657 775fjump-tables
87c75316 776Common Var(flag_jump_tables) Init(1) Optimization
51d8e657 777Use jump tables for sufficiently large switch statements
778
1e06725a 779fkeep-inline-functions
2e9da478 780Common Report Var(flag_keep_inline_functions)
72528c71 781Generate code for functions even if they are fully inlined
1e06725a 782
783fkeep-static-consts
2e9da478 784Common Report Var(flag_keep_static_consts) Init(1)
72528c71 785Emit static const variables even if they are not used
1e06725a 786
ecdb6d1a 787fleading-underscore
2e9da478 788Common Report Var(flag_leading_underscore) Init(-1)
72528c71 789Give external symbols a leading underscore
ecdb6d1a 790
4f87b914 791floop-optimize
792Common
334ec2d8 793Does nothing. Preserved for backward compatibility.
4f87b914 794
7bfefa9d 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=
212cc995 801Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
cf210371 802-flto-compression-level=<number> Use zlib compression level <number> for IL
7bfefa9d 803
804flto-report
805Common Report Var(flag_lto_report) Init(0) Optimization
806Report various link-time optimization statistics
807
ecdb6d1a 808fmath-errno
46f8e3b0 809Common Report Var(flag_errno_math) Init(1) Optimization
72528c71 810Set errno after built-in math functions
ecdb6d1a 811
812fmem-report
2e9da478 813Common Report Var(mem_report)
72528c71 814Report on permanent memory allocation
ecdb6d1a 815
82a16202 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.
ecdb6d1a 819fmerge-all-constants
87c75316 820Common Report Var(flag_merge_constants,2) Init(1) Optimization
72528c71 821Attempt to merge identical constants and constant variables
ecdb6d1a 822
823fmerge-constants
87c75316 824Common Report Var(flag_merge_constants,1) VarExists Optimization
72528c71 825Attempt to merge identical constants across compilation units
ecdb6d1a 826
7765591b 827fmerge-debug-strings
828Common Report Var(flag_merge_debug_strings) Init(1)
829Attempt to merge identical debug strings across compilation units
830
1e06725a 831fmessage-length=
832Common RejectNegative Joined UInteger
53b8e5c1 833-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
1e06725a 834
406a73e7 835fmodulo-sched
87c75316 836Common Report Var(flag_modulo_sched) Optimization
406a73e7 837Perform SMS based modulo scheduling before the first scheduling pass
838
3a943084 839fmodulo-sched-allow-regmoves
840Common Report Var(flag_modulo_sched_allow_regmoves)
841Perform SMS based modulo scheduling with register moves allowed
842
3a0ecac2 843fmove-loop-invariants
87c75316 844Common Report Var(flag_move_loop_invariants) Init(1) Optimization
3a0ecac2 845Move loop invariant computations out of loops
846
4ee9c684 847fmudflap
2e9da478 848Common RejectNegative Report Var(flag_mudflap)
3284a242 849Add mudflap bounds-checking instrumentation for single-threaded program
4ee9c684 850
851fmudflapth
c1d36cca 852Common RejectNegative Report VarExists Var(flag_mudflap,2)
3284a242 853Add mudflap bounds-checking instrumentation for multi-threaded program
4ee9c684 854
855fmudflapir
2e9da478 856Common RejectNegative Report Var(flag_mudflap_ignore_reads)
3284a242 857Ignore read operations when inserting mudflap instrumentation
4ee9c684 858
3072d30e 859fdce
76c71f34 860Common Var(flag_dce) Init(1) Optimization
3072d30e 861Use the RTL dead code elimination pass
862
863fdse
76c71f34 864Common Var(flag_dse) Init(1) Optimization
3072d30e 865Use the RTL dead store elimination pass
866
f045d41d 867freschedule-modulo-scheduled-loops
87c75316 868Common Report Var(flag_resched_modulo_sched) Optimization
f045d41d 869Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
870
ecdb6d1a 871fnon-call-exceptions
87c75316 872Common Report Var(flag_non_call_exceptions) Optimization
72528c71 873Support synchronous non-call exceptions
ecdb6d1a 874
1e06725a 875fomit-frame-pointer
87c75316 876Common Report Var(flag_omit_frame_pointer) Optimization
72528c71 877When possible do not generate stack frames
1e06725a 878
ecdb6d1a 879foptimize-register-move
87c75316 880Common Report Var(flag_regmove) Optimization
72528c71 881Do the full register move optimization pass
ecdb6d1a 882
1e06725a 883foptimize-sibling-calls
87c75316 884Common Report Var(flag_optimize_sibling_calls) Optimization
72528c71 885Optimize sibling and tail recursive calls
1e06725a 886
51949610 887fpre-ipa-mem-report
888Common Report Var(pre_ipa_mem_report)
889Report on memory allocation before interprocedural optimization
890
891fpost-ipa-mem-report
892Common Report Var(post_ipa_mem_report)
893Report on memory allocation before interprocedural optimization
894
ecdb6d1a 895fpack-struct
87c75316 896Common Report Var(flag_pack_struct) Optimization
72528c71 897Pack structure members together without holes
ecdb6d1a 898
6b5553e5 899fpack-struct=
87c75316 900Common RejectNegative Joined UInteger Optimization
6b5553e5 901-fpack-struct=<number> Set initial maximum structure member alignment
902
1e06725a 903fpcc-struct-return
4aafe913 904Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
72528c71 905Return small aggregates in memory, not registers
1e06725a 906
907fpeel-loops
87c75316 908Common Report Var(flag_peel_loops) Optimization
72528c71 909Perform loop peeling
1e06725a 910
911fpeephole
87c75316 912Common Report Var(flag_no_peephole,0) Optimization
72528c71 913Enable machine specific peephole optimizations
1e06725a 914
ecdb6d1a 915fpeephole2
87c75316 916Common Report Var(flag_peephole2) Optimization
72528c71 917Enable an RTL peephole pass before sched2
ecdb6d1a 918
82a16202 919fPIC
920Common Report Var(flag_pic,2)
921Generate position-independent code if possible (large mode)
922
923fPIE
924Common Report Var(flag_pie,2)
925Generate position-independent code for executables if possible (large mode)
926
ecdb6d1a 927fpic
2e9da478 928Common Report Var(flag_pic,1) VarExists
82a16202 929Generate position-independent code if possible (small mode)
ecdb6d1a 930
931fpie
2e9da478 932Common Report Var(flag_pie,1) VarExists
82a16202 933Generate position-independent code for executables if possible (small mode)
ecdb6d1a 934
9227b6fc 935fplugin=
936Common Joined RejectNegative
937Specify a plugin to load
938
939fplugin-arg-
940Common Joined RejectNegative
cf210371 941-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
9227b6fc 942
ad4a85ad 943fpredictive-commoning
76c71f34 944Common Report Var(flag_predictive_commoning) Optimization
ad4a85ad 945Run predictive commoning optimization.
946
1e06725a 947fprefetch-loop-arrays
87c75316 948Common Report Var(flag_prefetch_loop_arrays) Optimization
72528c71 949Generate prefetch instructions, if available, for arrays in loops
1e06725a 950
ecdb6d1a 951fprofile
2e9da478 952Common Report Var(profile_flag)
72528c71 953Enable basic program profiling code
ecdb6d1a 954
955fprofile-arcs
2e9da478 956Common Report Var(profile_arc_flag)
72528c71 957Insert arc-based program profiling code
ecdb6d1a 958
3e3a0e9c 959fprofile-dir=
960Common Joined RejectNegative
961Set the top-level directory for storing the profile data.
962The default is 'pwd'.
963
e0dc6f2b 964fprofile-correction
965Common Report Var(flag_profile_correction)
966Enable correction of flow inconsistent profile data input
967
7dea76ba 968fprofile-generate
969Common
970Enable common options for generating profile info for profile feedback directed optimizations
971
3e3a0e9c 972fprofile-generate=
973Common Joined RejectNegative
974Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
975
7dea76ba 976fprofile-use
3e3a0e9c 977Common Var(flag_profile_use)
7dea76ba 978Enable common options for performing profile feedback directed optimizations
979
3e3a0e9c 980fprofile-use=
981Common Joined RejectNegative
982Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
983
1c6a7b8c 984fprofile-values
2e9da478 985Common Report Var(flag_profile_values)
1c6a7b8c 986Insert code to profile values of expressions
987
1e06725a 988frandom-seed
989Common
990
991frandom-seed=
992Common Joined RejectNegative
53b8e5c1 993-frandom-seed=<string> Make compile reproducible using <string>
1e06725a 994
7c6733e8 995; This switch causes the command line that was used to create an
996; object file to be recorded into the object file. The exact format
997; of this recording is target and binary file format dependent.
998; It is related to the -fverbose-asm switch, but that switch only
999; records information in the assembler output file as comments, so
1000; they never reach the object file.
1001frecord-gcc-switches
1002Common Report Var(flag_record_gcc_switches)
1003Record gcc command line switches in the object file.
1004
1e06725a 1005freg-struct-return
87c75316 1006Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
72528c71 1007Return small aggregates in registers
1e06725a 1008
ecdb6d1a 1009fregmove
87c75316 1010Common Report Var(flag_regmove) Optimization
72528c71 1011Enables a register move optimization
ecdb6d1a 1012
1013frename-registers
87c75316 1014Common Report Var(flag_rename_registers) Init(2) Optimization
72528c71 1015Perform a register renaming optimization pass
ecdb6d1a 1016
1017freorder-blocks
87c75316 1018Common Report Var(flag_reorder_blocks) Optimization
72528c71 1019Reorder basic blocks to improve code placement
ecdb6d1a 1020
4f18499c 1021freorder-blocks-and-partition
87c75316 1022Common Report Var(flag_reorder_blocks_and_partition) Optimization
4f18499c 1023Reorder basic blocks and partition into hot and cold sections
1024
ecdb6d1a 1025freorder-functions
87c75316 1026Common Report Var(flag_reorder_functions) Optimization
72528c71 1027Reorder functions to improve code placement
ecdb6d1a 1028
1e06725a 1029frerun-cse-after-loop
87c75316 1030Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
72528c71 1031Add a common subexpression elimination pass after loop optimizations
1e06725a 1032
4f87b914 1033frerun-loop-opt
1034Common
334ec2d8 1035Does nothing. Preserved for backward compatibility.
4f87b914 1036
5466f589 1037frounding-math
87c75316 1038Common Report Var(flag_rounding_math) Optimization
5466f589 1039Disable optimizations that assume default FP rounding behavior
1040
ecdb6d1a 1041fsched-interblock
87c75316 1042Common Report Var(flag_schedule_interblock) Init(1) Optimization
72528c71 1043Enable scheduling across basic blocks
ecdb6d1a 1044
a7dcf969 1045fsched-pressure
1046Common Report Var(flag_sched_pressure) Init(0) Optimization
1047Enable register pressure sensitive insn scheduling
1048
ecdb6d1a 1049fsched-spec
87c75316 1050Common Report Var(flag_schedule_speculative) Init(1) Optimization
72528c71 1051Allow speculative motion of non-loads
ecdb6d1a 1052
1053fsched-spec-load
87c75316 1054Common Report Var(flag_schedule_speculative_load) Optimization
72528c71 1055Allow speculative motion of some loads
ecdb6d1a 1056
1057fsched-spec-load-dangerous
87c75316 1058Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
72528c71 1059Allow speculative motion of more loads
ecdb6d1a 1060
1e06725a 1061fsched-verbose=
1062Common RejectNegative Joined
53b8e5c1 1063-fsched-verbose=<number> Set the verbosity level of the scheduler
1e06725a 1064
ecdb6d1a 1065fsched2-use-superblocks
87c75316 1066Common Report Var(flag_sched2_use_superblocks) Optimization
72528c71 1067If scheduling post reload, do superblock scheduling
ecdb6d1a 1068
1069fsched2-use-traces
fda153ea 1070Common
1071Does nothing. Preserved for backward compatibility.
ecdb6d1a 1072
1e06725a 1073fschedule-insns
87c75316 1074Common Report Var(flag_schedule_insns) Optimization
72528c71 1075Reschedule instructions before register allocation
1e06725a 1076
1077fschedule-insns2
87c75316 1078Common Report Var(flag_schedule_insns_after_reload) Optimization
72528c71 1079Reschedule instructions after register allocation
1e06725a 1080
e1ab7874 1081; This flag should be on when a target implements non-trivial
1082; scheduling hooks, maybe saving some information for its own sake.
1083; On IA64, for example, this is used for correct bundling.
1084fselective-scheduling
1085Common Report Var(flag_selective_scheduling) Optimization
1086Schedule instructions using selective scheduling algorithm
1087
1088fselective-scheduling2
1089Common Report Var(flag_selective_scheduling2) Optimization
1090Run selective scheduling after reload
1091
1092fsel-sched-pipelining
1093Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1094Perform software pipelining of inner loops during selective scheduling
1095
1096fsel-sched-pipelining-outer-loops
1097Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1098Perform software pipelining of outer loops during selective scheduling
1099
1100fsel-sched-reschedule-pipelined
1101Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1102Reschedule pipelined regions without pipelining
1103
82a16202 1104; sched_stalled_insns means that insns can be moved prematurely from the queue
1105; of stalled insns into the ready list.
52c4b43f 1106fsched-stalled-insns
46f8e3b0 1107Common Report Var(flag_sched_stalled_insns) Optimization UInteger
52c4b43f 1108Allow premature scheduling of queued insns
1109
1110fsched-stalled-insns=
a0c938f0 1111Common RejectNegative Joined UInteger
98b93ebb 1112-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
52c4b43f 1113
82a16202 1114; sched_stalled_insns_dep controls how many recently scheduled cycles will
1115; be examined for a dependency on a stalled insn that is candidate for
1116; premature removal from the queue of stalled insns into the ready list (has
1117; an effect only if the flag 'sched_stalled_insns' is set).
52c4b43f 1118fsched-stalled-insns-dep
46f8e3b0 1119Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
52c4b43f 1120Set dependence distance checking in premature scheduling of queued insns
1121
1122fsched-stalled-insns-dep=
1123Common RejectNegative Joined UInteger
98b93ebb 1124-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
52c4b43f 1125
4d569386 1126fsched-group-heuristic
1127Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1128Enable the group heuristic in the scheduler
1129
1130fsched-critical-path-heuristic
1131Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1132Enable the critical path heuristic in the scheduler
1133
1134fsched-spec-insn-heuristic
1135Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1136Enable the speculative instruction heuristic in the scheduler
1137
4d569386 1138fsched-rank-heuristic
1139Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1140Enable the rank heuristic in the scheduler
1141
1142fsched-last-insn-heuristic
1143Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1144Enable the last instruction heuristic in the scheduler
1145
1146fsched-dep-count-heuristic
1147Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1148Enable the dependent count heuristic in the scheduler
1149
f2d0e9f1 1150fsection-anchors
87c75316 1151Common Report Var(flag_section_anchors) Optimization
f2d0e9f1 1152Access data in the same section from shared anchor points
1153
2b74c150 1154fsee
1bc99153 1155Common
1156Does nothing. Preserved for backward compatibility.
2b74c150 1157
a5b022e7 1158fzee
1159Common Report Var(flag_zee) Init(0)
1160Eliminate redundant zero extensions on targets that support implicit extensions.
1161
5fd4bf3b 1162fshow-column
abf6a617 1163Common Report Var(flag_show_column) Init(1)
b559b9e2 1164Show column numbers in diagnostics, when available. Default on
5fd4bf3b 1165
ecdb6d1a 1166fsignaling-nans
87c75316 1167Common Report Var(flag_signaling_nans) Optimization
72528c71 1168Disable optimizations observable by IEEE signaling NaNs
ecdb6d1a 1169
893038cd 1170fsigned-zeros
e8831472 1171Common Report Var(flag_signed_zeros) Init(1) Optimization
893038cd 1172Disable floating point optimizations that ignore the IEEE signedness of zero
1173
ecdb6d1a 1174fsingle-precision-constant
87c75316 1175Common Report Var(flag_single_precision_constant) Optimization
72528c71 1176Convert floating point constants to single precision constants
ecdb6d1a 1177
a9989fb4 1178fsplit-ivs-in-unroller
87c75316 1179Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
3284a242 1180Split lifetimes of induction variables when loops are unrolled
a9989fb4 1181
1a6a0f2a 1182fsplit-wide-types
e8831472 1183Common Report Var(flag_split_wide_types) Optimization
1a6a0f2a 1184Split wide types into independent registers
1185
375bb675 1186fvariable-expansion-in-unroller
87c75316 1187Common Report Var(flag_variable_expansion_in_unroller) Optimization
3284a242 1188Apply variable expansion when loops are unrolled
375bb675 1189
4852b829 1190fstack-check=
1191Common Report RejectNegative Joined
1192-fstack-check=[no|generic|specific] Insert stack checking code into the program
1193
ecdb6d1a 1194fstack-check
4852b829 1195Common Report
1196Insert stack checking code into the program. Same as -fstack-check=specific
ecdb6d1a 1197
1e06725a 1198fstack-limit
1199Common
1200
941a4893 1201fstack-limit-register=
1202Common RejectNegative Joined
53b8e5c1 1203-fstack-limit-register=<register> Trap if the stack goes past <register>
941a4893 1204
1205fstack-limit-symbol=
1206Common RejectNegative Joined
53b8e5c1 1207-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
941a4893 1208
f1a0edff 1209fstack-protector
1210Common Report Var(flag_stack_protect, 1)
1211Use propolice as a stack protection method
1212
1213fstack-protector-all
1214Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1215Use a stack protection method for every function
1216
1e06725a 1217fstrength-reduce
4f87b914 1218Common
334ec2d8 1219Does nothing. Preserved for backward compatibility.
1e06725a 1220
82a16202 1221; Nonzero if we should do (language-dependent) alias analysis.
1222; Typically, this analysis will assume that expressions of certain
1223; types do not alias expressions of certain other types. Only used
1224; if alias analysis (in general) is enabled.
ecdb6d1a 1225fstrict-aliasing
87c75316 1226Common Report Var(flag_strict_aliasing) Optimization
72528c71 1227Assume strict aliasing rules apply
ecdb6d1a 1228
981eb798 1229fstrict-overflow
1230Common Report Var(flag_strict_overflow)
1231Treat signed overflow as undefined
1232
1e06725a 1233fsyntax-only
2e9da478 1234Common Report Var(flag_syntax_only)
72528c71 1235Check for syntax errors, then stop
1e06725a 1236
ecdb6d1a 1237ftest-coverage
2e9da478 1238Common Report Var(flag_test_coverage)
72528c71 1239Create data files needed by \"gcov\"
ecdb6d1a 1240
1e06725a 1241fthread-jumps
87c75316 1242Common Report Var(flag_thread_jumps) Optimization
72528c71 1243Perform jump threading optimizations
1e06725a 1244
ecdb6d1a 1245ftime-report
2e9da478 1246Common Report Var(time_report)
72528c71 1247Report the time taken by each compiler pass
ecdb6d1a 1248
941a4893 1249ftls-model=
1250Common Joined RejectNegative
53b8e5c1 1251-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
941a4893 1252
56af936e 1253ftoplevel-reorder
8188ae06 1254Common Report Var(flag_toplevel_reorder) Init(2) Optimization
56af936e 1255Reorder top level functions, variables, and asms
1256
1e06725a 1257ftracer
2e9da478 1258Common Report Var(flag_tracer)
72528c71 1259Perform superblock formation via tail duplication
1e06725a 1260
82a16202 1261; Zero means that floating-point math operations cannot generate a
1262; (user-visible) trap. This is the case, for example, in nonstop
1263; IEEE 754 arithmetic.
ecdb6d1a 1264ftrapping-math
87c75316 1265Common Report Var(flag_trapping_math) Init(1) Optimization
72528c71 1266Assume floating-point operations can trap
ecdb6d1a 1267
1268ftrapv
87c75316 1269Common Report Var(flag_trapv) Optimization
72528c71 1270Trap for signed overflow in addition, subtraction and multiplication
ecdb6d1a 1271
4ee9c684 1272ftree-ccp
87c75316 1273Common Report Var(flag_tree_ccp) Optimization
4ee9c684 1274Enable SSA-CCP optimization on trees
1275
88dbf20f 1276ftree-store-ccp
61207d43 1277Common
1278Does nothing. Preserved for backward compatibility.
88dbf20f 1279
4ee9c684 1280ftree-ch
87c75316 1281Common Report Var(flag_tree_ch) Optimization
4ee9c684 1282Enable loop header copying on trees
1283
4ee9c684 1284ftree-copyrename
87c75316 1285Common Report Var(flag_tree_copyrename) Optimization
3284a242 1286Replace SSA temporaries with better names in copies
4ee9c684 1287
88dbf20f 1288ftree-copy-prop
87c75316 1289Common Report Var(flag_tree_copy_prop) Optimization
88dbf20f 1290Enable copy propagation on trees
1291
1292ftree-store-copy-prop
317d3b82 1293Common
578ef723 1294Does nothing. Preserved for backward compatibility.
88dbf20f 1295
e6d0e152 1296ftree-cselim
1297Common Report Var(flag_tree_cselim) Init(2) Optimization
1298Transform condition stores into unconditional ones
1299
a347af29 1300ftree-switch-conversion
1301Common Report Var(flag_tree_switch_conversion) Optimization
1302Perform conversions of switch initializations.
1303
4ee9c684 1304ftree-dce
87c75316 1305Common Report Var(flag_tree_dce) Optimization
4ee9c684 1306Enable SSA dead code elimination optimization on trees
1307
1308ftree-dominator-opts
87c75316 1309Common Report Var(flag_tree_dom) Optimization
4ee9c684 1310Enable dominator optimizations
1311
1312ftree-dse
87c75316 1313Common Report Var(flag_tree_dse) Optimization
4ee9c684 1314Enable dead store elimination
1315
408c3c77 1316ftree-forwprop
1317Common Report Var(flag_tree_forwprop) Init(1) Optimization
1318Enable forward propagation on trees
1319
591c2a30 1320ftree-fre
87c75316 1321Common Report Var(flag_tree_fre) Optimization
591c2a30 1322Enable Full Redundancy Elimination (FRE) on trees
1323
801c5610 1324ftree-loop-distribution
2b945500 1325Common Report Var(flag_tree_loop_distribution) Optimization
801c5610 1326Enable loop distribution on trees
1327
41b5cc78 1328ftree-loop-im
87c75316 1329Common Report Var(flag_tree_loop_im) Init(1) Optimization
7d23383d 1330Enable loop invariant motion on trees
1331
60cfcb79 1332ftree-loop-linear
87c75316 1333Common Report Var(flag_tree_loop_linear) Optimization
60cfcb79 1334Enable linear loop transforms on trees
1335
41b5cc78 1336ftree-loop-ivcanon
87c75316 1337Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
41b5cc78 1338Create canonical induction variables in loops
1339
dcb9eccb 1340ftree-loop-optimize
87c75316 1341Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
dcb9eccb 1342Enable loop optimizations on tree level
1343
28c92cbb 1344ftree-parallelize-loops=
212cc995 1345Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
28c92cbb 1346Enable automatic parallelization of loops
1347
408c3c77 1348ftree-phiprop
1349Common Report Var(flag_tree_phiprop) Init(1) Optimization
1350Enable hoisting loads from conditional pointers.
1351
4ee9c684 1352ftree-pre
87c75316 1353Common Report Var(flag_tree_pre) Optimization
4ee9c684 1354Enable SSA-PRE optimization on trees
1355
408c3c77 1356ftree-pta
1357Common Report Var(flag_tree_pta) Init(1) Optimization
1358Perform function-local points-to analysis on trees.
1359
621a93b1 1360ftree-reassoc
1361Common Report Var(flag_tree_reassoc) Init(1) Optimization
1362Enable reassociation on tree level
1363
2be14d8b 1364ftree-salias
70393469 1365Common
1366Does nothing. Preserved for backward compatibility.
2be14d8b 1367
5e733b02 1368ftree-sink
87c75316 1369Common Report Var(flag_tree_sink) Optimization
5e733b02 1370Enable SSA code sinking on trees
1371
4ee9c684 1372ftree-sra
87c75316 1373Common Report Var(flag_tree_sra) Optimization
4ee9c684 1374Perform scalar replacement of aggregates
1375
1376ftree-ter
bff4202c 1377Common Report Var(flag_tree_ter) Init(1) Optimization
4ee9c684 1378Replace temporary expressions in the SSA->normal pass
1379
87c75316 1380ftree-lrs
1381Common Report Var(flag_tree_live_range_split) Optimization
1382Perform live range splitting during the SSA->normal pass
1383
88dbf20f 1384ftree-vrp
87c75316 1385Common Report Var(flag_tree_vrp) Init(0) Optimization
88dbf20f 1386Perform Value Range Propagation on trees
1387
1e06725a 1388funit-at-a-time
8188ae06 1389Common Report Var(flag_unit_at_a_time) Init(1) Optimization
72528c71 1390Compile whole compilation unit at a time
1e06725a 1391
1392funroll-loops
87c75316 1393Common Report Var(flag_unroll_loops) Optimization
72528c71 1394Perform loop unrolling when iteration count is known
1e06725a 1395
1396funroll-all-loops
87c75316 1397Common Report Var(flag_unroll_all_loops) Optimization
72528c71 1398Perform loop unrolling for all loops
1e06725a 1399
7e3cc681 1400; Nonzero means that loop optimizer may assume that the induction variables
1401; that control loops do not overflow and that the loops with nontrivial
1402; exit condition are not infinite
1403funsafe-loop-optimizations
87c75316 1404Common Report Var(flag_unsafe_loop_optimizations) Optimization
7e3cc681 1405Allow loop optimizations to assume that the loops behave in normal way
1406
49d060d7 1407fassociative-math
1408Common Report Var(flag_associative_math)
1409Allow optimization for floating-point arithmetic which may change the
1410result of the operation due to rounding.
1411
1412freciprocal-math
1413Common Report Var(flag_reciprocal_math)
1414Same as -fassociative-math for expressions which include division.
1415
82a16202 1416; Nonzero means that unsafe floating-point math optimizations are allowed
1417; for the sake of speed. IEEE compliance is not guaranteed, and operations
1418; are allowed to assume that their arguments and results are "normal"
1419; (e.g., nonnegative for SQRT).
ecdb6d1a 1420funsafe-math-optimizations
87c75316 1421Common Report Var(flag_unsafe_math_optimizations) Optimization
72528c71 1422Allow math optimizations that may violate IEEE or ISO standards
ecdb6d1a 1423
1e06725a 1424funswitch-loops
87c75316 1425Common Report Var(flag_unswitch_loops) Optimization
72528c71 1426Perform loop unswitching
1e06725a 1427
ecdb6d1a 1428funwind-tables
87c75316 1429Common Report Var(flag_unwind_tables) Optimization
72528c71 1430Just generate unwind tables for exception handling
ecdb6d1a 1431
386fbe6a 1432fuse-linker-plugin
1433Common Undocumented
1434
5923a5e7 1435fvar-tracking
87c75316 1436Common Report Var(flag_var_tracking) VarExists Optimization
5923a5e7 1437Perform variable tracking
1438
9845d120 1439fvar-tracking-assignments
1440Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1441Perform variable tracking by annotating assignments
1442
1443fvar-tracking-assignments-toggle
1444Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1445Toggle -fvar-tracking-assignments
1446
d53bb226 1447fvar-tracking-uninit
1448Common Report Var(flag_var_tracking_uninit) Optimization
1449Perform variable tracking and also tag variables that are uninitialized
1450
c91e8223 1451ftree-vectorize
87c75316 1452Common Report Var(flag_tree_vectorize) Optimization
c91e8223 1453Enable loop vectorization on trees
1454
37545e54 1455ftree-slp-vectorize
1456Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1457Enable basic block vectorization (SLP) on trees
1458
867c03eb 1459fvect-cost-model
1460Common Report Var(flag_vect_cost_model) Optimization
1461Enable use of cost model in vectorization
1462
25e3c2e8 1463ftree-vect-loop-version
87c75316 1464Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
25e3c2e8 1465Enable loop versioning when doing loop vectorization on trees
1466
459e8543 1467ftree-vectorizer-verbose=
1468Common RejectNegative Joined
98b93ebb 1469-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
459e8543 1470
2a6e95ba 1471ftree-scev-cprop
e8831472 1472Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
2a6e95ba 1473Enable copy propagation of scalar-evolution information.
1474
82a16202 1475; -fverbose-asm causes extra commentary information to be produced in
1476; the generated assembly code (to make it more readable). This option
1477; is generally only of use to those who actually need to read the
1478; generated assembly code (perhaps while debugging the compiler itself).
1479; -fno-verbose-asm, the default, causes the extra information
1480; to not be added and is useful when comparing two assembler files.
ecdb6d1a 1481fverbose-asm
2e9da478 1482Common Report Var(flag_verbose_asm)
72528c71 1483Add extra commentary to assembler output
ecdb6d1a 1484
b212f378 1485fvisibility=
1486Common Joined RejectNegative
1487-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1488
1489
1c6a7b8c 1490fvpt
87c75316 1491Common Report Var(flag_value_profile_transformations) Optimization
1c6a7b8c 1492Use expression value profiles in optimizations
1493
eeb4a70e 1494fweb
87c75316 1495Common Report Var(flag_web) Init(2) Optimization
eeb4a70e 1496Construct webs and split unrelated uses of single variable
1497
7bfefa9d 1498fwhopr
cba6710d 1499Common
1500Enable partitioned link-time optimization
1501
1502fwhopr=
1503Common RejectNegative UInteger Joined Var(flag_whopr)
1504Enable partitioned link-time optimization with specified number of parallel jobs
7bfefa9d 1505
e6a23add 1506ftree-builtin-call-dce
1507Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1508Enable conditional dead code elimination for builtin calls
1509
62eec3b4 1510fwhole-program
87c75316 1511Common Report Var(flag_whole_program) Init(0) Optimization
62eec3b4 1512Perform whole program optimizations
1513
ecdb6d1a 1514fwrapv
87c75316 1515Common Report Var(flag_wrapv) Optimization
72528c71 1516Assume signed arithmetic overflow wraps around
ecdb6d1a 1517
ecdb6d1a 1518fzero-initialized-in-bss
2e9da478 1519Common Report Var(flag_zero_initialized_in_bss) Init(1)
72528c71 1520Put zero initialized data in the bss section
ecdb6d1a 1521
6f2f567f 1522g
1523Common JoinedOrMissing
b0e56fb1 1524Generate debug information in default format
1525
1526gcoff
3d3b9d5b 1527Common JoinedOrMissing Negative(gdwarf-)
b0e56fb1 1528Generate debug information in COFF format
1529
3d3b9d5b 1530gdwarf-
1531Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1532Generate debug information in DWARF v2 (or later) format
b0e56fb1 1533
1534ggdb
1535Common JoinedOrMissing
1536Generate debug information in default extended format
1537
1538gstabs
a1baa5f1 1539Common JoinedOrMissing Negative(gstabs+)
b0e56fb1 1540Generate debug information in STABS format
1541
1542gstabs+
a1baa5f1 1543Common JoinedOrMissing Negative(gvms)
b0e56fb1 1544Generate debug information in extended STABS format
1545
c16b6d19 1546gno-strict-dwarf
024fa7dd 1547Common RejectNegative Var(dwarf_strict,0) Init(-1)
c16b6d19 1548Emit DWARF additions beyond selected version
1549
1550gstrict-dwarf
1551Common Report RejectNegative Var(dwarf_strict,1) VarExists
1552Don't emit DWARF additions beyond selected version
1553
71278019 1554gtoggle
1555Common Report Var(flag_gtoggle)
1556Toggle debug information generation
1557
b0e56fb1 1558gvms
a1baa5f1 1559Common JoinedOrMissing Negative(gxcoff)
b0e56fb1 1560Generate debug information in VMS format
1561
1562gxcoff
a1baa5f1 1563Common JoinedOrMissing Negative(gxcoff+)
b0e56fb1 1564Generate debug information in XCOFF format
1565
1566gxcoff+
a1baa5f1 1567Common JoinedOrMissing Negative(gcoff)
b0e56fb1 1568Generate debug information in extended XCOFF format
6f2f567f 1569
19bc000d 1570iplugindir=
1571Common Joined Var(plugindir_string) Init(0)
1572-iplugindir=<dir> Set <dir> to be the default plugin directory
1573
e690b385 1574o
1575Common Joined Separate
53b8e5c1 1576-o <file> Place output into <file>
e690b385 1577
1578p
2e9da478 1579Common Var(profile_flag)
53b8e5c1 1580Enable function profiling
e690b385 1581
1582pedantic
2e9da478 1583Common Var(pedantic)
53b8e5c1 1584Issue warnings needed for strict compliance to the standard
e690b385 1585
1586pedantic-errors
1587Common
53b8e5c1 1588Like -pedantic but issue them as errors
e690b385 1589
3272db82 1590quiet
2e9da478 1591Common Var(quiet_flag)
53b8e5c1 1592Do not display functions compiled or elapsed time
3272db82 1593
e690b385 1594version
2e9da478 1595Common Var(version_flag)
53b8e5c1 1596Display the compiler's version
e690b385 1597
1598w
2e9da478 1599Common Var(inhibit_warnings)
53b8e5c1 1600Suppress warnings
e690b385 1601
794febf8 1602shared
1603Common RejectNegative Negative(pie)
1604Create a shared library
1605
1606pie
1607Common RejectNegative Negative(shared)
1608Create a position independent executable
1609
3272db82 1610; This comment is to ensure we retain the blank line above.