1 ; Options for the language- and target-independent parts of the compiler.
2 ; Copyright (C) 2003, 2004 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
31 --param <param>=<value> Set paramter <param> to value. See below for a complete list of parameters
40 Common Joined Separate UInteger
41 -G<number> Put global and static data smaller than <number> bytes into a special section (on some targets)
44 Common JoinedOrMissing
45 -O<number> Set optimization level to <number>
49 Optimize for space rather than speed
53 This switch is deprecated; use -Wextra instead
57 Warn about returning structures, unions or arrays
61 Warn about pointer casts which increase alignment
63 Wdeprecated-declarations
65 Warn about uses of __attribute__((deprecated)) declarations
67 Wdisabled-optimization
69 Warn when an optimization pass is disabled
73 Treat all warnings as errors
77 Print extra (possibly unwanted) warnings
81 Exit on the first error occurred
85 Warn when an inlined function cannot be inlined
88 Common RejectNegative Joined UInteger
89 -Wlarger-than-<number> Warn if an object is larger than <number> bytes
93 Warn about functions which might be candidates for __attribute__((noreturn))
97 Warn when the packed attribute has no effect on struct layout
101 Warn when padding is required to align structure members
105 Warn when one local variable shadows another
109 Warn about code which might break strict aliasing rules
112 Common Joined UInteger
113 Warn about code which might break strict aliasing rules
117 Warn about enumerated switches, with no default, missing a case
121 Warn about enumerated switches missing a \"default:\" statement
125 Warn about all enumerated switches missing a specific case
129 Do not suppress warnings from system headers
133 Warn about uninitialized automatic variables
137 Warn about code that will never be executed
141 Enable all -Wunused- warnings
145 Warn when a function is unused
149 Warn when a label is unused
153 Warn when a function parameter is unused
157 Warn when an expression value is unused
161 Warn when a variable is unused
165 -aux-info <file> Emit declaration information into <file>
178 -d<letters> Enable dumps from specific passes of the compiler
182 -dumpbase <file> Set the file basename to be used for dumps
191 Common Joined UInteger
195 Align the start of functions
198 Common RejectNegative Joined UInteger
202 Align labels which are only reached by jumping
205 Common RejectNegative Joined UInteger
212 Common RejectNegative Joined UInteger
216 Align the start of loops
219 Common RejectNegative Joined UInteger
223 Specify that arguments may alias each other and globals
227 Assume arguments may alias globals but not each other
229 fargument-noalias-global
231 Assume arguments alias neither each other nor globals
233 fasynchronous-unwind-tables
235 Generate unwind tables that are exact at each instruction boundary
239 Generate code to check bounds before indexing arrays
243 Replace add, compare, branch with branch on count register
245 fbranch-probabilities
247 Use profiling information for branch probabilities
249 fbranch-target-load-optimize
251 Perform branch target load optimization before prologue / epilogue threading
253 fbranch-target-load-optimize2
255 Perform branch target load optimization after prologue / epilogue threading
259 Restrict target load migration not to re-use registers in any basic block
262 Common Joined RejectNegative
263 -fcall-saved-<register> Mark <register> as being preserved across functions
266 Common Joined RejectNegative
267 -fcall-used-<register> Mark <register> as being corrupted by function calls
271 Save registers around function calls
275 Do not put uninitialized globals in the common section
279 Perform a register copy-propagation optimization pass
283 Perform cross-jumping optimization
287 When running CSE, follow jumps to their targets
291 When running CSE, follow conditional jumps
295 Place data items into their own section
299 Defer popping functions args from stack until later
303 Attempt to fill delay slots of branch instructions
305 fdelete-null-pointer-checks
307 Delete useless null pointer checks
309 fdiagnostics-show-location=
310 Common Joined RejectNegative
311 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
314 Common Joined RejectNegative
315 -fdump-<type> Dump various compiler internals to a file
319 Suppress output of instruction numbers and line number notes in debugging dumps
321 feliminate-dwarf2-dups
323 Perform DWARF2 duplicate elimination
325 feliminate-unused-debug-symbols
327 Perform unused type elimination in debug info
329 feliminate-unused-debug-types
331 Perform unused type elimination in debug info
335 Enable exception handling
337 fexpensive-optimizations
339 Perform a number of minor, expensive optimizations
346 Assume no NaNs or infinities are generated
349 Common Joined RejectNegative
350 -ffixed-<register> Mark <register> as being unavailable to the compiler
354 Do not store floats in registers
358 Copy memory address constants into registers before use
362 Copy memory operands into registers before use
366 Allow function addresses to be held in registers
370 Place each function into its own section
374 Perform global common subexpression elimination
378 Perform enhanced load motion during global common subexpression elimination
382 Perform store motion after global common subexpression elimination
386 Perform redundant load after store elimination in global common subexpression
391 Perform global common subexpression elimination after register allocation
394 fguess-branch-probability
396 Enable guessing of branch probabilities
400 Process #ident directives
404 Perform conversion of conditional jumps to branchless equivalents
408 Perform conversion of conditional jumps to conditional execution
410 finhibit-size-directive
412 Do not generate .size directives
416 Pay attention to the \"inline\" keyword
420 Integrate simple functions into their callers
423 Common RejectNegative Joined UInteger
426 Common RejectNegative Joined UInteger
427 -finline-limit=<number> Limit the size of inlined functions to <number>
429 finstrument-functions
431 Instrument function entry and exit with profiling calls
433 fkeep-inline-functions
435 Generate code for functions even if they are fully inlined
439 Emit static const variables even if they are not used
443 Give external symbols a leading underscore
447 Perform loop optimizations
451 Set errno after built-in math functions
455 Report on permanent memory allocation
459 Attempt to merge identical constants and constant variables
463 Attempt to merge identical constants across compilation units
466 Common RejectNegative Joined UInteger
467 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
471 Perform SMS based modulo scheduling before the first scheduling pass
475 Force all loop invariant computations out of loops
478 Common RejectNegative
479 Add mudflap bounds-checking instrumentation for single-threaded program.
482 Common RejectNegative
483 Add mudflap bounds-checking instrumentation for multi-threaded program.
486 Common RejectNegative
487 Ignore read operations when inserting mudflap instrumentation.
491 Use graph-coloring register allocation
495 Support synchronous non-call exceptions
499 Perform loop unrolling when iteration count is known
501 fold-unroll-all-loops
503 Perform loop unrolling for all loops
507 When possible do not generate stack frames
509 foptimize-register-move
511 Do the full register move optimization pass
513 foptimize-sibling-calls
515 Optimize sibling and tail recursive calls
519 Pack structure members together without holes
523 Return small aggregates in memory, not registers
531 Enable machine specific peephole optimizations
535 Enable an RTL peephole pass before sched2
539 Generate position-independent code if possible
543 Generate position-independent code for executables if possible
545 fprefetch-loop-arrays
547 Generate prefetch instructions, if available, for arrays in loops
551 Enable basic program profiling code
555 Insert arc-based program profiling code
559 Enable common options for generating profile info for profile feedback directed optimizations
563 Enable common options for performing profile feedback directed optimizations
567 Insert code to profile values of expressions
573 Common Joined RejectNegative
574 -frandom-seed=<string> Make compile reproducible using <string>
578 Strength reduce all loop general induction variables
582 Return small aggregates in registers
586 Enables a register move optimization
590 Perform a register renaming optimization pass
594 Reorder basic blocks to improve code placement
596 freorder-blocks-and-partition
598 Reorder basic blocks and partition into hot and cold sections
602 Reorder functions to improve code placement
604 frerun-cse-after-loop
606 Add a common subexpression elimination pass after loop optimizations
610 Run the loop optimizer twice
614 Disable optimizations that assume default FP rounding behavior
618 Enable scheduling across basic blocks
622 Allow speculative motion of non-loads
626 Allow speculative motion of some loads
628 fsched-spec-load-dangerous
630 Allow speculative motion of more loads
633 Common RejectNegative Joined
634 -fsched-verbose=<number> Set the verbosity level of the scheduler
636 fsched2-use-superblocks
638 If scheduling post reload, do superblock scheduling
642 If scheduling post reload, do trace scheduling
646 Reschedule instructions before register allocation
650 Reschedule instructions after register allocation
654 Allow premature scheduling of queued insns
656 fsched-stalled-insns=
657 Common RejectNegative Joined UInteger
658 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
660 fsched-stalled-insns-dep
662 Set dependence distance checking in premature scheduling of queued insns
664 fsched-stalled-insns-dep=
665 Common RejectNegative Joined UInteger
666 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
670 Mark data as shared rather than private
674 Disable optimizations observable by IEEE signaling NaNs
676 fsingle-precision-constant
678 Convert floating point constants to single precision constants
682 Insert stack checking code into the program
687 fstack-limit-register=
688 Common RejectNegative Joined
689 -fstack-limit-register=<register> Trap if the stack goes past <register>
692 Common RejectNegative Joined
693 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
697 Perform strength reduction optimizations
701 Assume strict aliasing rules apply
705 Check for syntax errors, then stop
709 Create data files needed by \"gcov\"
713 Perform jump threading optimizations
717 Report the time taken by each compiler pass
720 Common Joined RejectNegative
721 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
725 Perform superblock formation via tail duplication
729 Assume floating-point operations can trap
733 Trap for signed overflow in addition, subtraction and multiplication
735 ftree-based-profiling
737 Use tree-ssa based implementation of profiling
741 Enable SSA-CCP optimization on trees
745 Enable loop header copying on trees
749 Coalesce memory temporaries in the SSA->normal pass
753 Replace SSA temporaries with better names in copies.
757 Enable SSA dead code elimination optimization on trees
761 Enable dominator optimizations
765 Enable dead store elimination
768 Common Joined RejectNegative
772 Enable SSA-PRE optimization on trees
776 Perform scalar replacement of aggregates
780 Replace temporary expressions in the SSA->normal pass
784 Perform live range splitting during the SSA->normal pass.
788 Compile whole compilation unit at a time
792 Perform loop unrolling when iteration count is known
796 Perform loop unrolling for all loops
798 funsafe-math-optimizations
800 Allow math optimizations that may violate IEEE or ISO standards
804 Perform loop unswitching
808 Just generate unwind tables for exception handling
812 Perform variable tracking
816 Add extra commentary to assembler output
820 Use expression value profiles in optimizations
824 Construct webs and split unrelated uses of single variable
828 Assume signed arithmetic overflow wraps around
830 fzero-initialized-in-bss
832 Put zero initialized data in the bss section
835 Common JoinedOrMissing
836 Generate debug information in default format
839 Common JoinedOrMissing
840 Generate debug information in COFF format
843 Common JoinedOrMissing
844 Generate debug information in DWARF v2 format
847 Common JoinedOrMissing
848 Generate debug information in default extended format
851 Common JoinedOrMissing
852 Generate debug information in STABS format
855 Common JoinedOrMissing
856 Generate debug information in extended STABS format
859 Common JoinedOrMissing
860 Generate debug information in VMS format
863 Common JoinedOrMissing
864 Generate debug information in XCOFF format
867 Common JoinedOrMissing
868 Generate debug information in extended XCOFF format
874 Common Joined Separate
875 -o <file> Place output into <file>
879 Enable function profiling
883 Issue warnings needed for strict compliance to the standard
887 Like -pedantic but issue them as errors
891 Do not display functions compiled or elapsed time
895 Display the compiler's version
901 ; This comment is to ensure we retain the blank line above.