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