]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/common.opt
2006-03-04 Laurent GUERBY <laurent@guerby.net>
[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
260; alias global variables. True in Fortran.
ecdb6d1a 261fargument-alias
2e9da478 262Common Report Var(flag_argument_noalias,0)
72528c71 263Specify that arguments may alias each other and globals
ecdb6d1a 264
265fargument-noalias
2e9da478 266Common Report Var(flag_argument_noalias,1) VarExists
72528c71 267Assume arguments may alias globals but not each other
ecdb6d1a 268
269fargument-noalias-global
2e9da478 270Common Report Var(flag_argument_noalias,2) VarExists
72528c71 271Assume arguments alias neither each other nor globals
ecdb6d1a 272
273fasynchronous-unwind-tables
2e9da478 274Common Report Var(flag_asynchronous_unwind_tables)
72528c71 275Generate unwind tables that are exact at each instruction boundary
ecdb6d1a 276
82a16202 277; -fcheck-bounds causes gcc to generate array bounds checks.
278; For C, C++ and ObjC: defaults off.
279; For Java: defaults to on.
280; For Fortran: defaults to off.
ecdb6d1a 281fbounds-check
2e9da478 282Common Report Var(flag_bounds_check)
72528c71 283Generate code to check bounds before indexing arrays
ecdb6d1a 284
285fbranch-count-reg
2e9da478 286Common Report Var(flag_branch_on_count_reg) Init(1)
72528c71 287Replace add, compare, branch with branch on count register
ecdb6d1a 288
289fbranch-probabilities
2e9da478 290Common Report Var(flag_branch_probabilities)
72528c71 291Use profiling information for branch probabilities
ecdb6d1a 292
1e06725a 293fbranch-target-load-optimize
2e9da478 294Common Report Var(flag_branch_target_load_optimize)
72528c71 295Perform branch target load optimization before prologue / epilogue threading
1e06725a 296
297fbranch-target-load-optimize2
2e9da478 298Common Report Var(flag_branch_target_load_optimize2)
72528c71 299Perform branch target load optimization after prologue / epilogue threading
1e06725a 300
08d163a9 301fbtr-bb-exclusive
2e9da478 302Common Report Var(flag_btr_bb_exclusive)
08d163a9 303Restrict target load migration not to re-use registers in any basic block
304
941a4893 305fcall-saved-
306Common Joined RejectNegative
53b8e5c1 307-fcall-saved-<register> Mark <register> as being preserved across functions
941a4893 308
309fcall-used-
310Common Joined RejectNegative
53b8e5c1 311-fcall-used-<register> Mark <register> as being corrupted by function calls
941a4893 312
82a16202 313; Nonzero for -fcaller-saves: allocate values in regs that need to
314; be saved across function calls, if that produces overall better code.
315; Optional now, so people can test it.
1e06725a 316fcaller-saves
2e9da478 317Common Report Var(flag_caller_saves)
72528c71 318Save registers around function calls
1e06725a 319
ecdb6d1a 320fcommon
2e9da478 321Common Report Var(flag_no_common,0)
72528c71 322Do not put uninitialized globals in the common section
ecdb6d1a 323
324fcprop-registers
2e9da478 325Common Report Var(flag_cprop_registers)
72528c71 326Perform a register copy-propagation optimization pass
ecdb6d1a 327
1e06725a 328fcrossjumping
2e9da478 329Common Report Var(flag_crossjumping)
72528c71 330Perform cross-jumping optimization
1e06725a 331
332fcse-follow-jumps
2e9da478 333Common Report Var(flag_cse_follow_jumps)
72528c71 334When running CSE, follow jumps to their targets
1e06725a 335
336fcse-skip-blocks
2e9da478 337Common Report Var(flag_cse_skip_blocks)
72528c71 338When running CSE, follow conditional jumps
1e06725a 339
45b9d334 340fcx-limited-range
341Common Report Var(flag_cx_limited_range)
342Omit range reduction step when performing complex division
343
ecdb6d1a 344fdata-sections
2e9da478 345Common Report Var(flag_data_sections)
72528c71 346Place data items into their own section
ecdb6d1a 347
82a16202 348; Nonzero for -fdefer-pop: don't pop args after each function call
349; instead save them up to pop many calls' args with one insns.
1e06725a 350fdefer-pop
2e9da478 351Common Report Var(flag_defer_pop)
72528c71 352Defer popping functions args from stack until later
1e06725a 353
354fdelayed-branch
2e9da478 355Common Report Var(flag_delayed_branch)
72528c71 356Attempt to fill delay slots of branch instructions
1e06725a 357
358fdelete-null-pointer-checks
2e9da478 359Common Report Var(flag_delete_null_pointer_checks)
72528c71 360Delete useless null pointer checks
1e06725a 361
362fdiagnostics-show-location=
363Common Joined RejectNegative
53b8e5c1 364-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
1e06725a 365
efb9d9ee 366fdiagnostics-show-option
b0932b2f 367Common
3284a242 368Amend appropriate diagnostic messages with the command line option that controls them
efb9d9ee 369
4ee9c684 370fdump-
371Common Joined RejectNegative
372-fdump-<type> Dump various compiler internals to a file
373
ecdb6d1a 374fdump-unnumbered
2e9da478 375Common Report Var(flag_dump_unnumbered) VarExists
72528c71 376Suppress output of instruction numbers and line number notes in debugging dumps
ecdb6d1a 377
f1aa280c 378fearly-inlining
379Common Report Var(flag_early_inlining) Init(1)
380Perform early inlining
381
1e06725a 382feliminate-dwarf2-dups
2e9da478 383Common Report Var(flag_eliminate_dwarf2_dups)
72528c71 384Perform DWARF2 duplicate elimination
1e06725a 385
262444a6 386feliminate-unused-debug-symbols
2e9da478 387Common Report Var(flag_debug_only_used_symbols)
72528c71 388Perform unused type elimination in debug info
262444a6 389
1e06725a 390feliminate-unused-debug-types
2e9da478 391Common Report Var(flag_eliminate_unused_debug_types) Init(1)
72528c71 392Perform unused type elimination in debug info
1e06725a 393
ecdb6d1a 394fexceptions
2e9da478 395Common Report Var(flag_exceptions)
72528c71 396Enable exception handling
ecdb6d1a 397
1e06725a 398fexpensive-optimizations
2e9da478 399Common Report Var(flag_expensive_optimizations)
72528c71 400Perform a number of minor, expensive optimizations
1e06725a 401
941a4893 402ffast-math
403Common
404
ecdb6d1a 405ffinite-math-only
2e9da478 406Common Report Var(flag_finite_math_only)
72528c71 407Assume no NaNs or infinities are generated
ecdb6d1a 408
941a4893 409ffixed-
410Common Joined RejectNegative
53b8e5c1 411-ffixed-<register> Mark <register> as being unavailable to the compiler
941a4893 412
1e06725a 413ffloat-store
2e9da478 414Common Report Var(flag_float_store)
82a16202 415Don't allocate floats and doubles in extended-precision registers
1e06725a 416
82a16202 417; Nonzero for -fforce-addr: load memory address into a register before
418; reference to memory. This makes better cse but slower compilation.
1e06725a 419fforce-addr
2e9da478 420Common Report Var(flag_force_addr)
72528c71 421Copy memory address constants into registers before use
1e06725a 422
82a16202 423; Nonzero for -fforce-mem: load memory value into a register
424; before arithmetic on it. This makes better cse but slower compilation.
1e06725a 425fforce-mem
2e9da478 426Common Report Var(flag_force_mem)
72528c71 427Copy memory operands into registers before use
1e06725a 428
82a16202 429; Nonzero means don't put addresses of constant functions in registers.
430; Used for compiling the Unix kernel, where strange substitutions are
431; done on the assembly output.
1e06725a 432ffunction-cse
2e9da478 433Common Report Var(flag_no_function_cse,0)
72528c71 434Allow function addresses to be held in registers
1e06725a 435
ecdb6d1a 436ffunction-sections
2e9da478 437Common Report Var(flag_function_sections)
72528c71 438Place each function into its own section
ecdb6d1a 439
1e06725a 440fgcse
2e9da478 441Common Report Var(flag_gcse)
72528c71 442Perform global common subexpression elimination
1e06725a 443
444fgcse-lm
2e9da478 445Common Report Var(flag_gcse_lm) Init(1)
72528c71 446Perform enhanced load motion during global common subexpression elimination
1e06725a 447
448fgcse-sm
62434574 449Common Report Var(flag_gcse_sm) Init(0)
72528c71 450Perform store motion after global common subexpression elimination
1e06725a 451
5c47e414 452fgcse-las
62434574 453Common Report Var(flag_gcse_las) Init(0)
839f8415 454Perform redundant load after store elimination in global common subexpression
455elimination
456
457fgcse-after-reload
868e8f12 458Common Report Var(flag_gcse_after_reload)
839f8415 459Perform global common subexpression elimination after register allocation
3284a242 460has finished
5c47e414 461
ecdb6d1a 462fguess-branch-probability
2e9da478 463Common Report Var(flag_guess_branch_prob)
72528c71 464Enable guessing of branch probabilities
ecdb6d1a 465
82a16202 466; Nonzero means ignore `#ident' directives. 0 means handle them.
467; Generate position-independent code for executables if possible
468; On SVR4 targets, it also controls whether or not to emit a
469; string identifying the compiler.
ecdb6d1a 470fident
2e9da478 471Common Report Var(flag_no_ident,0)
72528c71 472Process #ident directives
ecdb6d1a 473
1e06725a 474fif-conversion
2e9da478 475Common Report Var(flag_if_conversion)
72528c71 476Perform conversion of conditional jumps to branchless equivalents
1e06725a 477
478fif-conversion2
2e9da478 479Common Report Var(flag_if_conversion2)
72528c71 480Perform conversion of conditional jumps to conditional execution
1e06725a 481
82a16202 482; -finhibit-size-directive inhibits output of .size for ELF.
483; This is used only for compiling crtstuff.c,
484; and it may be extended to other effects
485; needed for crtstuff.c on other systems.
ecdb6d1a 486finhibit-size-directive
2e9da478 487Common Report Var(flag_inhibit_size_directive)
72528c71 488Do not generate .size directives
ecdb6d1a 489
82a16202 490; Nonzero means that functions declared `inline' will be treated
491; as `static'. Prevents generation of zillions of copies of unused
492; static inline functions; instead, `inlines' are written out
493; only when actually used. Used in conjunction with -g. Also
494; does the right thing with #pragma interface.
1e06725a 495finline
2e9da478 496Common Report Var(flag_no_inline,0) Init(2)
72528c71 497Pay attention to the \"inline\" keyword
1e06725a 498
499finline-functions
2e9da478 500Common Report Var(flag_inline_functions)
72528c71 501Integrate simple functions into their callers
1e06725a 502
f1aa280c 503finline-functions-called-once
504Common Report Var(flag_inline_functions_called_once) Init(1)
505Integrate functions called once into their callers
9e0baf4d 506
39470ac3 507finline-limit-
508Common RejectNegative Joined UInteger
509
510finline-limit=
511Common RejectNegative Joined UInteger
53b8e5c1 512-finline-limit=<number> Limit the size of inlined functions to <number>
39470ac3 513
ecdb6d1a 514finstrument-functions
2e9da478 515Common Report Var(flag_instrument_function_entry_exit)
72528c71 516Instrument function entry and exit with profiling calls
ecdb6d1a 517
a17a73c7 518fipa-cp
519Common Report Var(flag_ipa_cp)
520Perform Interprocedural constant propagation
521
f7d118a9 522fipa-pure-const
523Common Report Var(flag_ipa_pure_const) Init(0)
524Discover pure and const functions
525
bdf4f142 526fipa-pta
527Common Report Var(flag_ipa_pta) Init(0)
528Perform interprocedural points-to analysis
529
f7d118a9 530fipa-reference
531Common Report Var(flag_ipa_reference) Init(0)
532Discover readonly and non addressable static variables
533
534fipa-type-escape
535Common Report Var(flag_ipa_type_escape) Init(0)
536Type based escape and alias analysis
537
dec41e98 538fivopts
539Common Report Var(flag_ivopts) Init(1)
540Optimize induction variables on trees
541
51d8e657 542fjump-tables
543Common Var(flag_jump_tables) Init(1)
544Use jump tables for sufficiently large switch statements
545
1e06725a 546fkeep-inline-functions
2e9da478 547Common Report Var(flag_keep_inline_functions)
72528c71 548Generate code for functions even if they are fully inlined
1e06725a 549
550fkeep-static-consts
2e9da478 551Common Report Var(flag_keep_static_consts) Init(1)
72528c71 552Emit static const variables even if they are not used
1e06725a 553
ecdb6d1a 554fleading-underscore
2e9da478 555Common Report Var(flag_leading_underscore) Init(-1)
72528c71 556Give external symbols a leading underscore
ecdb6d1a 557
4f87b914 558floop-optimize
559Common
560Does nothing. Preserved for backward compatability.
561
ecdb6d1a 562fmath-errno
2e9da478 563Common Report Var(flag_errno_math) Init(1)
72528c71 564Set errno after built-in math functions
ecdb6d1a 565
566fmem-report
2e9da478 567Common Report Var(mem_report)
72528c71 568Report on permanent memory allocation
ecdb6d1a 569
82a16202 570; This will attempt to merge constant section constants, if 1 only
571; string constants and constants from constant pool, if 2 also constant
572; variables.
ecdb6d1a 573fmerge-all-constants
2e9da478 574Common Report Var(flag_merge_constants,2) Init(1)
72528c71 575Attempt to merge identical constants and constant variables
ecdb6d1a 576
577fmerge-constants
2e9da478 578Common Report Var(flag_merge_constants,1) VarExists
72528c71 579Attempt to merge identical constants across compilation units
ecdb6d1a 580
1e06725a 581fmessage-length=
582Common RejectNegative Joined UInteger
53b8e5c1 583-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
1e06725a 584
406a73e7 585fmodulo-sched
2e9da478 586Common Report Var(flag_modulo_sched)
406a73e7 587Perform SMS based modulo scheduling before the first scheduling pass
588
3a0ecac2 589fmove-loop-invariants
a82484af 590Common Report Var(flag_move_loop_invariants) Init(1)
3a0ecac2 591Move loop invariant computations out of loops
592
4ee9c684 593fmudflap
2e9da478 594Common RejectNegative Report Var(flag_mudflap)
3284a242 595Add mudflap bounds-checking instrumentation for single-threaded program
4ee9c684 596
597fmudflapth
2e9da478 598Common RejectNegative Report Var(flag_mudflap_threads)
3284a242 599Add mudflap bounds-checking instrumentation for multi-threaded program
4ee9c684 600
601fmudflapir
2e9da478 602Common RejectNegative Report Var(flag_mudflap_ignore_reads)
3284a242 603Ignore read operations when inserting mudflap instrumentation
4ee9c684 604
f045d41d 605freschedule-modulo-scheduled-loops
606Common Report Var(flag_resched_modulo_sched)
607Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
608
ecdb6d1a 609fnon-call-exceptions
2e9da478 610Common Report Var(flag_non_call_exceptions)
72528c71 611Support synchronous non-call exceptions
ecdb6d1a 612
1e06725a 613fomit-frame-pointer
2e9da478 614Common Report Var(flag_omit_frame_pointer)
72528c71 615When possible do not generate stack frames
1e06725a 616
ecdb6d1a 617foptimize-register-move
2e9da478 618Common Report Var(flag_regmove)
72528c71 619Do the full register move optimization pass
ecdb6d1a 620
1e06725a 621foptimize-sibling-calls
2e9da478 622Common Report Var(flag_optimize_sibling_calls)
72528c71 623Optimize sibling and tail recursive calls
1e06725a 624
ecdb6d1a 625fpack-struct
2e9da478 626Common Report Var(flag_pack_struct)
72528c71 627Pack structure members together without holes
ecdb6d1a 628
6b5553e5 629fpack-struct=
630Common RejectNegative Joined UInteger
631-fpack-struct=<number> Set initial maximum structure member alignment
632
1e06725a 633fpcc-struct-return
2e9da478 634Common Report Var(flag_pcc_struct_return,1) VarExists
72528c71 635Return small aggregates in memory, not registers
1e06725a 636
637fpeel-loops
2e9da478 638Common Report Var(flag_peel_loops)
72528c71 639Perform loop peeling
1e06725a 640
641fpeephole
2e9da478 642Common Report Var(flag_no_peephole,0)
72528c71 643Enable machine specific peephole optimizations
1e06725a 644
ecdb6d1a 645fpeephole2
2e9da478 646Common Report Var(flag_peephole2)
72528c71 647Enable an RTL peephole pass before sched2
ecdb6d1a 648
82a16202 649fPIC
650Common Report Var(flag_pic,2)
651Generate position-independent code if possible (large mode)
652
653fPIE
654Common Report Var(flag_pie,2)
655Generate position-independent code for executables if possible (large mode)
656
ecdb6d1a 657fpic
2e9da478 658Common Report Var(flag_pic,1) VarExists
82a16202 659Generate position-independent code if possible (small mode)
ecdb6d1a 660
661fpie
2e9da478 662Common Report Var(flag_pie,1) VarExists
82a16202 663Generate position-independent code for executables if possible (small mode)
ecdb6d1a 664
1e06725a 665fprefetch-loop-arrays
4f87b914 666Common Report Var(flag_prefetch_loop_arrays)
72528c71 667Generate prefetch instructions, if available, for arrays in loops
1e06725a 668
ecdb6d1a 669fprofile
2e9da478 670Common Report Var(profile_flag)
72528c71 671Enable basic program profiling code
ecdb6d1a 672
673fprofile-arcs
2e9da478 674Common Report Var(profile_arc_flag)
72528c71 675Insert arc-based program profiling code
ecdb6d1a 676
7dea76ba 677fprofile-generate
678Common
679Enable common options for generating profile info for profile feedback directed optimizations
680
681fprofile-use
682Common
683Enable common options for performing profile feedback directed optimizations
684
1c6a7b8c 685fprofile-values
2e9da478 686Common Report Var(flag_profile_values)
1c6a7b8c 687Insert code to profile values of expressions
688
1e06725a 689frandom-seed
690Common
691
692frandom-seed=
693Common Joined RejectNegative
53b8e5c1 694-frandom-seed=<string> Make compile reproducible using <string>
1e06725a 695
1e06725a 696freg-struct-return
2e9da478 697Common Report Var(flag_pcc_struct_return,0) VarExists
72528c71 698Return small aggregates in registers
1e06725a 699
ecdb6d1a 700fregmove
2e9da478 701Common Report Var(flag_regmove)
72528c71 702Enables a register move optimization
ecdb6d1a 703
704frename-registers
472cd78a 705Common Report Var(flag_rename_registers) Init(2)
72528c71 706Perform a register renaming optimization pass
ecdb6d1a 707
708freorder-blocks
2e9da478 709Common Report Var(flag_reorder_blocks)
72528c71 710Reorder basic blocks to improve code placement
ecdb6d1a 711
4f18499c 712freorder-blocks-and-partition
2e9da478 713Common Report Var(flag_reorder_blocks_and_partition)
4f18499c 714Reorder basic blocks and partition into hot and cold sections
715
ecdb6d1a 716freorder-functions
2e9da478 717Common Report Var(flag_reorder_functions)
72528c71 718Reorder functions to improve code placement
ecdb6d1a 719
1e06725a 720frerun-cse-after-loop
868e8f12 721Common Report Var(flag_rerun_cse_after_loop) Init(2)
72528c71 722Add a common subexpression elimination pass after loop optimizations
1e06725a 723
4f87b914 724frerun-loop-opt
725Common
726Does nothing. Preserved for backward compatability.
727
5466f589 728frounding-math
2e9da478 729Common Report Var(flag_rounding_math)
5466f589 730Disable optimizations that assume default FP rounding behavior
731
ecdb6d1a 732fsched-interblock
2e9da478 733Common Report Var(flag_schedule_interblock) Init(1)
72528c71 734Enable scheduling across basic blocks
ecdb6d1a 735
736fsched-spec
2e9da478 737Common Report Var(flag_schedule_speculative) Init(1)
72528c71 738Allow speculative motion of non-loads
ecdb6d1a 739
740fsched-spec-load
2e9da478 741Common Report Var(flag_schedule_speculative_load)
72528c71 742Allow speculative motion of some loads
ecdb6d1a 743
744fsched-spec-load-dangerous
2e9da478 745Common Report Var(flag_schedule_speculative_load_dangerous)
72528c71 746Allow speculative motion of more loads
ecdb6d1a 747
1e06725a 748fsched-verbose=
749Common RejectNegative Joined
53b8e5c1 750-fsched-verbose=<number> Set the verbosity level of the scheduler
1e06725a 751
ecdb6d1a 752fsched2-use-superblocks
2e9da478 753Common Report Var(flag_sched2_use_superblocks)
72528c71 754If scheduling post reload, do superblock scheduling
ecdb6d1a 755
756fsched2-use-traces
2e9da478 757Common Report Var(flag_sched2_use_traces)
72528c71 758If scheduling post reload, do trace scheduling
ecdb6d1a 759
1e06725a 760fschedule-insns
2e9da478 761Common Report Var(flag_schedule_insns)
72528c71 762Reschedule instructions before register allocation
1e06725a 763
764fschedule-insns2
2e9da478 765Common Report Var(flag_schedule_insns_after_reload)
72528c71 766Reschedule instructions after register allocation
1e06725a 767
82a16202 768; sched_stalled_insns means that insns can be moved prematurely from the queue
769; of stalled insns into the ready list.
52c4b43f 770fsched-stalled-insns
2e9da478 771Common Report Var(flag_sched_stalled_insns)
52c4b43f 772Allow premature scheduling of queued insns
773
774fsched-stalled-insns=
775Common RejectNegative Joined UInteger
98b93ebb 776-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
52c4b43f 777
82a16202 778; sched_stalled_insns_dep controls how many recently scheduled cycles will
779; be examined for a dependency on a stalled insn that is candidate for
780; premature removal from the queue of stalled insns into the ready list (has
781; an effect only if the flag 'sched_stalled_insns' is set).
52c4b43f 782fsched-stalled-insns-dep
2e9da478 783Common Report Var(flag_sched_stalled_insns_dep,1) Init(1)
52c4b43f 784Set dependence distance checking in premature scheduling of queued insns
785
786fsched-stalled-insns-dep=
787Common RejectNegative Joined UInteger
98b93ebb 788-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
52c4b43f 789
f2d0e9f1 790fsection-anchors
791Common Report Var(flag_section_anchors)
792Access data in the same section from shared anchor points
793
89140b26 794frtl-abstract-sequences
795Common Report Var(flag_rtl_seqabstr)
796Perform sequence abstraction optimization on RTL
797
5fd4bf3b 798fshow-column
799Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(1)
3284a242 800Show column numbers in diagnostics, when available. Default on
5fd4bf3b 801
ecdb6d1a 802fsignaling-nans
2e9da478 803Common Report Var(flag_signaling_nans)
72528c71 804Disable optimizations observable by IEEE signaling NaNs
ecdb6d1a 805
806fsingle-precision-constant
2e9da478 807Common Report Var(flag_single_precision_constant)
72528c71 808Convert floating point constants to single precision constants
ecdb6d1a 809
a9989fb4 810fsplit-ivs-in-unroller
811Common Report Var(flag_split_ivs_in_unroller) Init(1)
3284a242 812Split lifetimes of induction variables when loops are unrolled
a9989fb4 813
375bb675 814fvariable-expansion-in-unroller
815Common Report Var(flag_variable_expansion_in_unroller)
3284a242 816Apply variable expansion when loops are unrolled
375bb675 817
82a16202 818; Emit code to probe the stack, to help detect stack overflow; also
819; may cause large objects to be allocated dynamically.
ecdb6d1a 820fstack-check
2e9da478 821Common Report Var(flag_stack_check)
72528c71 822Insert stack checking code into the program
ecdb6d1a 823
1e06725a 824fstack-limit
825Common
826
941a4893 827fstack-limit-register=
828Common RejectNegative Joined
53b8e5c1 829-fstack-limit-register=<register> Trap if the stack goes past <register>
941a4893 830
831fstack-limit-symbol=
832Common RejectNegative Joined
53b8e5c1 833-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
941a4893 834
f1a0edff 835fstack-protector
836Common Report Var(flag_stack_protect, 1)
837Use propolice as a stack protection method
838
839fstack-protector-all
840Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
841Use a stack protection method for every function
842
1e06725a 843fstrength-reduce
4f87b914 844Common
845Does nothing. Preserved for backward compatability.
1e06725a 846
82a16202 847; Nonzero if we should do (language-dependent) alias analysis.
848; Typically, this analysis will assume that expressions of certain
849; types do not alias expressions of certain other types. Only used
850; if alias analysis (in general) is enabled.
ecdb6d1a 851fstrict-aliasing
2e9da478 852Common Report Var(flag_strict_aliasing)
72528c71 853Assume strict aliasing rules apply
ecdb6d1a 854
1e06725a 855fsyntax-only
2e9da478 856Common Report Var(flag_syntax_only)
72528c71 857Check for syntax errors, then stop
1e06725a 858
ecdb6d1a 859ftest-coverage
2e9da478 860Common Report Var(flag_test_coverage)
72528c71 861Create data files needed by \"gcov\"
ecdb6d1a 862
1e06725a 863fthread-jumps
2e9da478 864Common Report Var(flag_thread_jumps)
72528c71 865Perform jump threading optimizations
1e06725a 866
ecdb6d1a 867ftime-report
2e9da478 868Common Report Var(time_report)
72528c71 869Report the time taken by each compiler pass
ecdb6d1a 870
941a4893 871ftls-model=
872Common Joined RejectNegative
53b8e5c1 873-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
941a4893 874
56af936e 875ftoplevel-reorder
876Common Report Var(flag_toplevel_reorder) Init(1)
877Reorder top level functions, variables, and asms
878
1e06725a 879ftracer
2e9da478 880Common Report Var(flag_tracer)
72528c71 881Perform superblock formation via tail duplication
1e06725a 882
82a16202 883; Zero means that floating-point math operations cannot generate a
884; (user-visible) trap. This is the case, for example, in nonstop
885; IEEE 754 arithmetic.
ecdb6d1a 886ftrapping-math
a619b050 887Common Report Var(flag_trapping_math) Init(1)
72528c71 888Assume floating-point operations can trap
ecdb6d1a 889
890ftrapv
2e9da478 891Common Report Var(flag_trapv)
72528c71 892Trap for signed overflow in addition, subtraction and multiplication
ecdb6d1a 893
4ee9c684 894ftree-ccp
2e9da478 895Common Report Var(flag_tree_ccp)
4ee9c684 896Enable SSA-CCP optimization on trees
897
88dbf20f 898ftree-store-ccp
899Common Report Var(flag_tree_store_ccp)
900Enable SSA-CCP optimization for stores and loads
901
4ee9c684 902ftree-ch
2e9da478 903Common Report Var(flag_tree_ch)
4ee9c684 904Enable loop header copying on trees
905
906ftree-combine-temps
2e9da478 907Common Report Var(flag_tree_combine_temps)
4ee9c684 908Coalesce memory temporaries in the SSA->normal pass
909
910ftree-copyrename
2e9da478 911Common Report Var(flag_tree_copyrename)
3284a242 912Replace SSA temporaries with better names in copies
4ee9c684 913
88dbf20f 914ftree-copy-prop
915Common Report Var(flag_tree_copy_prop)
916Enable copy propagation on trees
917
918ftree-store-copy-prop
919Common Report Var(flag_tree_store_copy_prop)
920Enable copy propagation for stores and loads
921
4ee9c684 922ftree-dce
2e9da478 923Common Report Var(flag_tree_dce)
4ee9c684 924Enable SSA dead code elimination optimization on trees
925
926ftree-dominator-opts
2e9da478 927Common Report Var(flag_tree_dom)
4ee9c684 928Enable dominator optimizations
929
930ftree-dse
2e9da478 931Common Report Var(flag_tree_dse)
4ee9c684 932Enable dead store elimination
933
591c2a30 934ftree-fre
935Common Report Var(flag_tree_fre)
936Enable Full Redundancy Elimination (FRE) on trees
937
41b5cc78 938ftree-loop-im
939Common Report Var(flag_tree_loop_im) Init(1)
7d23383d 940Enable loop invariant motion on trees
941
60cfcb79 942ftree-loop-linear
943Common Report Var(flag_tree_loop_linear)
944Enable linear loop transforms on trees
945
41b5cc78 946ftree-loop-ivcanon
08162157 947Common Report Var(flag_tree_loop_ivcanon) Init(1)
41b5cc78 948Create canonical induction variables in loops
949
dcb9eccb 950ftree-loop-optimize
951Common Report Var(flag_tree_loop_optimize) Init(1)
952Enable loop optimizations on tree level
953
4ee9c684 954ftree-pre
2e9da478 955Common Report Var(flag_tree_pre)
4ee9c684 956Enable SSA-PRE optimization on trees
957
2be14d8b 958ftree-salias
959Common Report Var(flag_tree_salias)
960Perform structural alias analysis
961
5e733b02 962ftree-sink
963Common Report Var(flag_tree_sink)
964Enable SSA code sinking on trees
965
4ee9c684 966ftree-sra
2e9da478 967Common Report Var(flag_tree_sra)
4ee9c684 968Perform scalar replacement of aggregates
969
970ftree-ter
2e9da478 971Common Report Var(flag_tree_ter)
4ee9c684 972Replace temporary expressions in the SSA->normal pass
973
974ftree-lrs
2e9da478 975Common Report Var(flag_tree_live_range_split)
3284a242 976Perform live range splitting during the SSA->normal pass
4ee9c684 977
88dbf20f 978ftree-vrp
979Common Report Var(flag_tree_vrp) Init(0)
980Perform Value Range Propagation on trees
981
1e06725a 982funit-at-a-time
2e9da478 983Common Report Var(flag_unit_at_a_time)
72528c71 984Compile whole compilation unit at a time
1e06725a 985
986funroll-loops
2e9da478 987Common Report Var(flag_unroll_loops)
72528c71 988Perform loop unrolling when iteration count is known
1e06725a 989
990funroll-all-loops
2e9da478 991Common Report Var(flag_unroll_all_loops)
72528c71 992Perform loop unrolling for all loops
1e06725a 993
7e3cc681 994; Nonzero means that loop optimizer may assume that the induction variables
995; that control loops do not overflow and that the loops with nontrivial
996; exit condition are not infinite
997funsafe-loop-optimizations
998Common Report Var(flag_unsafe_loop_optimizations)
999Allow loop optimizations to assume that the loops behave in normal way
1000
82a16202 1001; Nonzero means that unsafe floating-point math optimizations are allowed
1002; for the sake of speed. IEEE compliance is not guaranteed, and operations
1003; are allowed to assume that their arguments and results are "normal"
1004; (e.g., nonnegative for SQRT).
ecdb6d1a 1005funsafe-math-optimizations
2e9da478 1006Common Report Var(flag_unsafe_math_optimizations)
72528c71 1007Allow math optimizations that may violate IEEE or ISO standards
ecdb6d1a 1008
1e06725a 1009funswitch-loops
2e9da478 1010Common Report Var(flag_unswitch_loops)
72528c71 1011Perform loop unswitching
1e06725a 1012
ecdb6d1a 1013funwind-tables
2e9da478 1014Common Report Var(flag_unwind_tables)
72528c71 1015Just generate unwind tables for exception handling
ecdb6d1a 1016
5923a5e7 1017fvar-tracking
2e9da478 1018Common Report Var(flag_var_tracking) VarExists
5923a5e7 1019Perform variable tracking
1020
c91e8223 1021ftree-vectorize
1022Common Report Var(flag_tree_vectorize)
1023Enable loop vectorization on trees
1024
25e3c2e8 1025ftree-vect-loop-version
1026Common Report Var(flag_tree_vect_loop_version) Init(1)
1027Enable loop versioning when doing loop vectorization on trees
1028
459e8543 1029ftree-vectorizer-verbose=
1030Common RejectNegative Joined
98b93ebb 1031-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
459e8543 1032
82a16202 1033; -fverbose-asm causes extra commentary information to be produced in
1034; the generated assembly code (to make it more readable). This option
1035; is generally only of use to those who actually need to read the
1036; generated assembly code (perhaps while debugging the compiler itself).
1037; -fno-verbose-asm, the default, causes the extra information
1038; to not be added and is useful when comparing two assembler files.
ecdb6d1a 1039fverbose-asm
2e9da478 1040Common Report Var(flag_verbose_asm)
72528c71 1041Add extra commentary to assembler output
ecdb6d1a 1042
b212f378 1043fvisibility=
1044Common Joined RejectNegative
1045-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1046
1047
1c6a7b8c 1048fvpt
2e9da478 1049Common Report Var(flag_value_profile_transformations)
1c6a7b8c 1050Use expression value profiles in optimizations
1051
eeb4a70e 1052fweb
472cd78a 1053Common Report Var(flag_web) Init(2)
eeb4a70e 1054Construct webs and split unrelated uses of single variable
1055
62eec3b4 1056fwhole-program
1057Common Report Var(flag_whole_program) Init(0)
1058Perform whole program optimizations
1059
ecdb6d1a 1060fwrapv
2e9da478 1061Common Report Var(flag_wrapv)
72528c71 1062Assume signed arithmetic overflow wraps around
ecdb6d1a 1063
ecdb6d1a 1064fzero-initialized-in-bss
2e9da478 1065Common Report Var(flag_zero_initialized_in_bss) Init(1)
72528c71 1066Put zero initialized data in the bss section
ecdb6d1a 1067
6f2f567f 1068g
1069Common JoinedOrMissing
b0e56fb1 1070Generate debug information in default format
1071
1072gcoff
1073Common JoinedOrMissing
1074Generate debug information in COFF format
1075
b0e56fb1 1076gdwarf-2
1077Common JoinedOrMissing
1078Generate debug information in DWARF v2 format
1079
1080ggdb
1081Common JoinedOrMissing
1082Generate debug information in default extended format
1083
1084gstabs
1085Common JoinedOrMissing
1086Generate debug information in STABS format
1087
1088gstabs+
1089Common JoinedOrMissing
1090Generate debug information in extended STABS format
1091
1092gvms
1093Common JoinedOrMissing
1094Generate debug information in VMS format
1095
1096gxcoff
1097Common JoinedOrMissing
1098Generate debug information in XCOFF format
1099
1100gxcoff+
1101Common JoinedOrMissing
1102Generate debug information in extended XCOFF format
6f2f567f 1103
e690b385 1104o
1105Common Joined Separate
53b8e5c1 1106-o <file> Place output into <file>
e690b385 1107
1108p
2e9da478 1109Common Var(profile_flag)
53b8e5c1 1110Enable function profiling
e690b385 1111
1112pedantic
2e9da478 1113Common Var(pedantic)
53b8e5c1 1114Issue warnings needed for strict compliance to the standard
e690b385 1115
1116pedantic-errors
1117Common
53b8e5c1 1118Like -pedantic but issue them as errors
e690b385 1119
3272db82 1120quiet
2e9da478 1121Common Var(quiet_flag)
53b8e5c1 1122Do not display functions compiled or elapsed time
3272db82 1123
e690b385 1124version
2e9da478 1125Common Var(version_flag)
53b8e5c1 1126Display the compiler's version
e690b385 1127
1128w
2e9da478 1129Common Var(inhibit_warnings)
53b8e5c1 1130Suppress warnings
e690b385 1131
3272db82 1132; This comment is to ensure we retain the blank line above.