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_errno_math) Init(1)
452 Set errno after built-in math functions
455 Common Report Var(mem_report)
456 Report on permanent memory allocation
459 Common Report Var(flag_merge_constants,2) Init(1)
460 Attempt to merge identical constants and constant variables
463 Common Report Var(flag_merge_constants,1) VarExists
464 Attempt to merge identical constants across compilation units
467 Common RejectNegative Joined UInteger
468 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
471 Common Report Var(flag_modulo_sched)
472 Perform SMS based modulo scheduling before the first scheduling pass
475 Common Report Var(flag_move_all_movables)
476 Force all loop invariant computations out of loops
479 Common RejectNegative Report Var(flag_mudflap)
480 Add mudflap bounds-checking instrumentation for single-threaded program.
483 Common RejectNegative Report Var(flag_mudflap_threads)
484 Add mudflap bounds-checking instrumentation for multi-threaded program.
487 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
488 Ignore read operations when inserting mudflap instrumentation.
491 Common Report Var(flag_new_regalloc)
492 Use graph-coloring register allocation
495 Common Report Var(flag_non_call_exceptions)
496 Support synchronous non-call exceptions
499 Common Report Var(flag_old_unroll_loops)
500 Perform loop unrolling when iteration count is known
502 fold-unroll-all-loops
503 Common Report Var(flag_old_unroll_all_loops)
504 Perform loop unrolling for all loops
507 Common Report Var(flag_omit_frame_pointer)
508 When possible do not generate stack frames
510 foptimize-register-move
511 Common Report Var(flag_regmove)
512 Do the full register move optimization pass
514 foptimize-sibling-calls
515 Common Report Var(flag_optimize_sibling_calls)
516 Optimize sibling and tail recursive calls
519 Common Report Var(flag_pack_struct)
520 Pack structure members together without holes
523 Common Report Var(flag_pcc_struct_return,1) VarExists
524 Return small aggregates in memory, not registers
527 Common Report Var(flag_peel_loops)
531 Common Report Var(flag_no_peephole,0)
532 Enable machine specific peephole optimizations
535 Common Report Var(flag_peephole2)
536 Enable an RTL peephole pass before sched2
539 Common Report Var(flag_pic,1) VarExists
540 Generate position-independent code if possible
543 Common Report Var(flag_pie,1) VarExists
544 Generate position-independent code for executables if possible
546 fprefetch-loop-arrays
547 Common Report Var(flag_prefetch_loop_arrays)
548 Generate prefetch instructions, if available, for arrays in loops
551 Common Report Var(profile_flag)
552 Enable basic program profiling code
555 Common Report Var(profile_arc_flag)
556 Insert arc-based program profiling code
560 Enable common options for generating profile info for profile feedback directed optimizations
564 Enable common options for performing profile feedback directed optimizations
567 Common Report Var(flag_profile_values)
568 Insert code to profile values of expressions
574 Common Joined RejectNegative
575 -frandom-seed=<string> Make compile reproducible using <string>
578 Common Report Var(flag_reduce_all_givs)
579 Strength reduce all loop general induction variables
582 Common Report Var(flag_pcc_struct_return,0) VarExists
583 Return small aggregates in registers
586 Common Report Var(flag_regmove)
587 Enables a register move optimization
590 Common Report Var(flag_rename_registers)
591 Perform a register renaming optimization pass
594 Common Report Var(flag_reorder_blocks)
595 Reorder basic blocks to improve code placement
597 freorder-blocks-and-partition
598 Common Report Var(flag_reorder_blocks_and_partition)
599 Reorder basic blocks and partition into hot and cold sections
602 Common Report Var(flag_reorder_functions)
603 Reorder functions to improve code placement
605 frerun-cse-after-loop
606 Common Report Var(flag_rerun_cse_after_loop)
607 Add a common subexpression elimination pass after loop optimizations
610 Common Report Var(flag_rerun_loop_opt)
611 Run the loop optimizer twice
614 Common Report Var(flag_rounding_math)
615 Disable optimizations that assume default FP rounding behavior
618 Common Report Var(flag_schedule_interblock) Init(1)
619 Enable scheduling across basic blocks
622 Common Report Var(flag_schedule_speculative) Init(1)
623 Allow speculative motion of non-loads
626 Common Report Var(flag_schedule_speculative_load)
627 Allow speculative motion of some loads
629 fsched-spec-load-dangerous
630 Common Report Var(flag_schedule_speculative_load_dangerous)
631 Allow speculative motion of more loads
634 Common RejectNegative Joined
635 -fsched-verbose=<number> Set the verbosity level of the scheduler
637 fsched2-use-superblocks
638 Common Report Var(flag_sched2_use_superblocks)
639 If scheduling post reload, do superblock scheduling
642 Common Report Var(flag_sched2_use_traces)
643 If scheduling post reload, do trace scheduling
646 Common Report Var(flag_schedule_insns)
647 Reschedule instructions before register allocation
650 Common Report Var(flag_schedule_insns_after_reload)
651 Reschedule instructions after register allocation
654 Common Report Var(flag_sched_stalled_insns)
655 Allow premature scheduling of queued insns
657 fsched-stalled-insns=
658 Common RejectNegative Joined UInteger
659 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
661 fsched-stalled-insns-dep
662 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1)
663 Set dependence distance checking in premature scheduling of queued insns
665 fsched-stalled-insns-dep=
666 Common RejectNegative Joined UInteger
667 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
670 Common Report Var(flag_shared_data)
671 Mark data as shared rather than private
674 Common Report Var(flag_signaling_nans)
675 Disable optimizations observable by IEEE signaling NaNs
677 fsingle-precision-constant
678 Common Report Var(flag_single_precision_constant)
679 Convert floating point constants to single precision constants
682 Common Report Var(flag_stack_check)
683 Insert stack checking code into the program
688 fstack-limit-register=
689 Common RejectNegative Joined
690 -fstack-limit-register=<register> Trap if the stack goes past <register>
693 Common RejectNegative Joined
694 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
697 Common Report Var(flag_strength_reduce)
698 Perform strength reduction optimizations
701 Common Report Var(flag_strict_aliasing)
702 Assume strict aliasing rules apply
705 Common Report Var(flag_syntax_only)
706 Check for syntax errors, then stop
709 Common Report Var(flag_test_coverage)
710 Create data files needed by \"gcov\"
713 Common Report Var(flag_thread_jumps)
714 Perform jump threading optimizations
717 Common Report Var(time_report)
718 Report the time taken by each compiler pass
721 Common Joined RejectNegative
722 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
725 Common Report Var(flag_tracer)
726 Perform superblock formation via tail duplication
729 Common Report Var(flag_trapping_math)
730 Assume floating-point operations can trap
733 Common Report Var(flag_trapv)
734 Trap for signed overflow in addition, subtraction and multiplication
736 ftree-based-profiling
737 Common Report Var(flag_tree_based_profiling)
738 Use tree-ssa based implementation of profiling
741 Common Report Var(flag_tree_ccp)
742 Enable SSA-CCP optimization on trees
745 Common Report Var(flag_tree_ch)
746 Enable loop header copying on trees
749 Common Report Var(flag_tree_combine_temps)
750 Coalesce memory temporaries in the SSA->normal pass
753 Common Report Var(flag_tree_copyrename)
754 Replace SSA temporaries with better names in copies.
757 Common Report Var(flag_tree_dce)
758 Enable SSA dead code elimination optimization on trees
761 Common Report Var(flag_tree_dom)
762 Enable dominator optimizations
765 Common Report Var(flag_tree_dse)
766 Enable dead store elimination
769 Common Joined RejectNegative
772 Common Report Var(flag_tree_pre)
773 Enable SSA-PRE optimization on trees
776 Common Report Var(flag_tree_sra)
777 Perform scalar replacement of aggregates
780 Common Report Var(flag_tree_ter)
781 Replace temporary expressions in the SSA->normal pass
784 Common Report Var(flag_tree_live_range_split)
785 Perform live range splitting during the SSA->normal pass.
788 Common Report Var(flag_unit_at_a_time)
789 Compile whole compilation unit at a time
792 Common Report Var(flag_unroll_loops)
793 Perform loop unrolling when iteration count is known
796 Common Report Var(flag_unroll_all_loops)
797 Perform loop unrolling for all loops
799 funsafe-math-optimizations
800 Common Report Var(flag_unsafe_math_optimizations)
801 Allow math optimizations that may violate IEEE or ISO standards
804 Common Report Var(flag_unswitch_loops)
805 Perform loop unswitching
808 Common Report Var(flag_unwind_tables)
809 Just generate unwind tables for exception handling
812 Common Report Var(flag_var_tracking) VarExists
813 Perform variable tracking
816 Common Report Var(flag_verbose_asm)
817 Add extra commentary to assembler output
820 Common Report Var(flag_value_profile_transformations)
821 Use expression value profiles in optimizations
824 Common Report Var(flag_web) VarExists
825 Construct webs and split unrelated uses of single variable
828 Common Report Var(flag_wrapv)
829 Assume signed arithmetic overflow wraps around
831 fzero-initialized-in-bss
832 Common Report Var(flag_zero_initialized_in_bss) Init(1)
833 Put zero initialized data in the bss section
836 Common JoinedOrMissing
837 Generate debug information in default format
840 Common JoinedOrMissing
841 Generate debug information in COFF format
844 Common JoinedOrMissing
845 Generate debug information in DWARF v2 format
848 Common JoinedOrMissing
849 Generate debug information in default extended format
852 Common JoinedOrMissing
853 Generate debug information in STABS format
856 Common JoinedOrMissing
857 Generate debug information in extended STABS format
860 Common JoinedOrMissing
861 Generate debug information in VMS format
864 Common JoinedOrMissing
865 Generate debug information in XCOFF format
868 Common JoinedOrMissing
869 Generate debug information in extended XCOFF format
875 Common Joined Separate
876 -o <file> Place output into <file>
879 Common Var(profile_flag)
880 Enable function profiling
884 Issue warnings needed for strict compliance to the standard
888 Like -pedantic but issue them as errors
891 Common Var(quiet_flag)
892 Do not display functions compiled or elapsed time
895 Common Var(version_flag)
896 Display the compiler's version
899 Common Var(inhibit_warnings)
902 ; This comment is to ensure we retain the blank line above.