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