]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/common.opt
Daily bump.
[thirdparty/gcc.git] / gcc / common.opt
CommitLineData
3272db82 1; Options for the language- and target-independent parts of the compiler.
2e9da478 2
76f02516 3; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
3272db82 4;
5; This file is part of GCC.
6;
7; GCC is free software; you can redistribute it and/or modify it under
8; the terms of the GNU General Public License as published by the Free
9; Software Foundation; either version 2, or (at your option) any later
10; version.
11;
12; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15; for more details.
16;
17; You should have received a copy of the GNU General Public License
18; along with GCC; see the file COPYING. If not, write to the Free
67ce556b 19; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
20; 02110-1301, USA.
3272db82 21
5fd4bf3b 22; See the GCC internals manual 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
da3b1bab 30-param
31Common Separate
29fed0db 32--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
da3b1bab 33
e690b385 34-target-help
35Common
36
37-version
38Common
39
40G
837277ab 41Common Joined Separate UInteger
53b8e5c1 42-G<number> Put global and static data smaller than <number> bytes into a special section (on some targets)
e690b385 43
da3b1bab 44O
45Common JoinedOrMissing
53b8e5c1 46-O<number> Set optimization level to <number>
da3b1bab 47
48Os
49Common
53b8e5c1 50Optimize for space rather than speed
da3b1bab 51
52W
53Common RejectNegative
bb0814ce 54This switch is deprecated; use -Wextra instead
da3b1bab 55
6f2f567f 56Waggregate-return
2e9da478 57Common Var(warn_aggregate_return)
bb0814ce 58Warn about returning structures, unions or arrays
6f2f567f 59
90fea167 60Walways-true
61Common Var(warn_always_true)
62Warn about comparisons that always evaluate to true
63
9b2d6d13 64Wattributes
65Common Var(warn_attributes) Init(1)
66Warn about inappropriate attribute usage
67
6f2f567f 68Wcast-align
2e9da478 69Common Var(warn_cast_align)
bb0814ce 70Warn about pointer casts which increase alignment
6f2f567f 71
72Wdeprecated-declarations
2e9da478 73Common Var(warn_deprecated_decl) Init(1)
bb0814ce 74Warn about uses of __attribute__((deprecated)) declarations
6f2f567f 75
76Wdisabled-optimization
2e9da478 77Common Var(warn_disabled_optimization)
bb0814ce 78Warn when an optimization pass is disabled
6f2f567f 79
80Werror
2e9da478 81Common Var(warnings_are_errors)
bb0814ce 82Treat all warnings as errors
6f2f567f 83
76f02516 84Werror=
85Common Joined
86Treat specified warning as error
87
da3b1bab 88Wextra
89Common
53b8e5c1 90Print extra (possibly unwanted) warnings
da3b1bab 91
295acf4f 92Wfatal-errors
2e9da478 93Common Var(flag_fatal_errors)
295acf4f 94Exit on the first error occurred
95
6f2f567f 96Winline
2e9da478 97Common Var(warn_inline)
bb0814ce 98Warn when an inlined function cannot be inlined
6f2f567f 99
100Wlarger-than-
101Common RejectNegative Joined UInteger
53b8e5c1 102-Wlarger-than-<number> Warn if an object is larger than <number> bytes
6f2f567f 103
7e3cc681 104Wunsafe-loop-optimizations
105Common Var(warn_unsafe_loop_optimizations)
106Warn if the loop cannot be optimized due to nontrivial assumptions.
107
6f2f567f 108Wmissing-noreturn
2e9da478 109Common Var(warn_missing_noreturn)
bb0814ce 110Warn about functions which might be candidates for __attribute__((noreturn))
6f2f567f 111
112Wpacked
2e9da478 113Common Var(warn_packed)
bb0814ce 114Warn when the packed attribute has no effect on struct layout
6f2f567f 115
116Wpadded
2e9da478 117Common Var(warn_padded)
bb0814ce 118Warn when padding is required to align structure members
6f2f567f 119
120Wshadow
2e9da478 121Common Var(warn_shadow)
bb0814ce 122Warn when one local variable shadows another
6f2f567f 123
f1a0edff 124Wstack-protector
125Common Var(warn_stack_protect)
126Warn when not issuing stack smashing protection for some reason
127
6f2f567f 128Wstrict-aliasing
129Common
bb0814ce 130Warn about code which might break strict aliasing rules
6f2f567f 131
c1628b55 132Wstrict-aliasing=
133Common Joined UInteger
134Warn about code which might break strict aliasing rules
135
19f0596c 136Wstring-literal-comparison
137Common Var(warn_string_literal_comparison)
138Warn about comparisons to constant string literals
139
6f2f567f 140Wswitch
2e9da478 141Common Var(warn_switch)
bb0814ce 142Warn about enumerated switches, with no default, missing a case
6f2f567f 143
144Wswitch-default
2e9da478 145Common Var(warn_switch_default)
bb0814ce 146Warn about enumerated switches missing a \"default:\" statement
6f2f567f 147
148Wswitch-enum
2e9da478 149Common Var(warn_switch_enum)
bb0814ce 150Warn about all enumerated switches missing a specific case
6f2f567f 151
152Wsystem-headers
2e9da478 153Common Var(warn_system_headers)
72528c71 154Do not suppress warnings from system headers
6f2f567f 155
156Wuninitialized
2e9da478 157Common Var(warn_uninitialized)
bb0814ce 158Warn about uninitialized automatic variables
6f2f567f 159
160Wunreachable-code
2e9da478 161Common Var(warn_notreached)
bb0814ce 162Warn about code that will never be executed
6f2f567f 163
da3b1bab 164Wunused
165Common
53b8e5c1 166Enable all -Wunused- warnings
da3b1bab 167
6f2f567f 168Wunused-function
2e9da478 169Common Var(warn_unused_function)
bb0814ce 170Warn when a function is unused
6f2f567f 171
172Wunused-label
2e9da478 173Common Var(warn_unused_label)
bb0814ce 174Warn when a label is unused
6f2f567f 175
176Wunused-parameter
2e9da478 177Common Var(warn_unused_parameter)
bb0814ce 178Warn when a function parameter is unused
6f2f567f 179
180Wunused-value
2e9da478 181Common Var(warn_unused_value)
bb0814ce 182Warn when an expression value is unused
6f2f567f 183
184Wunused-variable
2e9da478 185Common Var(warn_unused_variable)
bb0814ce 186Warn when a variable is unused
6f2f567f 187
bf2a1b05 188Wvolatile-register-var
189Common Var(warn_register_var)
190Warn when a register variable is declared volatile
191
e690b385 192aux-info
193Common Separate
53b8e5c1 194-aux-info <file> Emit declaration information into <file>
e690b385 195
196aux-info=
197Common Joined
198
199auxbase
200Common Separate
201
202auxbase-strip
203Common Separate
204
205d
206Common Joined
53b8e5c1 207-d<letters> Enable dumps from specific passes of the compiler
e690b385 208
209dumpbase
210Common Separate
53b8e5c1 211-dumpbase <file> Set the file basename to be used for dumps
e690b385 212
82a16202 213; The version of the C++ ABI in use. The following values are allowed:
214;
215; 0: The version of the ABI believed most conformant with the C++ ABI
216; specification. This ABI may change as bugs are discovered and fixed.
217; Therefore, 0 will not necessarily indicate the same ABI in different
218; versions of G++.
219;
220; 1: The version of the ABI first used in G++ 3.2.
221;
222; Additional positive integers will be assigned as new versions of
223; the ABI become the default version of the ABI.
e100aadc 224fabi-version=
2e9da478 225Common Joined UInteger Var(flag_abi_version) Init(2)
e100aadc 226
ecdb6d1a 227falign-functions
2e9da478 228Common Report Var(align_functions,0)
72528c71 229Align the start of functions
ecdb6d1a 230
941a4893 231falign-functions=
232Common RejectNegative Joined UInteger
233
ecdb6d1a 234falign-jumps
2e9da478 235Common Report Var(align_jumps,0)
72528c71 236Align labels which are only reached by jumping
ecdb6d1a 237
941a4893 238falign-jumps=
239Common RejectNegative Joined UInteger
240
ecdb6d1a 241falign-labels
2e9da478 242Common Report Var(align_labels,0)
72528c71 243Align all labels
ecdb6d1a 244
941a4893 245falign-labels=
246Common RejectNegative Joined UInteger
247
ecdb6d1a 248falign-loops
2e9da478 249Common Report Var(align_loops)
72528c71 250Align the start of loops
ecdb6d1a 251
941a4893 252falign-loops=
253Common RejectNegative Joined UInteger
254
82a16202 255; This flag is only tested if alias checking is enabled.
256; 0 if pointer arguments may alias each other. True in C.
257; 1 if pointer arguments may not alias each other but may alias
258; global variables.
259; 2 if pointer arguments may not alias each other and may not
5ff22aea 260; alias global variables.
261; 3 if pointer arguments may not alias anything. True in Fortran.
262; Set by the front end.
ecdb6d1a 263fargument-alias
2e9da478 264Common Report Var(flag_argument_noalias,0)
72528c71 265Specify that arguments may alias each other and globals
ecdb6d1a 266
267fargument-noalias
2e9da478 268Common Report Var(flag_argument_noalias,1) VarExists
72528c71 269Assume arguments may alias globals but not each other
ecdb6d1a 270
271fargument-noalias-global
2e9da478 272Common Report Var(flag_argument_noalias,2) VarExists
72528c71 273Assume arguments alias neither each other nor globals
ecdb6d1a 274
5ff22aea 275fargument-noalias-anything
276Common Report Var(flag_argument_noalias,3) VarExists
277Assume arguments alias no other storage
278
ecdb6d1a 279fasynchronous-unwind-tables
2e9da478 280Common Report Var(flag_asynchronous_unwind_tables)
72528c71 281Generate unwind tables that are exact at each instruction boundary
ecdb6d1a 282
82a16202 283; -fcheck-bounds causes gcc to generate array bounds checks.
284; For C, C++ and ObjC: defaults off.
285; For Java: defaults to on.
286; For Fortran: defaults to off.
ecdb6d1a 287fbounds-check
2e9da478 288Common Report Var(flag_bounds_check)
72528c71 289Generate code to check bounds before indexing arrays
ecdb6d1a 290
291fbranch-count-reg
2e9da478 292Common Report Var(flag_branch_on_count_reg) Init(1)
72528c71 293Replace add, compare, branch with branch on count register
ecdb6d1a 294
295fbranch-probabilities
2e9da478 296Common Report Var(flag_branch_probabilities)
72528c71 297Use profiling information for branch probabilities
ecdb6d1a 298
1e06725a 299fbranch-target-load-optimize
2e9da478 300Common Report Var(flag_branch_target_load_optimize)
72528c71 301Perform branch target load optimization before prologue / epilogue threading
1e06725a 302
303fbranch-target-load-optimize2
2e9da478 304Common Report Var(flag_branch_target_load_optimize2)
72528c71 305Perform branch target load optimization after prologue / epilogue threading
1e06725a 306
08d163a9 307fbtr-bb-exclusive
2e9da478 308Common Report Var(flag_btr_bb_exclusive)
08d163a9 309Restrict target load migration not to re-use registers in any basic block
310
941a4893 311fcall-saved-
312Common Joined RejectNegative
53b8e5c1 313-fcall-saved-<register> Mark <register> as being preserved across functions
941a4893 314
315fcall-used-
316Common Joined RejectNegative
53b8e5c1 317-fcall-used-<register> Mark <register> as being corrupted by function calls
941a4893 318
82a16202 319; Nonzero for -fcaller-saves: allocate values in regs that need to
320; be saved across function calls, if that produces overall better code.
321; Optional now, so people can test it.
1e06725a 322fcaller-saves
2e9da478 323Common Report Var(flag_caller_saves)
72528c71 324Save registers around function calls
1e06725a 325
ecdb6d1a 326fcommon
2e9da478 327Common Report Var(flag_no_common,0)
72528c71 328Do not put uninitialized globals in the common section
ecdb6d1a 329
330fcprop-registers
2e9da478 331Common Report Var(flag_cprop_registers)
72528c71 332Perform a register copy-propagation optimization pass
ecdb6d1a 333
1e06725a 334fcrossjumping
2e9da478 335Common Report Var(flag_crossjumping)
72528c71 336Perform cross-jumping optimization
1e06725a 337
338fcse-follow-jumps
2e9da478 339Common Report Var(flag_cse_follow_jumps)
72528c71 340When running CSE, follow jumps to their targets
1e06725a 341
342fcse-skip-blocks
2e9da478 343Common Report Var(flag_cse_skip_blocks)
72528c71 344When running CSE, follow conditional jumps
1e06725a 345
45b9d334 346fcx-limited-range
347Common Report Var(flag_cx_limited_range)
348Omit range reduction step when performing complex division
349
ecdb6d1a 350fdata-sections
2e9da478 351Common Report Var(flag_data_sections)
72528c71 352Place data items into their own section
ecdb6d1a 353
82a16202 354; Nonzero for -fdefer-pop: don't pop args after each function call
355; instead save them up to pop many calls' args with one insns.
1e06725a 356fdefer-pop
2e9da478 357Common Report Var(flag_defer_pop)
72528c71 358Defer popping functions args from stack until later
1e06725a 359
360fdelayed-branch
2e9da478 361Common Report Var(flag_delayed_branch)
72528c71 362Attempt to fill delay slots of branch instructions
1e06725a 363
364fdelete-null-pointer-checks
2e9da478 365Common Report Var(flag_delete_null_pointer_checks)
72528c71 366Delete useless null pointer checks
1e06725a 367
368fdiagnostics-show-location=
369Common Joined RejectNegative
53b8e5c1 370-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
1e06725a 371
efb9d9ee 372fdiagnostics-show-option
b0932b2f 373Common
3284a242 374Amend appropriate diagnostic messages with the command line option that controls them
efb9d9ee 375
4ee9c684 376fdump-
377Common Joined RejectNegative
378-fdump-<type> Dump various compiler internals to a file
379
ecdb6d1a 380fdump-unnumbered
2e9da478 381Common Report Var(flag_dump_unnumbered) VarExists
72528c71 382Suppress output of instruction numbers and line number notes in debugging dumps
ecdb6d1a 383
f1aa280c 384fearly-inlining
385Common Report Var(flag_early_inlining) Init(1)
386Perform early inlining
387
1e06725a 388feliminate-dwarf2-dups
2e9da478 389Common Report Var(flag_eliminate_dwarf2_dups)
72528c71 390Perform DWARF2 duplicate elimination
1e06725a 391
262444a6 392feliminate-unused-debug-symbols
2e9da478 393Common Report Var(flag_debug_only_used_symbols)
72528c71 394Perform unused type elimination in debug info
262444a6 395
1e06725a 396feliminate-unused-debug-types
2e9da478 397Common Report Var(flag_eliminate_unused_debug_types) Init(1)
72528c71 398Perform unused type elimination in debug info
1e06725a 399
0c573f98 400femit-class-debug-always
401Common Report Var(flag_emit_class_debug_always) Init(1)
402Do not suppress C++ class debug information.
403
ecdb6d1a 404fexceptions
2e9da478 405Common Report Var(flag_exceptions)
72528c71 406Enable exception handling
ecdb6d1a 407
1e06725a 408fexpensive-optimizations
2e9da478 409Common Report Var(flag_expensive_optimizations)
72528c71 410Perform a number of minor, expensive optimizations
1e06725a 411
941a4893 412ffast-math
413Common
414
ecdb6d1a 415ffinite-math-only
2e9da478 416Common Report Var(flag_finite_math_only)
72528c71 417Assume no NaNs or infinities are generated
ecdb6d1a 418
941a4893 419ffixed-
420Common Joined RejectNegative
53b8e5c1 421-ffixed-<register> Mark <register> as being unavailable to the compiler
941a4893 422
1e06725a 423ffloat-store
2e9da478 424Common Report Var(flag_float_store)
82a16202 425Don't allocate floats and doubles in extended-precision registers
1e06725a 426
82a16202 427; Nonzero for -fforce-addr: load memory address into a register before
428; reference to memory. This makes better cse but slower compilation.
1e06725a 429fforce-addr
2e9da478 430Common Report Var(flag_force_addr)
72528c71 431Copy memory address constants into registers before use
1e06725a 432
82a16202 433; Nonzero for -fforce-mem: load memory value into a register
434; before arithmetic on it. This makes better cse but slower compilation.
1e06725a 435fforce-mem
2e9da478 436Common Report Var(flag_force_mem)
72528c71 437Copy memory operands into registers before use
1e06725a 438
82a16202 439; Nonzero means don't put addresses of constant functions in registers.
440; Used for compiling the Unix kernel, where strange substitutions are
441; done on the assembly output.
1e06725a 442ffunction-cse
2e9da478 443Common Report Var(flag_no_function_cse,0)
72528c71 444Allow function addresses to be held in registers
1e06725a 445
ecdb6d1a 446ffunction-sections
2e9da478 447Common Report Var(flag_function_sections)
72528c71 448Place each function into its own section
ecdb6d1a 449
1e06725a 450fgcse
2e9da478 451Common Report Var(flag_gcse)
72528c71 452Perform global common subexpression elimination
1e06725a 453
454fgcse-lm
2e9da478 455Common Report Var(flag_gcse_lm) Init(1)
72528c71 456Perform enhanced load motion during global common subexpression elimination
1e06725a 457
458fgcse-sm
62434574 459Common Report Var(flag_gcse_sm) Init(0)
72528c71 460Perform store motion after global common subexpression elimination
1e06725a 461
5c47e414 462fgcse-las
62434574 463Common Report Var(flag_gcse_las) Init(0)
839f8415 464Perform redundant load after store elimination in global common subexpression
465elimination
466
467fgcse-after-reload
868e8f12 468Common Report Var(flag_gcse_after_reload)
839f8415 469Perform global common subexpression elimination after register allocation
3284a242 470has finished
5c47e414 471
ecdb6d1a 472fguess-branch-probability
2e9da478 473Common Report Var(flag_guess_branch_prob)
72528c71 474Enable guessing of branch probabilities
ecdb6d1a 475
82a16202 476; Nonzero means ignore `#ident' directives. 0 means handle them.
477; Generate position-independent code for executables if possible
478; On SVR4 targets, it also controls whether or not to emit a
479; string identifying the compiler.
ecdb6d1a 480fident
2e9da478 481Common Report Var(flag_no_ident,0)
72528c71 482Process #ident directives
ecdb6d1a 483
1e06725a 484fif-conversion
2e9da478 485Common Report Var(flag_if_conversion)
72528c71 486Perform conversion of conditional jumps to branchless equivalents
1e06725a 487
488fif-conversion2
2e9da478 489Common Report Var(flag_if_conversion2)
72528c71 490Perform conversion of conditional jumps to conditional execution
1e06725a 491
82a16202 492; -finhibit-size-directive inhibits output of .size for ELF.
493; This is used only for compiling crtstuff.c,
494; and it may be extended to other effects
495; needed for crtstuff.c on other systems.
ecdb6d1a 496finhibit-size-directive
2e9da478 497Common Report Var(flag_inhibit_size_directive)
72528c71 498Do not generate .size directives
ecdb6d1a 499
82a16202 500; Nonzero means that functions declared `inline' will be treated
501; as `static'. Prevents generation of zillions of copies of unused
502; static inline functions; instead, `inlines' are written out
503; only when actually used. Used in conjunction with -g. Also
504; does the right thing with #pragma interface.
1e06725a 505finline
2e9da478 506Common Report Var(flag_no_inline,0) Init(2)
72528c71 507Pay attention to the \"inline\" keyword
1e06725a 508
509finline-functions
2e9da478 510Common Report Var(flag_inline_functions)
72528c71 511Integrate simple functions into their callers
1e06725a 512
f1aa280c 513finline-functions-called-once
514Common Report Var(flag_inline_functions_called_once) Init(1)
515Integrate functions called once into their callers
9e0baf4d 516
39470ac3 517finline-limit-
518Common RejectNegative Joined UInteger
519
520finline-limit=
521Common RejectNegative Joined UInteger
53b8e5c1 522-finline-limit=<number> Limit the size of inlined functions to <number>
39470ac3 523
ecdb6d1a 524finstrument-functions
2e9da478 525Common Report Var(flag_instrument_function_entry_exit)
72528c71 526Instrument function entry and exit with profiling calls
ecdb6d1a 527
a17a73c7 528fipa-cp
529Common Report Var(flag_ipa_cp)
530Perform Interprocedural constant propagation
531
f7d118a9 532fipa-pure-const
533Common Report Var(flag_ipa_pure_const) Init(0)
534Discover pure and const functions
535
bdf4f142 536fipa-pta
537Common Report Var(flag_ipa_pta) Init(0)
538Perform interprocedural points-to analysis
539
f7d118a9 540fipa-reference
541Common Report Var(flag_ipa_reference) Init(0)
542Discover readonly and non addressable static variables
543
544fipa-type-escape
545Common Report Var(flag_ipa_type_escape) Init(0)
546Type based escape and alias analysis
547
dec41e98 548fivopts
549Common Report Var(flag_ivopts) Init(1)
550Optimize induction variables on trees
551
51d8e657 552fjump-tables
553Common Var(flag_jump_tables) Init(1)
554Use jump tables for sufficiently large switch statements
555
1e06725a 556fkeep-inline-functions
2e9da478 557Common Report Var(flag_keep_inline_functions)
72528c71 558Generate code for functions even if they are fully inlined
1e06725a 559
560fkeep-static-consts
2e9da478 561Common Report Var(flag_keep_static_consts) Init(1)
72528c71 562Emit static const variables even if they are not used
1e06725a 563
ecdb6d1a 564fleading-underscore
2e9da478 565Common Report Var(flag_leading_underscore) Init(-1)
72528c71 566Give external symbols a leading underscore
ecdb6d1a 567
4f87b914 568floop-optimize
569Common
334ec2d8 570Does nothing. Preserved for backward compatibility.
4f87b914 571
ecdb6d1a 572fmath-errno
2e9da478 573Common Report Var(flag_errno_math) Init(1)
72528c71 574Set errno after built-in math functions
ecdb6d1a 575
576fmem-report
2e9da478 577Common Report Var(mem_report)
72528c71 578Report on permanent memory allocation
ecdb6d1a 579
82a16202 580; This will attempt to merge constant section constants, if 1 only
581; string constants and constants from constant pool, if 2 also constant
582; variables.
ecdb6d1a 583fmerge-all-constants
2e9da478 584Common Report Var(flag_merge_constants,2) Init(1)
72528c71 585Attempt to merge identical constants and constant variables
ecdb6d1a 586
587fmerge-constants
2e9da478 588Common Report Var(flag_merge_constants,1) VarExists
72528c71 589Attempt to merge identical constants across compilation units
ecdb6d1a 590
1e06725a 591fmessage-length=
592Common RejectNegative Joined UInteger
53b8e5c1 593-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
1e06725a 594
406a73e7 595fmodulo-sched
2e9da478 596Common Report Var(flag_modulo_sched)
406a73e7 597Perform SMS based modulo scheduling before the first scheduling pass
598
3a0ecac2 599fmove-loop-invariants
a82484af 600Common Report Var(flag_move_loop_invariants) Init(1)
3a0ecac2 601Move loop invariant computations out of loops
602
4ee9c684 603fmudflap
2e9da478 604Common RejectNegative Report Var(flag_mudflap)
3284a242 605Add mudflap bounds-checking instrumentation for single-threaded program
4ee9c684 606
607fmudflapth
c1d36cca 608Common RejectNegative Report VarExists Var(flag_mudflap,2)
3284a242 609Add mudflap bounds-checking instrumentation for multi-threaded program
4ee9c684 610
611fmudflapir
2e9da478 612Common RejectNegative Report Var(flag_mudflap_ignore_reads)
3284a242 613Ignore read operations when inserting mudflap instrumentation
4ee9c684 614
f045d41d 615freschedule-modulo-scheduled-loops
616Common Report Var(flag_resched_modulo_sched)
617Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
618
ecdb6d1a 619fnon-call-exceptions
2e9da478 620Common Report Var(flag_non_call_exceptions)
72528c71 621Support synchronous non-call exceptions
ecdb6d1a 622
1e06725a 623fomit-frame-pointer
2e9da478 624Common Report Var(flag_omit_frame_pointer)
72528c71 625When possible do not generate stack frames
1e06725a 626
ecdb6d1a 627foptimize-register-move
2e9da478 628Common Report Var(flag_regmove)
72528c71 629Do the full register move optimization pass
ecdb6d1a 630
1e06725a 631foptimize-sibling-calls
2e9da478 632Common Report Var(flag_optimize_sibling_calls)
72528c71 633Optimize sibling and tail recursive calls
1e06725a 634
ecdb6d1a 635fpack-struct
2e9da478 636Common Report Var(flag_pack_struct)
72528c71 637Pack structure members together without holes
ecdb6d1a 638
6b5553e5 639fpack-struct=
640Common RejectNegative Joined UInteger
641-fpack-struct=<number> Set initial maximum structure member alignment
642
1e06725a 643fpcc-struct-return
2e9da478 644Common Report Var(flag_pcc_struct_return,1) VarExists
72528c71 645Return small aggregates in memory, not registers
1e06725a 646
647fpeel-loops
2e9da478 648Common Report Var(flag_peel_loops)
72528c71 649Perform loop peeling
1e06725a 650
651fpeephole
2e9da478 652Common Report Var(flag_no_peephole,0)
72528c71 653Enable machine specific peephole optimizations
1e06725a 654
ecdb6d1a 655fpeephole2
2e9da478 656Common Report Var(flag_peephole2)
72528c71 657Enable an RTL peephole pass before sched2
ecdb6d1a 658
82a16202 659fPIC
660Common Report Var(flag_pic,2)
661Generate position-independent code if possible (large mode)
662
663fPIE
664Common Report Var(flag_pie,2)
665Generate position-independent code for executables if possible (large mode)
666
ecdb6d1a 667fpic
2e9da478 668Common Report Var(flag_pic,1) VarExists
82a16202 669Generate position-independent code if possible (small mode)
ecdb6d1a 670
671fpie
2e9da478 672Common Report Var(flag_pie,1) VarExists
82a16202 673Generate position-independent code for executables if possible (small mode)
ecdb6d1a 674
1e06725a 675fprefetch-loop-arrays
4f87b914 676Common Report Var(flag_prefetch_loop_arrays)
72528c71 677Generate prefetch instructions, if available, for arrays in loops
1e06725a 678
ecdb6d1a 679fprofile
2e9da478 680Common Report Var(profile_flag)
72528c71 681Enable basic program profiling code
ecdb6d1a 682
683fprofile-arcs
2e9da478 684Common Report Var(profile_arc_flag)
72528c71 685Insert arc-based program profiling code
ecdb6d1a 686
7dea76ba 687fprofile-generate
688Common
689Enable common options for generating profile info for profile feedback directed optimizations
690
691fprofile-use
692Common
693Enable common options for performing profile feedback directed optimizations
694
1c6a7b8c 695fprofile-values
2e9da478 696Common Report Var(flag_profile_values)
1c6a7b8c 697Insert code to profile values of expressions
698
1e06725a 699frandom-seed
700Common
701
702frandom-seed=
703Common Joined RejectNegative
53b8e5c1 704-frandom-seed=<string> Make compile reproducible using <string>
1e06725a 705
1e06725a 706freg-struct-return
2e9da478 707Common Report Var(flag_pcc_struct_return,0) VarExists
72528c71 708Return small aggregates in registers
1e06725a 709
ecdb6d1a 710fregmove
2e9da478 711Common Report Var(flag_regmove)
72528c71 712Enables a register move optimization
ecdb6d1a 713
714frename-registers
472cd78a 715Common Report Var(flag_rename_registers) Init(2)
72528c71 716Perform a register renaming optimization pass
ecdb6d1a 717
718freorder-blocks
2e9da478 719Common Report Var(flag_reorder_blocks)
72528c71 720Reorder basic blocks to improve code placement
ecdb6d1a 721
4f18499c 722freorder-blocks-and-partition
2e9da478 723Common Report Var(flag_reorder_blocks_and_partition)
4f18499c 724Reorder basic blocks and partition into hot and cold sections
725
ecdb6d1a 726freorder-functions
2e9da478 727Common Report Var(flag_reorder_functions)
72528c71 728Reorder functions to improve code placement
ecdb6d1a 729
1e06725a 730frerun-cse-after-loop
868e8f12 731Common Report Var(flag_rerun_cse_after_loop) Init(2)
72528c71 732Add a common subexpression elimination pass after loop optimizations
1e06725a 733
4f87b914 734frerun-loop-opt
735Common
334ec2d8 736Does nothing. Preserved for backward compatibility.
4f87b914 737
5466f589 738frounding-math
2e9da478 739Common Report Var(flag_rounding_math)
5466f589 740Disable optimizations that assume default FP rounding behavior
741
ecdb6d1a 742fsched-interblock
2e9da478 743Common Report Var(flag_schedule_interblock) Init(1)
72528c71 744Enable scheduling across basic blocks
ecdb6d1a 745
746fsched-spec
2e9da478 747Common Report Var(flag_schedule_speculative) Init(1)
72528c71 748Allow speculative motion of non-loads
ecdb6d1a 749
750fsched-spec-load
2e9da478 751Common Report Var(flag_schedule_speculative_load)
72528c71 752Allow speculative motion of some loads
ecdb6d1a 753
754fsched-spec-load-dangerous
2e9da478 755Common Report Var(flag_schedule_speculative_load_dangerous)
72528c71 756Allow speculative motion of more loads
ecdb6d1a 757
1e06725a 758fsched-verbose=
759Common RejectNegative Joined
53b8e5c1 760-fsched-verbose=<number> Set the verbosity level of the scheduler
1e06725a 761
ecdb6d1a 762fsched2-use-superblocks
2e9da478 763Common Report Var(flag_sched2_use_superblocks)
72528c71 764If scheduling post reload, do superblock scheduling
ecdb6d1a 765
766fsched2-use-traces
2e9da478 767Common Report Var(flag_sched2_use_traces)
72528c71 768If scheduling post reload, do trace scheduling
ecdb6d1a 769
1e06725a 770fschedule-insns
2e9da478 771Common Report Var(flag_schedule_insns)
72528c71 772Reschedule instructions before register allocation
1e06725a 773
774fschedule-insns2
2e9da478 775Common Report Var(flag_schedule_insns_after_reload)
72528c71 776Reschedule instructions after register allocation
1e06725a 777
82a16202 778; sched_stalled_insns means that insns can be moved prematurely from the queue
779; of stalled insns into the ready list.
52c4b43f 780fsched-stalled-insns
2e9da478 781Common Report Var(flag_sched_stalled_insns)
52c4b43f 782Allow premature scheduling of queued insns
783
784fsched-stalled-insns=
785Common RejectNegative Joined UInteger
98b93ebb 786-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
52c4b43f 787
82a16202 788; sched_stalled_insns_dep controls how many recently scheduled cycles will
789; be examined for a dependency on a stalled insn that is candidate for
790; premature removal from the queue of stalled insns into the ready list (has
791; an effect only if the flag 'sched_stalled_insns' is set).
52c4b43f 792fsched-stalled-insns-dep
2e9da478 793Common Report Var(flag_sched_stalled_insns_dep,1) Init(1)
52c4b43f 794Set dependence distance checking in premature scheduling of queued insns
795
796fsched-stalled-insns-dep=
797Common RejectNegative Joined UInteger
98b93ebb 798-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
52c4b43f 799
f2d0e9f1 800fsection-anchors
801Common Report Var(flag_section_anchors)
802Access data in the same section from shared anchor points
803
89140b26 804frtl-abstract-sequences
805Common Report Var(flag_rtl_seqabstr)
806Perform sequence abstraction optimization on RTL
807
5fd4bf3b 808fshow-column
809Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(1)
3284a242 810Show column numbers in diagnostics, when available. Default on
5fd4bf3b 811
ecdb6d1a 812fsignaling-nans
2e9da478 813Common Report Var(flag_signaling_nans)
72528c71 814Disable optimizations observable by IEEE signaling NaNs
ecdb6d1a 815
816fsingle-precision-constant
2e9da478 817Common Report Var(flag_single_precision_constant)
72528c71 818Convert floating point constants to single precision constants
ecdb6d1a 819
a9989fb4 820fsplit-ivs-in-unroller
821Common Report Var(flag_split_ivs_in_unroller) Init(1)
3284a242 822Split lifetimes of induction variables when loops are unrolled
a9989fb4 823
375bb675 824fvariable-expansion-in-unroller
825Common Report Var(flag_variable_expansion_in_unroller)
3284a242 826Apply variable expansion when loops are unrolled
375bb675 827
82a16202 828; Emit code to probe the stack, to help detect stack overflow; also
829; may cause large objects to be allocated dynamically.
ecdb6d1a 830fstack-check
2e9da478 831Common Report Var(flag_stack_check)
72528c71 832Insert stack checking code into the program
ecdb6d1a 833
1e06725a 834fstack-limit
835Common
836
941a4893 837fstack-limit-register=
838Common RejectNegative Joined
53b8e5c1 839-fstack-limit-register=<register> Trap if the stack goes past <register>
941a4893 840
841fstack-limit-symbol=
842Common RejectNegative Joined
53b8e5c1 843-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
941a4893 844
f1a0edff 845fstack-protector
846Common Report Var(flag_stack_protect, 1)
847Use propolice as a stack protection method
848
849fstack-protector-all
850Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
851Use a stack protection method for every function
852
1e06725a 853fstrength-reduce
4f87b914 854Common
334ec2d8 855Does nothing. Preserved for backward compatibility.
1e06725a 856
82a16202 857; Nonzero if we should do (language-dependent) alias analysis.
858; Typically, this analysis will assume that expressions of certain
859; types do not alias expressions of certain other types. Only used
860; if alias analysis (in general) is enabled.
ecdb6d1a 861fstrict-aliasing
2e9da478 862Common Report Var(flag_strict_aliasing)
72528c71 863Assume strict aliasing rules apply
ecdb6d1a 864
1e06725a 865fsyntax-only
2e9da478 866Common Report Var(flag_syntax_only)
72528c71 867Check for syntax errors, then stop
1e06725a 868
ecdb6d1a 869ftest-coverage
2e9da478 870Common Report Var(flag_test_coverage)
72528c71 871Create data files needed by \"gcov\"
ecdb6d1a 872
1e06725a 873fthread-jumps
2e9da478 874Common Report Var(flag_thread_jumps)
72528c71 875Perform jump threading optimizations
1e06725a 876
ecdb6d1a 877ftime-report
2e9da478 878Common Report Var(time_report)
72528c71 879Report the time taken by each compiler pass
ecdb6d1a 880
941a4893 881ftls-model=
882Common Joined RejectNegative
53b8e5c1 883-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
941a4893 884
56af936e 885ftoplevel-reorder
886Common Report Var(flag_toplevel_reorder) Init(1)
887Reorder top level functions, variables, and asms
888
1e06725a 889ftracer
2e9da478 890Common Report Var(flag_tracer)
72528c71 891Perform superblock formation via tail duplication
1e06725a 892
82a16202 893; Zero means that floating-point math operations cannot generate a
894; (user-visible) trap. This is the case, for example, in nonstop
895; IEEE 754 arithmetic.
ecdb6d1a 896ftrapping-math
a619b050 897Common Report Var(flag_trapping_math) Init(1)
72528c71 898Assume floating-point operations can trap
ecdb6d1a 899
900ftrapv
2e9da478 901Common Report Var(flag_trapv)
72528c71 902Trap for signed overflow in addition, subtraction and multiplication
ecdb6d1a 903
4ee9c684 904ftree-ccp
2e9da478 905Common Report Var(flag_tree_ccp)
4ee9c684 906Enable SSA-CCP optimization on trees
907
88dbf20f 908ftree-store-ccp
909Common Report Var(flag_tree_store_ccp)
910Enable SSA-CCP optimization for stores and loads
911
4ee9c684 912ftree-ch
2e9da478 913Common Report Var(flag_tree_ch)
4ee9c684 914Enable loop header copying on trees
915
916ftree-combine-temps
2e9da478 917Common Report Var(flag_tree_combine_temps)
4ee9c684 918Coalesce memory temporaries in the SSA->normal pass
919
920ftree-copyrename
2e9da478 921Common Report Var(flag_tree_copyrename)
3284a242 922Replace SSA temporaries with better names in copies
4ee9c684 923
88dbf20f 924ftree-copy-prop
925Common Report Var(flag_tree_copy_prop)
926Enable copy propagation on trees
927
928ftree-store-copy-prop
929Common Report Var(flag_tree_store_copy_prop)
930Enable copy propagation for stores and loads
931
4ee9c684 932ftree-dce
2e9da478 933Common Report Var(flag_tree_dce)
4ee9c684 934Enable SSA dead code elimination optimization on trees
935
936ftree-dominator-opts
2e9da478 937Common Report Var(flag_tree_dom)
4ee9c684 938Enable dominator optimizations
939
940ftree-dse
2e9da478 941Common Report Var(flag_tree_dse)
4ee9c684 942Enable dead store elimination
943
591c2a30 944ftree-fre
945Common Report Var(flag_tree_fre)
946Enable Full Redundancy Elimination (FRE) on trees
947
41b5cc78 948ftree-loop-im
949Common Report Var(flag_tree_loop_im) Init(1)
7d23383d 950Enable loop invariant motion on trees
951
60cfcb79 952ftree-loop-linear
953Common Report Var(flag_tree_loop_linear)
954Enable linear loop transforms on trees
955
41b5cc78 956ftree-loop-ivcanon
08162157 957Common Report Var(flag_tree_loop_ivcanon) Init(1)
41b5cc78 958Create canonical induction variables in loops
959
dcb9eccb 960ftree-loop-optimize
961Common Report Var(flag_tree_loop_optimize) Init(1)
962Enable loop optimizations on tree level
963
4ee9c684 964ftree-pre
2e9da478 965Common Report Var(flag_tree_pre)
4ee9c684 966Enable SSA-PRE optimization on trees
967
2be14d8b 968ftree-salias
969Common Report Var(flag_tree_salias)
970Perform structural alias analysis
971
5e733b02 972ftree-sink
973Common Report Var(flag_tree_sink)
974Enable SSA code sinking on trees
975
4ee9c684 976ftree-sra
2e9da478 977Common Report Var(flag_tree_sra)
4ee9c684 978Perform scalar replacement of aggregates
979
980ftree-ter
2e9da478 981Common Report Var(flag_tree_ter)
4ee9c684 982Replace temporary expressions in the SSA->normal pass
983
984ftree-lrs
2e9da478 985Common Report Var(flag_tree_live_range_split)
3284a242 986Perform live range splitting during the SSA->normal pass
4ee9c684 987
88dbf20f 988ftree-vrp
989Common Report Var(flag_tree_vrp) Init(0)
990Perform Value Range Propagation on trees
991
1e06725a 992funit-at-a-time
2e9da478 993Common Report Var(flag_unit_at_a_time)
72528c71 994Compile whole compilation unit at a time
1e06725a 995
996funroll-loops
2e9da478 997Common Report Var(flag_unroll_loops)
72528c71 998Perform loop unrolling when iteration count is known
1e06725a 999
1000funroll-all-loops
2e9da478 1001Common Report Var(flag_unroll_all_loops)
72528c71 1002Perform loop unrolling for all loops
1e06725a 1003
7e3cc681 1004; Nonzero means that loop optimizer may assume that the induction variables
1005; that control loops do not overflow and that the loops with nontrivial
1006; exit condition are not infinite
1007funsafe-loop-optimizations
1008Common Report Var(flag_unsafe_loop_optimizations)
1009Allow loop optimizations to assume that the loops behave in normal way
1010
82a16202 1011; Nonzero means that unsafe floating-point math optimizations are allowed
1012; for the sake of speed. IEEE compliance is not guaranteed, and operations
1013; are allowed to assume that their arguments and results are "normal"
1014; (e.g., nonnegative for SQRT).
ecdb6d1a 1015funsafe-math-optimizations
2e9da478 1016Common Report Var(flag_unsafe_math_optimizations)
72528c71 1017Allow math optimizations that may violate IEEE or ISO standards
ecdb6d1a 1018
1e06725a 1019funswitch-loops
2e9da478 1020Common Report Var(flag_unswitch_loops)
72528c71 1021Perform loop unswitching
1e06725a 1022
ecdb6d1a 1023funwind-tables
2e9da478 1024Common Report Var(flag_unwind_tables)
72528c71 1025Just generate unwind tables for exception handling
ecdb6d1a 1026
5923a5e7 1027fvar-tracking
2e9da478 1028Common Report Var(flag_var_tracking) VarExists
5923a5e7 1029Perform variable tracking
1030
c91e8223 1031ftree-vectorize
1032Common Report Var(flag_tree_vectorize)
1033Enable loop vectorization on trees
1034
25e3c2e8 1035ftree-vect-loop-version
1036Common Report Var(flag_tree_vect_loop_version) Init(1)
1037Enable loop versioning when doing loop vectorization on trees
1038
459e8543 1039ftree-vectorizer-verbose=
1040Common RejectNegative Joined
98b93ebb 1041-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
459e8543 1042
82a16202 1043; -fverbose-asm causes extra commentary information to be produced in
1044; the generated assembly code (to make it more readable). This option
1045; is generally only of use to those who actually need to read the
1046; generated assembly code (perhaps while debugging the compiler itself).
1047; -fno-verbose-asm, the default, causes the extra information
1048; to not be added and is useful when comparing two assembler files.
ecdb6d1a 1049fverbose-asm
2e9da478 1050Common Report Var(flag_verbose_asm)
72528c71 1051Add extra commentary to assembler output
ecdb6d1a 1052
b212f378 1053fvisibility=
1054Common Joined RejectNegative
1055-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1056
1057
1c6a7b8c 1058fvpt
2e9da478 1059Common Report Var(flag_value_profile_transformations)
1c6a7b8c 1060Use expression value profiles in optimizations
1061
eeb4a70e 1062fweb
472cd78a 1063Common Report Var(flag_web) Init(2)
eeb4a70e 1064Construct webs and split unrelated uses of single variable
1065
62eec3b4 1066fwhole-program
1067Common Report Var(flag_whole_program) Init(0)
1068Perform whole program optimizations
1069
ecdb6d1a 1070fwrapv
2e9da478 1071Common Report Var(flag_wrapv)
72528c71 1072Assume signed arithmetic overflow wraps around
ecdb6d1a 1073
ecdb6d1a 1074fzero-initialized-in-bss
2e9da478 1075Common Report Var(flag_zero_initialized_in_bss) Init(1)
72528c71 1076Put zero initialized data in the bss section
ecdb6d1a 1077
6f2f567f 1078g
1079Common JoinedOrMissing
b0e56fb1 1080Generate debug information in default format
1081
1082gcoff
1083Common JoinedOrMissing
1084Generate debug information in COFF format
1085
b0e56fb1 1086gdwarf-2
1087Common JoinedOrMissing
1088Generate debug information in DWARF v2 format
1089
1090ggdb
1091Common JoinedOrMissing
1092Generate debug information in default extended format
1093
1094gstabs
1095Common JoinedOrMissing
1096Generate debug information in STABS format
1097
1098gstabs+
1099Common JoinedOrMissing
1100Generate debug information in extended STABS format
1101
1102gvms
1103Common JoinedOrMissing
1104Generate debug information in VMS format
1105
1106gxcoff
1107Common JoinedOrMissing
1108Generate debug information in XCOFF format
1109
1110gxcoff+
1111Common JoinedOrMissing
1112Generate debug information in extended XCOFF format
6f2f567f 1113
e690b385 1114o
1115Common Joined Separate
53b8e5c1 1116-o <file> Place output into <file>
e690b385 1117
1118p
2e9da478 1119Common Var(profile_flag)
53b8e5c1 1120Enable function profiling
e690b385 1121
1122pedantic
2e9da478 1123Common Var(pedantic)
53b8e5c1 1124Issue warnings needed for strict compliance to the standard
e690b385 1125
1126pedantic-errors
1127Common
53b8e5c1 1128Like -pedantic but issue them as errors
e690b385 1129
3272db82 1130quiet
2e9da478 1131Common Var(quiet_flag)
53b8e5c1 1132Do not display functions compiled or elapsed time
3272db82 1133
e690b385 1134version
2e9da478 1135Common Var(version_flag)
53b8e5c1 1136Display the compiler's version
e690b385 1137
1138w
2e9da478 1139Common Var(inhibit_warnings)
53b8e5c1 1140Suppress warnings
e690b385 1141
3272db82 1142; This comment is to ensure we retain the blank line above.