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 Warn when an inlined function cannot be inlined
84 Common RejectNegative Joined UInteger
85 -Wlarger-than-<number> Warn if an object is larger than <number> bytes
89 Warn about functions which might be candidates for __attribute__((noreturn))
93 Warn when the packed attribute has no effect on struct layout
97 Warn when padding is required to align structure members
101 Warn when one local variable shadows another
105 Warn about code which might break strict aliasing rules
108 Common Joined UInteger
109 Warn about code which might break strict aliasing rules
113 Warn about enumerated switches, with no default, missing a case
117 Warn about enumerated switches missing a \"default:\" statement
121 Warn about all enumerated switches missing a specific case
125 Do not suppress warnings from system headers
129 Warn about uninitialized automatic variables
133 Warn about code that will never be executed
137 Enable all -Wunused- warnings
141 Warn when a function is unused
145 Warn when a label is unused
149 Warn when a function parameter is unused
153 Warn when an expression value is unused
157 Warn when a variable is unused
161 -aux-info <file> Emit declaration information into <file>
174 -d<letters> Enable dumps from specific passes of the compiler
178 -dumpbase <file> Set the file basename to be used for dumps
187 Common Joined UInteger
191 Align the start of functions
194 Common RejectNegative Joined UInteger
198 Align labels which are only reached by jumping
201 Common RejectNegative Joined UInteger
208 Common RejectNegative Joined UInteger
212 Align the start of loops
215 Common RejectNegative Joined UInteger
219 Specify that arguments may alias each other and globals
223 Assume arguments may alias globals but not each other
225 fargument-noalias-global
227 Assume arguments alias neither each other nor globals
229 fasynchronous-unwind-tables
231 Generate unwind tables that are exact at each instruction boundary
235 Generate code to check bounds before indexing arrays
239 Replace add, compare, branch with branch on count register
241 fbranch-probabilities
243 Use profiling information for branch probabilities
245 fbranch-target-load-optimize
247 Perform branch target load optimization before prologue / epilogue threading
249 fbranch-target-load-optimize2
251 Perform branch target load optimization after prologue / epilogue threading
255 Restrict target load migration not to re-use registers in any basic block
258 Common Joined RejectNegative
259 -fcall-saved-<register> Mark <register> as being preserved across functions
262 Common Joined RejectNegative
263 -fcall-used-<register> Mark <register> as being corrupted by function calls
267 Save registers around function calls
271 Do not put uninitialized globals in the common section
275 Perform a register copy-propagation optimization pass
279 Perform cross-jumping optimization
283 When running CSE, follow jumps to their targets
287 When running CSE, follow conditional jumps
291 Place data items into their own section
295 Defer popping functions args from stack until later
299 Attempt to fill delay slots of branch instructions
301 fdelete-null-pointer-checks
303 Delete useless null pointer checks
305 fdiagnostics-show-location=
306 Common Joined RejectNegative
307 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
311 Suppress output of instruction numbers and line number notes in debugging dumps
313 feliminate-dwarf2-dups
315 Perform DWARF2 duplicate elimination
317 feliminate-unused-debug-symbols
319 Perform unused type elimination in debug info
321 feliminate-unused-debug-types
323 Perform unused type elimination in debug info
327 Enable exception handling
329 fexpensive-optimizations
331 Perform a number of minor, expensive optimizations
338 Assume no NaNs or infinities are generated
341 Common Joined RejectNegative
342 -ffixed-<register> Mark <register> as being unavailable to the compiler
346 Do not store floats in registers
350 Copy memory address constants into registers before use
354 Copy memory operands into registers before use
358 Allow function addresses to be held in registers
362 Place each function into its own section
366 Perform global common subexpression elimination
370 Perform enhanced load motion during global common subexpression elimination
374 Perform store motion after global common subexpression elimination
378 Perform redundant load after store elimination in global common subexpression
383 Perform global common subexpression elimination after register allocation
386 fguess-branch-probability
388 Enable guessing of branch probabilities
392 Process #ident directives
396 Perform conversion of conditional jumps to branchless equivalents
400 Perform conversion of conditional jumps to conditional execution
402 finhibit-size-directive
404 Do not generate .size directives
408 Pay attention to the \"inline\" keyword
412 Integrate simple functions into their callers
415 Common RejectNegative Joined UInteger
418 Common RejectNegative Joined UInteger
419 -finline-limit=<number> Limit the size of inlined functions to <number>
421 finstrument-functions
423 Instrument function entry and exit with profiling calls
425 fkeep-inline-functions
427 Generate code for functions even if they are fully inlined
431 Emit static const variables even if they are not used
435 Give external symbols a leading underscore
439 Perform loop optimizations
443 Set errno after built-in math functions
447 Report on permanent memory allocation
451 Attempt to merge identical constants and constant variables
455 Attempt to merge identical constants across compilation units
458 Common RejectNegative Joined UInteger
459 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
463 Force all loop invariant computations out of loops
467 Use graph-coloring register allocation
471 Support synchronous non-call exceptions
475 Perform loop unrolling when iteration count is known
477 fold-unroll-all-loops
479 Perform loop unrolling for all loops
483 When possible do not generate stack frames
485 foptimize-register-move
487 Do the full register move optimization pass
489 foptimize-sibling-calls
491 Optimize sibling and tail recursive calls
495 Pack structure members together without holes
499 Return small aggregates in memory, not registers
507 Enable machine specific peephole optimizations
511 Enable an RTL peephole pass before sched2
515 Generate position-independent code if possible
519 Generate position-independent code for executables if possible
521 fprefetch-loop-arrays
523 Generate prefetch instructions, if available, for arrays in loops
527 Enable basic program profiling code
531 Insert arc-based program profiling code
535 Enable common options for generating profile info for profile feedback directed optimizations
539 Enable common options for performing profile feedback directed optimizations
543 Insert code to profile values of expressions
549 Common Joined RejectNegative
550 -frandom-seed=<string> Make compile reproducible using <string>
554 Strength reduce all loop general induction variables
558 Return small aggregates in registers
562 Enables a register move optimization
566 Perform a register renaming optimization pass
570 Reorder basic blocks to improve code placement
572 freorder-blocks-and-partition
574 Reorder basic blocks and partition into hot and cold sections
578 Reorder functions to improve code placement
580 frerun-cse-after-loop
582 Add a common subexpression elimination pass after loop optimizations
586 Run the loop optimizer twice
590 Disable optimizations that assume default FP rounding behavior
594 Enable scheduling across basic blocks
598 Allow speculative motion of non-loads
602 Allow speculative motion of some loads
604 fsched-spec-load-dangerous
606 Allow speculative motion of more loads
609 Common RejectNegative Joined
610 -fsched-verbose=<number> Set the verbosity level of the scheduler
612 fsched2-use-superblocks
614 If scheduling post reload, do superblock scheduling
618 If scheduling post reload, do trace scheduling
622 Reschedule instructions before register allocation
626 Reschedule instructions after register allocation
630 Allow premature scheduling of queued insns
632 fsched-stalled-insns=
633 Common RejectNegative Joined UInteger
634 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
636 fsched-stalled-insns-dep
638 Set dependence distance checking in premature scheduling of queued insns
640 fsched-stalled-insns-dep=
641 Common RejectNegative Joined UInteger
642 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
646 Mark data as shared rather than private
650 Disable optimizations observable by IEEE signaling NaNs
652 fsingle-precision-constant
654 Convert floating point constants to single precision constants
658 Insert stack checking code into the program
663 fstack-limit-register=
664 Common RejectNegative Joined
665 -fstack-limit-register=<register> Trap if the stack goes past <register>
668 Common RejectNegative Joined
669 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
673 Perform strength reduction optimizations
677 Assume strict aliasing rules apply
681 Check for syntax errors, then stop
685 Create data files needed by \"gcov\"
689 Perform jump threading optimizations
693 Report the time taken by each compiler pass
696 Common Joined RejectNegative
697 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
701 Perform superblock formation via tail duplication
705 Assume floating-point operations can trap
709 Trap for signed overflow in addition, subtraction and multiplication
713 Compile whole compilation unit at a time
717 Perform loop unrolling when iteration count is known
721 Perform loop unrolling for all loops
723 funsafe-math-optimizations
725 Allow math optimizations that may violate IEEE or ISO standards
729 Perform loop unswitching
733 Just generate unwind tables for exception handling
737 Perform variable tracking
741 Add extra commentary to assembler output
745 Use expression value profiles in optimizations
749 Construct webs and split unrelated uses of single variable
753 Assume signed arithmetic overflow wraps around
755 fzero-initialized-in-bss
757 Put zero initialized data in the bss section
760 Common JoinedOrMissing
761 Generate debug information in default format
764 Common JoinedOrMissing
765 Generate debug information in COFF format
768 Common JoinedOrMissing
769 Generate debug information in DWARF v2 format
772 Common JoinedOrMissing
773 Generate debug information in default extended format
776 Common JoinedOrMissing
777 Generate debug information in STABS format
780 Common JoinedOrMissing
781 Generate debug information in extended STABS format
784 Common JoinedOrMissing
785 Generate debug information in VMS format
788 Common JoinedOrMissing
789 Generate debug information in XCOFF format
792 Common JoinedOrMissing
793 Generate debug information in extended XCOFF format
799 Common Joined Separate
800 -o <file> Place output into <file>
804 Enable function profiling
808 Issue warnings needed for strict compliance to the standard
812 Like -pedantic but issue them as errors
816 Do not display functions compiled or elapsed time
820 Display the compiler's version
826 ; This comment is to ensure we retain the blank line above.