1 ; Options for the language- and target-independent parts of the compiler.
2 ; Copyright (C) 2003 Free Software Foundation, Inc.
4 ; This file is part of GCC.
6 ; GCC is free software; you can redistribute it and/or modify it under
7 ; the terms of the GNU General Public License as published by the Free
8 ; Software Foundation; either version 2, or (at your option) any later
11 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
12 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 ; You should have received a copy of the GNU General Public License
17 ; along with GCC; see the file COPYING. If not, write to the Free
18 ; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
21 ; See c.opt for a description of this file's format.
23 ; Please try to keep this file in ASCII collating order.
27 Display this information
39 Common Joined Separate UInteger
40 -G<number> Put global and static data smaller than <number> bytes into a special section (on some targets)
43 Common JoinedOrMissing
44 -O<number> Set optimization level to <number>
48 Optimize for space rather than speed
52 This switch is deprecated; use -Wextra instead
56 Warn about returning structures, unions or arrays
60 Warn about pointer casts which increase alignment
62 Wdeprecated-declarations
64 Warn about uses of __attribute__((deprecated)) declarations
66 Wdisabled-optimization
68 Warn when an optimization pass is disabled
72 Treat all warnings as errors
76 Print extra (possibly unwanted) warnings
80 Warn when an inlined function cannot be inlined
83 Common RejectNegative Joined UInteger
84 -Wlarger-than-<number> Warn if an object is larger than <number> bytes
88 Warn about functions which might be candidates for __attribute__((noreturn))
92 Warn when the packed attribute has no effect on struct layout
96 Warn when padding is required to align structure members
100 Warn when one local variable shadows another
104 Warn about code which might break strict aliasing rules
108 Warn about enumerated switches, with no default, missing a case
112 Warn about enumerated switches missing a \"default:\" statement
116 Warn about all enumerated switches missing a specific case
120 Do not suppress warnings from system headers
124 Warn about uninitialized automatic variables
128 Warn about code that will never be executed
132 Enable all -Wunused- warnings
136 Warn when a function is unused
140 Warn when a label is unused
144 Warn when a function parameter is unused
148 Warn when an expression value is unused
152 Warn when a variable is unused
156 -aux-info <file> Emit declaration information into <file>
169 -d<letters> Enable dumps from specific passes of the compiler
173 -dumpbase <file> Set the file basename to be used for dumps
183 Align the start of functions
186 Common RejectNegative Joined UInteger
190 Align labels which are only reached by jumping
193 Common RejectNegative Joined UInteger
200 Common RejectNegative Joined UInteger
204 Align the start of loops
207 Common RejectNegative Joined UInteger
211 Specify that arguments may alias each other and globals
215 Assume arguments may alias globals but not each other
217 fargument-noalias-global
219 Assume arguments alias neither each other nor globals
221 fasynchronous-unwind-tables
223 Generate unwind tables that are exact at each instruction boundary
227 Generate code to check bounds before indexing arrays
231 Replace add, compare, branch with branch on count register
233 fbranch-probabilities
235 Use profiling information for branch probabilities
237 fbranch-target-load-optimize
239 Perform branch target load optimization before prologue / epilogue threading
241 fbranch-target-load-optimize2
243 Perform branch target load optimization after prologue / epilogue threading
246 Common Joined RejectNegative
247 -fcall-saved-<register> Mark <register> as being preserved across functions
250 Common Joined RejectNegative
251 -fcall-used-<register> Mark <register> as being corrupted by function calls
255 Save registers around function calls
259 Do not put uninitialized globals in the common section
263 Perform a register copy-propagation optimization pass
267 Perform cross-jumping optimization
271 When running CSE, follow jumps to their targets
275 When running CSE, follow conditional jumps
279 Place data items into their own section
283 Defer popping functions args from stack until later
287 Attempt to fill delay slots of branch instructions
289 fdelete-null-pointer-checks
291 Delete useless null pointer checks
293 fdiagnostics-show-location=
294 Common Joined RejectNegative
295 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
299 Suppress output of instruction numbers and line number notes in debugging dumps
301 feliminate-dwarf2-dups
303 Perform DWARF2 duplicate elimination
305 feliminate-unused-debug-symbols
307 Perform unused type elimination in debug info
309 feliminate-unused-debug-types
311 Perform unused type elimination in debug info
315 Enable exception handling
317 fexpensive-optimizations
319 Perform a number of minor, expensive optimizations
326 Assume no NaNs or infinities are generated
329 Common Joined RejectNegative
330 -ffixed-<register> Mark <register> as being unavailable to the compiler
334 Do not store floats in registers
338 Copy memory address constants into registers before use
342 Copy memory operands into registers before use
346 Allow function addresses to be held in registers
350 Place each function into its own section
354 Perform global common subexpression elimination
358 Perform enhanced load motion during global common subexpression elimination
362 Perform store motion after global common subexpression elimination
366 Output GNU ld formatted global initializers
368 fguess-branch-probability
370 Enable guessing of branch probabilities
374 Process #ident directives
378 Perform conversion of conditional jumps to branchless equivalents
382 Perform conversion of conditional jumps to conditional execution
384 finhibit-size-directive
386 Do not generate .size directives
390 Pay attention to the \"inline\" keyword
394 Integrate simple functions into their callers
397 Common RejectNegative Joined UInteger
400 Common RejectNegative Joined UInteger
401 -finline-limit=<number> Limit the size of inlined functions to <number>
403 finstrument-functions
405 Instrument function entry and exit with profiling calls
407 fkeep-inline-functions
409 Generate code for functions even if they are fully inlined
413 Emit static const variables even if they are not used
417 Give external symbols a leading underscore
421 Perform loop optimizations
425 Set errno after built-in math functions
429 Report on permanent memory allocation
433 Attempt to merge identical constants and constant variables
437 Attempt to merge identical constants across compilation units
440 Common RejectNegative Joined UInteger
441 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
445 Force all loop invariant computations out of loops
449 Use graph-coloring register allocation
453 Support synchronous non-call exceptions
457 Perform loop unrolling when iteration count is known
459 fold-unroll-all-loops
461 Perform loop unrolling for all loops
465 When possible do not generate stack frames
467 foptimize-register-move
469 Do the full register move optimization pass
471 foptimize-sibling-calls
473 Optimize sibling and tail recursive calls
477 Pack structure members together without holes
481 Return small aggregates in memory, not registers
489 Enable machine specific peephole optimizations
493 Enable an RTL peephole pass before sched2
497 Generate position-independent code if possible
501 Generate position-independent code for executables if possible
503 fprefetch-loop-arrays
505 Generate prefetch instructions, if available, for arrays in loops
509 Enable basic program profiling code
513 Insert arc-based program profiling code
519 Common Joined RejectNegative
520 -frandom-seed=<string> Make compile reproducible using <string>
524 Strength reduce all loop general induction variables
528 Return small aggregates in registers
532 Enables a register move optimization
536 Perform a register renaming optimization pass
540 Reorder basic blocks to improve code placement
544 Reorder functions to improve code placement
546 frerun-cse-after-loop
548 Add a common subexpression elimination pass after loop optimizations
552 Run the loop optimizer twice
556 Enable scheduling across basic blocks
560 Allow speculative motion of non-loads
564 Allow speculative motion of some loads
566 fsched-spec-load-dangerous
568 Allow speculative motion of more loads
571 Common RejectNegative Joined
572 -fsched-verbose=<number> Set the verbosity level of the scheduler
574 fsched2-use-superblocks
576 If scheduling post reload, do superblock scheduling
580 If scheduling post reload, do trace scheduling
584 Reschedule instructions before register allocation
588 Reschedule instructions after register allocation
592 Mark data as shared rather than private
596 Disable optimizations observable by IEEE signaling NaNs
598 fsingle-precision-constant
600 Convert floating point constants to single precision constants
604 Enable static single assignment optimizations
608 Enable SSA conditional constant propagation
612 Enable aggressive SSA dead code elimination
616 Insert stack checking code into the program
621 fstack-limit-register=
622 Common RejectNegative Joined
623 -fstack-limit-register=<register> Trap if the stack goes past <register>
626 Common RejectNegative Joined
627 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
631 Perform strength reduction optimizations
635 Assume strict aliasing rules apply
639 Check for syntax errors, then stop
643 Create data files needed by \"gcov\"
647 Perform jump threading optimizations
651 Report the time taken by each compiler pass
654 Common Joined RejectNegative
655 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
659 Perform superblock formation via tail duplication
663 Assume floating-point operations can trap
667 Trap for signed overflow in addition, subtraction and multiplication
671 Compile whole compilation unit at a time
675 Perform loop unrolling when iteration count is known
679 Perform loop unrolling for all loops
681 funsafe-math-optimizations
683 Allow math optimizations that may violate IEEE or ISO standards
687 Perform loop unswitching
691 Just generate unwind tables for exception handling
695 Add extra commentary to assembler output
699 Assume signed arithmetic overflow wraps around
703 Store strings in writable data section
705 fzero-initialized-in-bss
707 Put zero initialized data in the bss section
710 Common JoinedOrMissing
716 Common Joined Separate
717 -o <file> Place output into <file>
721 Enable function profiling
725 Issue warnings needed for strict compliance to the standard
729 Like -pedantic but issue them as errors
733 Do not display functions compiled or elapsed time
737 Display the compiler's version
743 ; This comment is to ensure we retain the blank line above.