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