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