1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003, 2004 Free Software Foundation, Inc.
5 ; This file is part of GCC.
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
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
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
19 ; Software Foundation, 59 Temple Place - Suite 330, Boston, MA
22 ; See c.opt for a description of this file's format.
24 ; Please try to keep this file in ASCII collating order.
28 Display this information
32 --param <param>=<value> Set paramter <param> to value. See below for a complete list of parameters
41 Common Joined Separate UInteger
42 -G<number> Put global and static data smaller than <number> bytes into a special section (on some targets)
45 Common JoinedOrMissing
46 -O<number> Set optimization level to <number>
50 Optimize for space rather than speed
54 This switch is deprecated; use -Wextra instead
57 Common Var(warn_aggregate_return)
58 Warn about returning structures, unions or arrays
61 Common Var(warn_cast_align)
62 Warn about pointer casts which increase alignment
64 Wdeprecated-declarations
65 Common Var(warn_deprecated_decl) Init(1)
66 Warn about uses of __attribute__((deprecated)) declarations
68 Wdisabled-optimization
69 Common Var(warn_disabled_optimization)
70 Warn when an optimization pass is disabled
73 Common Var(warnings_are_errors)
74 Treat all warnings as errors
78 Print extra (possibly unwanted) warnings
81 Common Var(flag_fatal_errors)
82 Exit on the first error occurred
85 Common Var(warn_inline)
86 Warn when an inlined function cannot be inlined
89 Common RejectNegative Joined UInteger
90 -Wlarger-than-<number> Warn if an object is larger than <number> bytes
93 Common Var(warn_missing_noreturn)
94 Warn about functions which might be candidates for __attribute__((noreturn))
97 Common Var(warn_packed)
98 Warn when the packed attribute has no effect on struct layout
101 Common Var(warn_padded)
102 Warn when padding is required to align structure members
105 Common Var(warn_shadow)
106 Warn when one local variable shadows another
110 Warn about code which might break strict aliasing rules
113 Common Joined UInteger
114 Warn about code which might break strict aliasing rules
117 Common Var(warn_switch)
118 Warn about enumerated switches, with no default, missing a case
121 Common Var(warn_switch_default)
122 Warn about enumerated switches missing a \"default:\" statement
125 Common Var(warn_switch_enum)
126 Warn about all enumerated switches missing a specific case
129 Common Var(warn_system_headers)
130 Do not suppress warnings from system headers
133 Common Var(warn_uninitialized)
134 Warn about uninitialized automatic variables
137 Common Var(warn_notreached)
138 Warn about code that will never be executed
142 Enable all -Wunused- warnings
145 Common Var(warn_unused_function)
146 Warn when a function is unused
149 Common Var(warn_unused_label)
150 Warn when a label is unused
153 Common Var(warn_unused_parameter)
154 Warn when a function parameter is unused
157 Common Var(warn_unused_value)
158 Warn when an expression value is unused
161 Common Var(warn_unused_variable)
162 Warn when a variable is unused
166 -aux-info <file> Emit declaration information into <file>
179 -d<letters> Enable dumps from specific passes of the compiler
183 -dumpbase <file> Set the file basename to be used for dumps
186 Common Report Var(flag_pic,2)
189 Common Report Var(flag_pie,2)
192 Common Joined UInteger Var(flag_abi_version) Init(2)
195 Common Report Var(align_functions,0)
196 Align the start of functions
199 Common RejectNegative Joined UInteger
202 Common Report Var(align_jumps,0)
203 Align labels which are only reached by jumping
206 Common RejectNegative Joined UInteger
209 Common Report Var(align_labels,0)
213 Common RejectNegative Joined UInteger
216 Common Report Var(align_loops)
217 Align the start of loops
220 Common RejectNegative Joined UInteger
223 Common Report Var(flag_argument_noalias,0)
224 Specify that arguments may alias each other and globals
227 Common Report Var(flag_argument_noalias,1) VarExists
228 Assume arguments may alias globals but not each other
230 fargument-noalias-global
231 Common Report Var(flag_argument_noalias,2) VarExists
232 Assume arguments alias neither each other nor globals
234 fasynchronous-unwind-tables
235 Common Report Var(flag_asynchronous_unwind_tables)
236 Generate unwind tables that are exact at each instruction boundary
239 Common Report Var(flag_bounds_check)
240 Generate code to check bounds before indexing arrays
243 Common Report Var(flag_branch_on_count_reg) Init(1)
244 Replace add, compare, branch with branch on count register
246 fbranch-probabilities
247 Common Report Var(flag_branch_probabilities)
248 Use profiling information for branch probabilities
250 fbranch-target-load-optimize
251 Common Report Var(flag_branch_target_load_optimize)
252 Perform branch target load optimization before prologue / epilogue threading
254 fbranch-target-load-optimize2
255 Common Report Var(flag_branch_target_load_optimize2)
256 Perform branch target load optimization after prologue / epilogue threading
259 Common Report Var(flag_btr_bb_exclusive)
260 Restrict target load migration not to re-use registers in any basic block
263 Common Joined RejectNegative
264 -fcall-saved-<register> Mark <register> as being preserved across functions
267 Common Joined RejectNegative
268 -fcall-used-<register> Mark <register> as being corrupted by function calls
271 Common Report Var(flag_caller_saves)
272 Save registers around function calls
275 Common Report Var(flag_no_common,0)
276 Do not put uninitialized globals in the common section
279 Common Report Var(flag_cprop_registers)
280 Perform a register copy-propagation optimization pass
283 Common Report Var(flag_crossjumping)
284 Perform cross-jumping optimization
287 Common Report Var(flag_cse_follow_jumps)
288 When running CSE, follow jumps to their targets
291 Common Report Var(flag_cse_skip_blocks)
292 When running CSE, follow conditional jumps
295 Common Report Var(flag_data_sections)
296 Place data items into their own section
299 Common Report Var(flag_defer_pop)
300 Defer popping functions args from stack until later
303 Common Report Var(flag_delayed_branch)
304 Attempt to fill delay slots of branch instructions
306 fdelete-null-pointer-checks
307 Common Report Var(flag_delete_null_pointer_checks)
308 Delete useless null pointer checks
310 fdiagnostics-show-location=
311 Common Joined RejectNegative
312 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
315 Common Joined RejectNegative
316 -fdump-<type> Dump various compiler internals to a file
319 Common Report Var(flag_dump_unnumbered) VarExists
320 Suppress output of instruction numbers and line number notes in debugging dumps
322 feliminate-dwarf2-dups
323 Common Report Var(flag_eliminate_dwarf2_dups)
324 Perform DWARF2 duplicate elimination
326 feliminate-unused-debug-symbols
327 Common Report Var(flag_debug_only_used_symbols)
328 Perform unused type elimination in debug info
330 feliminate-unused-debug-types
331 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
332 Perform unused type elimination in debug info
335 Common Report Var(flag_exceptions)
336 Enable exception handling
338 fexpensive-optimizations
339 Common Report Var(flag_expensive_optimizations)
340 Perform a number of minor, expensive optimizations
346 Common Report Var(flag_finite_math_only)
347 Assume no NaNs or infinities are generated
350 Common Joined RejectNegative
351 -ffixed-<register> Mark <register> as being unavailable to the compiler
354 Common Report Var(flag_float_store)
355 Do not store floats in registers
358 Common Report Var(flag_force_addr)
359 Copy memory address constants into registers before use
362 Common Report Var(flag_force_mem)
363 Copy memory operands into registers before use
366 Common Report Var(flag_no_function_cse,0)
367 Allow function addresses to be held in registers
370 Common Report Var(flag_function_sections)
371 Place each function into its own section
374 Common Report Var(flag_gcse)
375 Perform global common subexpression elimination
378 Common Report Var(flag_gcse_lm) Init(1)
379 Perform enhanced load motion during global common subexpression elimination
382 Common Report Var(flag_gcse_sm) Init(1)
383 Perform store motion after global common subexpression elimination
386 Common Report Var(flag_gcse_las) Init(1)
387 Perform redundant load after store elimination in global common subexpression
391 Common Report Var(flag_gcse_after_reload)
392 Perform global common subexpression elimination after register allocation
395 fguess-branch-probability
396 Common Report Var(flag_guess_branch_prob)
397 Enable guessing of branch probabilities
400 Common Report Var(flag_no_ident,0)
401 Process #ident directives
404 Common Report Var(flag_if_conversion)
405 Perform conversion of conditional jumps to branchless equivalents
408 Common Report Var(flag_if_conversion2)
409 Perform conversion of conditional jumps to conditional execution
411 finhibit-size-directive
412 Common Report Var(flag_inhibit_size_directive)
413 Do not generate .size directives
416 Common Report Var(flag_no_inline,0) Init(2)
417 Pay attention to the \"inline\" keyword
420 Common Report Var(flag_inline_functions)
421 Integrate simple functions into their callers
424 Common RejectNegative Joined UInteger
427 Common RejectNegative Joined UInteger
428 -finline-limit=<number> Limit the size of inlined functions to <number>
430 finstrument-functions
431 Common Report Var(flag_instrument_function_entry_exit)
432 Instrument function entry and exit with profiling calls
434 fkeep-inline-functions
435 Common Report Var(flag_keep_inline_functions)
436 Generate code for functions even if they are fully inlined
439 Common Report Var(flag_keep_static_consts) Init(1)
440 Emit static const variables even if they are not used
443 Common Report Var(flag_leading_underscore) Init(-1)
444 Give external symbols a leading underscore
447 Common Report Var(flag_loop_optimize)
448 Perform loop optimizations
451 Common Report Var(flag_loop_optimize2)
452 Perform loop optimizations using the new loop optimizer
455 Common Report Var(flag_errno_math) Init(1)
456 Set errno after built-in math functions
459 Common Report Var(mem_report)
460 Report on permanent memory allocation
463 Common Report Var(flag_merge_constants,2) Init(1)
464 Attempt to merge identical constants and constant variables
467 Common Report Var(flag_merge_constants,1) VarExists
468 Attempt to merge identical constants across compilation units
471 Common RejectNegative Joined UInteger
472 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
475 Common Report Var(flag_modulo_sched)
476 Perform SMS based modulo scheduling before the first scheduling pass
479 Common Report Var(flag_move_all_movables)
480 Force all loop invariant computations out of loops
482 fmove-loop-invariants
483 Common Report Var(flag_move_loop_invariants)
484 Move loop invariant computations out of loops
487 Common RejectNegative Report Var(flag_mudflap)
488 Add mudflap bounds-checking instrumentation for single-threaded program.
491 Common RejectNegative Report Var(flag_mudflap_threads)
492 Add mudflap bounds-checking instrumentation for multi-threaded program.
495 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
496 Ignore read operations when inserting mudflap instrumentation.
499 Common Report Var(flag_new_regalloc)
500 Use graph-coloring register allocation
503 Common Report Var(flag_non_call_exceptions)
504 Support synchronous non-call exceptions
507 Common Report Var(flag_old_unroll_loops)
508 Perform loop unrolling when iteration count is known
510 fold-unroll-all-loops
511 Common Report Var(flag_old_unroll_all_loops)
512 Perform loop unrolling for all loops
515 Common Report Var(flag_omit_frame_pointer)
516 When possible do not generate stack frames
518 foptimize-register-move
519 Common Report Var(flag_regmove)
520 Do the full register move optimization pass
522 foptimize-sibling-calls
523 Common Report Var(flag_optimize_sibling_calls)
524 Optimize sibling and tail recursive calls
527 Common Report Var(flag_pack_struct)
528 Pack structure members together without holes
531 Common Report Var(flag_pcc_struct_return,1) VarExists
532 Return small aggregates in memory, not registers
535 Common Report Var(flag_peel_loops)
539 Common Report Var(flag_no_peephole,0)
540 Enable machine specific peephole optimizations
543 Common Report Var(flag_peephole2)
544 Enable an RTL peephole pass before sched2
547 Common Report Var(flag_pic,1) VarExists
548 Generate position-independent code if possible
551 Common Report Var(flag_pie,1) VarExists
552 Generate position-independent code for executables if possible
554 fprefetch-loop-arrays
555 Common Report Var(flag_prefetch_loop_arrays)
556 Generate prefetch instructions, if available, for arrays in loops
559 Common Report Var(profile_flag)
560 Enable basic program profiling code
563 Common Report Var(profile_arc_flag)
564 Insert arc-based program profiling code
568 Enable common options for generating profile info for profile feedback directed optimizations
572 Enable common options for performing profile feedback directed optimizations
575 Common Report Var(flag_profile_values)
576 Insert code to profile values of expressions
582 Common Joined RejectNegative
583 -frandom-seed=<string> Make compile reproducible using <string>
586 Common Report Var(flag_reduce_all_givs)
587 Strength reduce all loop general induction variables
590 Common Report Var(flag_pcc_struct_return,0) VarExists
591 Return small aggregates in registers
594 Common Report Var(flag_regmove)
595 Enables a register move optimization
598 Common Report Var(flag_rename_registers)
599 Perform a register renaming optimization pass
602 Common Report Var(flag_reorder_blocks)
603 Reorder basic blocks to improve code placement
605 freorder-blocks-and-partition
606 Common Report Var(flag_reorder_blocks_and_partition)
607 Reorder basic blocks and partition into hot and cold sections
610 Common Report Var(flag_reorder_functions)
611 Reorder functions to improve code placement
613 frerun-cse-after-loop
614 Common Report Var(flag_rerun_cse_after_loop)
615 Add a common subexpression elimination pass after loop optimizations
618 Common Report Var(flag_rerun_loop_opt)
619 Run the loop optimizer twice
622 Common Report Var(flag_rounding_math)
623 Disable optimizations that assume default FP rounding behavior
626 Common Report Var(flag_schedule_interblock) Init(1)
627 Enable scheduling across basic blocks
630 Common Report Var(flag_schedule_speculative) Init(1)
631 Allow speculative motion of non-loads
634 Common Report Var(flag_schedule_speculative_load)
635 Allow speculative motion of some loads
637 fsched-spec-load-dangerous
638 Common Report Var(flag_schedule_speculative_load_dangerous)
639 Allow speculative motion of more loads
642 Common RejectNegative Joined
643 -fsched-verbose=<number> Set the verbosity level of the scheduler
645 fsched2-use-superblocks
646 Common Report Var(flag_sched2_use_superblocks)
647 If scheduling post reload, do superblock scheduling
650 Common Report Var(flag_sched2_use_traces)
651 If scheduling post reload, do trace scheduling
654 Common Report Var(flag_schedule_insns)
655 Reschedule instructions before register allocation
658 Common Report Var(flag_schedule_insns_after_reload)
659 Reschedule instructions after register allocation
662 Common Report Var(flag_sched_stalled_insns)
663 Allow premature scheduling of queued insns
665 fsched-stalled-insns=
666 Common RejectNegative Joined UInteger
667 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
669 fsched-stalled-insns-dep
670 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1)
671 Set dependence distance checking in premature scheduling of queued insns
673 fsched-stalled-insns-dep=
674 Common RejectNegative Joined UInteger
675 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
678 Common Report Var(flag_shared_data)
679 Mark data as shared rather than private
682 Common Report Var(flag_signaling_nans)
683 Disable optimizations observable by IEEE signaling NaNs
685 fsingle-precision-constant
686 Common Report Var(flag_single_precision_constant)
687 Convert floating point constants to single precision constants
690 Common Report Var(flag_stack_check)
691 Insert stack checking code into the program
696 fstack-limit-register=
697 Common RejectNegative Joined
698 -fstack-limit-register=<register> Trap if the stack goes past <register>
701 Common RejectNegative Joined
702 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
705 Common Report Var(flag_strength_reduce)
706 Perform strength reduction optimizations
709 Common Report Var(flag_strict_aliasing)
710 Assume strict aliasing rules apply
713 Common Report Var(flag_syntax_only)
714 Check for syntax errors, then stop
717 Common Report Var(flag_test_coverage)
718 Create data files needed by \"gcov\"
721 Common Report Var(flag_thread_jumps)
722 Perform jump threading optimizations
725 Common Report Var(time_report)
726 Report the time taken by each compiler pass
729 Common Joined RejectNegative
730 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
733 Common Report Var(flag_tracer)
734 Perform superblock formation via tail duplication
737 Common Report Var(flag_trapping_math)
738 Assume floating-point operations can trap
741 Common Report Var(flag_trapv)
742 Trap for signed overflow in addition, subtraction and multiplication
744 ftree-based-profiling
745 Common Report Var(flag_tree_based_profiling)
746 Use tree-ssa based implementation of profiling
749 Common Report Var(flag_tree_ccp)
750 Enable SSA-CCP optimization on trees
753 Common Report Var(flag_tree_ch)
754 Enable loop header copying on trees
757 Common Report Var(flag_tree_combine_temps)
758 Coalesce memory temporaries in the SSA->normal pass
761 Common Report Var(flag_tree_copyrename)
762 Replace SSA temporaries with better names in copies.
765 Common Report Var(flag_tree_dce)
766 Enable SSA dead code elimination optimization on trees
769 Common Report Var(flag_tree_dom)
770 Enable dominator optimizations
773 Common Report Var(flag_tree_dse)
774 Enable dead store elimination
777 Common Joined RejectNegative
780 Common Report Var(flag_tree_pre)
781 Enable SSA-PRE optimization on trees
784 Common Report Var(flag_tree_sra)
785 Perform scalar replacement of aggregates
788 Common Report Var(flag_tree_ter)
789 Replace temporary expressions in the SSA->normal pass
792 Common Report Var(flag_tree_live_range_split)
793 Perform live range splitting during the SSA->normal pass.
796 Common Report Var(flag_unit_at_a_time)
797 Compile whole compilation unit at a time
800 Common Report Var(flag_unroll_loops)
801 Perform loop unrolling when iteration count is known
804 Common Report Var(flag_unroll_all_loops)
805 Perform loop unrolling for all loops
807 funsafe-math-optimizations
808 Common Report Var(flag_unsafe_math_optimizations)
809 Allow math optimizations that may violate IEEE or ISO standards
812 Common Report Var(flag_unswitch_loops)
813 Perform loop unswitching
816 Common Report Var(flag_unwind_tables)
817 Just generate unwind tables for exception handling
820 Common Report Var(flag_var_tracking) VarExists
821 Perform variable tracking
824 Common Report Var(flag_verbose_asm)
825 Add extra commentary to assembler output
828 Common Report Var(flag_value_profile_transformations)
829 Use expression value profiles in optimizations
832 Common Report Var(flag_web) VarExists
833 Construct webs and split unrelated uses of single variable
836 Common Report Var(flag_wrapv)
837 Assume signed arithmetic overflow wraps around
839 fzero-initialized-in-bss
840 Common Report Var(flag_zero_initialized_in_bss) Init(1)
841 Put zero initialized data in the bss section
844 Common JoinedOrMissing
845 Generate debug information in default format
848 Common JoinedOrMissing
849 Generate debug information in COFF format
852 Common JoinedOrMissing
853 Generate debug information in DWARF v2 format
856 Common JoinedOrMissing
857 Generate debug information in default extended format
860 Common JoinedOrMissing
861 Generate debug information in STABS format
864 Common JoinedOrMissing
865 Generate debug information in extended STABS format
868 Common JoinedOrMissing
869 Generate debug information in VMS format
872 Common JoinedOrMissing
873 Generate debug information in XCOFF format
876 Common JoinedOrMissing
877 Generate debug information in extended XCOFF format
883 Common Joined Separate
884 -o <file> Place output into <file>
887 Common Var(profile_flag)
888 Enable function profiling
892 Issue warnings needed for strict compliance to the standard
896 Like -pedantic but issue them as errors
899 Common Var(quiet_flag)
900 Do not display functions compiled or elapsed time
903 Common Var(version_flag)
904 Display the compiler's version
907 Common Var(inhibit_warnings)
910 ; This comment is to ensure we retain the blank line above.