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