1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4 ; Free Software Foundation, Inc.
6 ; This file is part of GCC.
8 ; GCC is free software; you can redistribute it and/or modify it under
9 ; the terms of the GNU General Public License as published by the Free
10 ; Software Foundation; either version 3, or (at your option) any later
13 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
18 ; You should have received a copy of the GNU General Public License
19 ; along with GCC; see the file COPYING3. If not see
20 ; <http://www.gnu.org/licenses/>.
22 ; See the GCC internals manual (options.texi) for a description of this file's format.
24 ; Please try to keep this file in ASCII collating order.
31 Display this information
34 Common Driver Report Joined
35 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
39 Alias for --help=target
41 ;; The following four entries are to work around the gcc driver
42 ;; program's insatiable desire to turn options starting with a
43 ;; double dash (--) into options starting with a dash f (-f).
45 Common Driver Var(help_flag)
58 --param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
61 Driver JoinedOrMissing
67 Driver Joined Separate
73 Driver Joined Separate
76 Common JoinedOrMissing Optimization
77 -O<number> Set optimization level to <number>
81 Optimize for space rather than speed
85 Optimize for speed disregarding exact standards compliance
91 Common RejectNegative Warning Alias(Wextra)
92 This switch is deprecated; use -Wextra instead
95 Driver JoinedOrMissing
98 Driver JoinedOrMissing
101 Driver JoinedOrMissing
104 Common Var(warn_aggregate_return) Warning
105 Warn about returning structures, unions or arrays
108 Common Var(warn_array_bounds) Warning
109 Warn if an array is accessed out of bounds
112 Common Var(warn_attributes) Init(1) Warning
113 Warn about inappropriate attribute usage
116 Common Var(warn_cast_align) Warning
117 Warn about pointer casts which increase alignment
120 Common Var(warn_cpp) Init(1) Warning
121 Warn when a #warning directive is encountered
123 Wdeprecated-declarations
124 Common Var(warn_deprecated_decl) Init(1) Warning
125 Warn about uses of __attribute__((deprecated)) declarations
127 Wdisabled-optimization
128 Common Var(warn_disabled_optimization) Warning
129 Warn when an optimization pass is disabled
132 Common Var(warnings_are_errors)
133 Treat all warnings as errors
137 Treat specified warning as error
140 Common Var(extra_warnings) Warning
141 Print extra (possibly unwanted) warnings
144 Common Var(flag_fatal_errors)
145 Exit on the first error occurred
148 Common RejectNegative Joined UInteger
149 -Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
152 Common Var(warn_inline) Warning
153 Warn when an inlined function cannot be inlined
156 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
159 Common RejectNegative Joined UInteger Warning
160 -Wlarger-than=<number> Warn if an object is larger than <number> bytes
162 Wunsafe-loop-optimizations
163 Common Var(warn_unsafe_loop_optimizations) Warning
164 Warn if the loop cannot be optimized due to nontrivial assumptions.
167 Common Var(warn_missing_noreturn) Warning
168 Warn about functions which might be candidates for __attribute__((noreturn))
171 Common Var(warn_mudflap) Init(1) Warning
172 Warn about constructs not instrumented by -fmudflap
175 Common Var(warn_overflow) Init(1) Warning
176 Warn about overflow in arithmetic expressions
179 Common Var(warn_packed) Warning
180 Warn when the packed attribute has no effect on struct layout
183 Common Var(warn_padded) Warning
184 Warn when padding is required to align structure members
187 Common Var(warn_shadow) Warning
188 Warn when one local variable shadows another
191 Common Var(warn_stack_protect) Warning
192 Warn when not issuing stack smashing protection for some reason
196 Warn about code which might break strict aliasing rules
199 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
200 Warn about code which might break strict aliasing rules
204 Warn about optimizations that assume that signed overflow is undefined
207 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
208 Warn about optimizations that assume that signed overflow is undefined
210 Wsuggest-attribute=const
211 Common Var(warn_suggest_attribute_const) Warning
212 Warn about functions which might be candidates for __attribute__((const))
214 Wsuggest-attribute=pure
215 Common Var(warn_suggest_attribute_pure) Warning
216 Warn about functions which might be candidates for __attribute__((pure))
218 Wsuggest-attribute=noreturn
219 Common Var(warn_suggest_attribute_noreturn) Warning
220 Warn about functions which might be candidates for __attribute__((noreturn))
223 Common Var(warn_switch) Warning
224 Warn about enumerated switches, with no default, missing a case
227 Common Var(warn_switch_default) Warning
228 Warn about enumerated switches missing a \"default:\" statement
231 Common Var(warn_switch_enum) Warning
232 Warn about all enumerated switches missing a specific case
235 Common Var(warn_system_headers) Warning
236 Do not suppress warnings from system headers
239 Common Var(warn_trampolines) Warning
240 Warn whenever a trampoline is generated
243 Common Var(warn_type_limits) Init(-1) Warning
244 Warn if a comparison is always true or always false due to the limited range of the data type
247 Common Var(warn_uninitialized) Init(-1) Warning
248 Warn about uninitialized automatic variables
252 Does nothing. Preserved for backward compatibility.
255 Common Var(warn_unused) Init(0) Warning
256 Enable all -Wunused- warnings
258 Wunused-but-set-parameter
259 Common Var(warn_unused_but_set_parameter) Init(-1) Warning
260 Warn when a function parameter is only set, otherwise unused
262 Wunused-but-set-variable
263 Common Var(warn_unused_but_set_variable) Init(-1) Warning
264 Warn when a variable is only set, otherwise unused
267 Common Var(warn_unused_function) Init(-1) Warning
268 Warn when a function is unused
271 Common Var(warn_unused_label) Init(-1) Warning
272 Warn when a label is unused
275 Common Var(warn_unused_parameter) Init(-1) Warning
276 Warn when a function parameter is unused
279 Common Var(warn_unused_value) Init(-1) Warning
280 Warn when an expression value is unused
283 Common Var(warn_unused_variable) Init(-1) Warning
284 Warn when a variable is unused
287 Common Var(warn_coverage_mismatch) Init(1) Warning
288 Warn in case profiles in -fprofile-use do not match
301 -aux-info <file> Emit declaration information into <file>
304 Common Joined Alias(aux-info)
307 Common Separate RejectDriver
310 Common Separate RejectDriver
313 Driver Var(combine_flag)
320 -d<letters> Enable dumps from specific passes of the compiler
324 -dumpbase <file> Set the file basename to be used for dumps
328 -dumpdir <dir> Set the directory name to be used for dumps
339 ; The version of the C++ ABI in use. The following values are allowed:
341 ; 0: The version of the ABI believed most conformant with the C++ ABI
342 ; specification. This ABI may change as bugs are discovered and fixed.
343 ; Therefore, 0 will not necessarily indicate the same ABI in different
346 ; 1: The version of the ABI first used in G++ 3.2.
348 ; 2: The version of the ABI first used in G++ 3.4 (and current default).
350 ; 3: The version of the ABI that fixes the missing underscore
351 ; in template non-type arguments of pointer type.
353 ; 4: The version of the ABI that introduces unambiguous mangling of
356 ; Additional positive integers will be assigned as new versions of
357 ; the ABI become the default version of the ABI.
359 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
362 Common Report Var(align_functions,0) Optimization UInteger
363 Align the start of functions
366 Common RejectNegative Joined UInteger
369 Common Report Var(align_jumps,0) Optimization UInteger
370 Align labels which are only reached by jumping
373 Common RejectNegative Joined UInteger
376 Common Report Var(align_labels,0) Optimization UInteger
380 Common RejectNegative Joined UInteger
383 Common Report Var(align_loops) Optimization UInteger
384 Align the start of loops
387 Common RejectNegative Joined UInteger
391 Does nothing. Preserved for backward compatibility.
395 Does nothing. Preserved for backward compatibility.
397 fargument-noalias-global
399 Does nothing. Preserved for backward compatibility.
401 fargument-noalias-anything
403 Does nothing. Preserved for backward compatibility.
405 fasynchronous-unwind-tables
406 Common Report Var(flag_asynchronous_unwind_tables) Optimization
407 Generate unwind tables that are exact at each instruction boundary
410 Common Report Var(flag_auto_inc_dec) Init(1)
411 Generate auto-inc/dec instructions
413 ; -fcheck-bounds causes gcc to generate array bounds checks.
414 ; For C, C++ and ObjC: defaults off.
415 ; For Java: defaults to on.
416 ; For Fortran: defaults to off.
418 Common Report Var(flag_bounds_check)
419 Generate code to check bounds before indexing arrays
422 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
423 Replace add, compare, branch with branch on count register
425 fbranch-probabilities
426 Common Report Var(flag_branch_probabilities) Optimization
427 Use profiling information for branch probabilities
429 fbranch-target-load-optimize
430 Common Report Var(flag_branch_target_load_optimize) Optimization
431 Perform branch target load optimization before prologue / epilogue threading
433 fbranch-target-load-optimize2
434 Common Report Var(flag_branch_target_load_optimize2) Optimization
435 Perform branch target load optimization after prologue / epilogue threading
438 Common Report Var(flag_btr_bb_exclusive) Optimization
439 Restrict target load migration not to re-use registers in any basic block
442 Common Joined RejectNegative
443 -fcall-saved-<register> Mark <register> as being preserved across functions
446 Common Joined RejectNegative
447 -fcall-used-<register> Mark <register> as being corrupted by function calls
449 ; Nonzero for -fcaller-saves: allocate values in regs that need to
450 ; be saved across function calls, if that produces overall better code.
451 ; Optional now, so people can test it.
453 Common Report Var(flag_caller_saves) Optimization
454 Save registers around function calls
457 Common Report Var(flag_check_data_deps)
458 Compare the results of several data dependence analyzers.
461 Common Report Var(flag_no_common,0) Optimization
462 Do not put uninitialized globals in the common section
466 ; Converted by the driver to -fcompare-debug= options.
469 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
470 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
472 fcompare-debug-second
473 Common Driver RejectNegative Var(flag_compare_debug)
474 Run only the second compilation of -fcompare-debug
477 Common Var(flag_conserve_stack) Optimization
478 Do not perform optimizations increasing noticeably stack usage
481 Common Report Var(flag_cprop_registers) Optimization
482 Perform a register copy-propagation optimization pass
485 Common Report Var(flag_crossjumping) Optimization
486 Perform cross-jumping optimization
489 Common Report Var(flag_cse_follow_jumps) Optimization
490 When running CSE, follow jumps to their targets
494 Does nothing. Preserved for backward compatibility.
497 Common Report Var(flag_cx_limited_range) Optimization
498 Omit range reduction step when performing complex division
501 Common Report Var(flag_cx_fortran_rules) Optimization
502 Complex multiplication and division follow Fortran rules
505 Common Report Var(flag_data_sections) Optimization
506 Place data items into their own section
510 List all available debugging counters with their limits and counts.
513 Common RejectNegative Joined
514 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
517 Common Joined RejectNegative
518 Map one directory name to another in debug information
520 ; Nonzero for -fdefer-pop: don't pop args after each function call
521 ; instead save them up to pop many calls' args with one insns.
523 Common Report Var(flag_defer_pop) Optimization
524 Defer popping functions args from stack until later
527 Common Report Var(flag_delayed_branch) Optimization
528 Attempt to fill delay slots of branch instructions
530 fdelete-null-pointer-checks
531 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
532 Delete useless null pointer checks
534 fdiagnostics-show-location=
535 Common Joined RejectNegative
536 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
538 fdiagnostics-show-option
539 Common Var(flag_diagnostics_show_option) Init(1)
540 Amend appropriate diagnostic messages with the command line option that controls them
543 Common Joined RejectNegative
544 -fdump-<type> Dump various compiler internals to a file
547 Driver RejectNegative
550 Common RejectNegative Joined Var(flag_dump_final_insns)
551 -fdump-final-insns=filename Dump to filename the insns at the end of translation
554 Common Report Var(flag_dump_noaddr)
555 Suppress output of addresses in debugging dumps
558 Common Report Var(flag_dump_unnumbered) VarExists
559 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
561 fdump-unnumbered-links
562 Common Report Var(flag_dump_unnumbered_links) VarExists
563 Suppress output of previous and next insn numbers in debugging dumps
566 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
567 Enable CFI tables via GAS assembler directives.
570 Common Report Var(flag_early_inlining) Init(1) Optimization
571 Perform early inlining
573 feliminate-dwarf2-dups
574 Common Report Var(flag_eliminate_dwarf2_dups)
575 Perform DWARF2 duplicate elimination
578 Common Report Var(flag_ipa_sra) Init(0) Optimization
579 Perform interprocedural reduction of aggregates
581 feliminate-unused-debug-symbols
582 Common Report Var(flag_debug_only_used_symbols)
583 Perform unused type elimination in debug info
585 feliminate-unused-debug-types
586 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
587 Perform unused type elimination in debug info
589 femit-class-debug-always
590 Common Report Var(flag_emit_class_debug_always) Init(0)
591 Do not suppress C++ class debug information.
594 Common Report Var(flag_enable_icf_debug)
595 Generate debug information to support Identical Code Folding (ICF)
598 Common Report Var(flag_exceptions) Optimization
599 Enable exception handling
601 fexpensive-optimizations
602 Common Report Var(flag_expensive_optimizations) Optimization
603 Perform a number of minor, expensive optimizations
606 Common Joined RejectNegative
607 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
613 Common Report Var(flag_finite_math_only) Optimization
614 Assume no NaNs or infinities are generated
617 Common Joined RejectNegative
618 -ffixed-<register> Mark <register> as being unavailable to the compiler
621 Common Report Var(flag_float_store) Optimization
622 Don't allocate floats and doubles in extended-precision registers
626 Does nothing. Preserved for backward compatibility.
629 Common Report Var(flag_forward_propagate) Optimization
630 Perform a forward propagation pass on RTL
632 ; Nonzero means don't put addresses of constant functions in registers.
633 ; Used for compiling the Unix kernel, where strange substitutions are
634 ; done on the assembly output.
636 Common Report Var(flag_no_function_cse,0)
637 Allow function addresses to be held in registers
640 Common Report Var(flag_function_sections)
641 Place each function into its own section
644 Common Report Var(flag_gcse) Optimization
645 Perform global common subexpression elimination
648 Common Report Var(flag_gcse_lm) Init(1) Optimization
649 Perform enhanced load motion during global common subexpression elimination
652 Common Report Var(flag_gcse_sm) Init(0) Optimization
653 Perform store motion after global common subexpression elimination
656 Common Report Var(flag_gcse_las) Init(0) Optimization
657 Perform redundant load after store elimination in global common subexpression
661 Common Report Var(flag_gcse_after_reload) Optimization
662 Perform global common subexpression elimination after register allocation
665 ; This option is not documented yet as its semantics will change.
667 Common Report Var(flag_graphite)
668 Enable in and out of Graphite representation
671 Common Report Var(flag_graphite_identity) Optimization
672 Enable Graphite Identity transformation
674 floop-parallelize-all
675 Common Report Var(flag_loop_parallelize_all) Optimization
676 Mark all loops as parallel
679 Common Report Var(flag_loop_strip_mine) Optimization
680 Enable Loop Strip Mining transformation
683 Common Report Var(flag_loop_interchange) Optimization
684 Enable Loop Interchange transformation
687 Common Report Var(flag_loop_block) Optimization
688 Enable Loop Blocking transformation
690 fstrict-volatile-bitfields
691 Common Report Var(flag_strict_volatile_bitfields) Init(-1)
692 Force bitfield accesses to match their type width
694 fguess-branch-probability
695 Common Report Var(flag_guess_branch_prob) Optimization
696 Enable guessing of branch probabilities
698 ; Nonzero means ignore `#ident' directives. 0 means handle them.
699 ; Generate position-independent code for executables if possible
700 ; On SVR4 targets, it also controls whether or not to emit a
701 ; string identifying the compiler.
703 Common Report Var(flag_no_ident,0)
704 Process #ident directives
707 Common Report Var(flag_if_conversion) Optimization
708 Perform conversion of conditional jumps to branchless equivalents
711 Common Report Var(flag_if_conversion2) Optimization
712 Perform conversion of conditional jumps to conditional execution
714 ftree-loop-if-convert
715 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
716 Convert conditional jumps in innermost loops to branchless equivalents
718 ftree-loop-if-convert-stores
719 Common Report Var(flag_tree_loop_if_convert_stores) Optimization
720 Also if-convert conditional jumps containing memory writes
722 ; -finhibit-size-directive inhibits output of .size for ELF.
723 ; This is used only for compiling crtstuff.c,
724 ; and it may be extended to other effects
725 ; needed for crtstuff.c on other systems.
726 finhibit-size-directive
727 Common Report Var(flag_inhibit_size_directive)
728 Do not generate .size directives
731 Common Report Var(flag_indirect_inlining)
732 Perform indirect inlining
734 ; Nonzero means that functions declared `inline' will be treated
735 ; as `static'. Prevents generation of zillions of copies of unused
736 ; static inline functions; instead, `inlines' are written out
737 ; only when actually used. Used in conjunction with -g. Also
738 ; does the right thing with #pragma interface.
740 Common Report Var(flag_no_inline,0) Init(0)
741 Pay attention to the \"inline\" keyword
743 finline-small-functions
744 Common Report Var(flag_inline_small_functions) Optimization
745 Integrate simple functions into their callers when code size is known to not growth
748 Common Report Var(flag_inline_functions) Optimization
749 Integrate simple functions into their callers
751 finline-functions-called-once
752 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
753 Integrate functions called once into their callers
756 Common RejectNegative Joined Alias(finline-limit=)
759 Common RejectNegative Joined UInteger
760 -finline-limit=<number> Limit the size of inlined functions to <number>
762 finstrument-functions
763 Common Report Var(flag_instrument_function_entry_exit)
764 Instrument function entry and exit with profiling calls
766 finstrument-functions-exclude-function-list=
767 Common RejectNegative Joined
768 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
770 finstrument-functions-exclude-file-list=
771 Common RejectNegative Joined
772 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
775 Common Report Var(flag_ipa_cp) Optimization
776 Perform Interprocedural constant propagation
779 Common Report Var(flag_ipa_cp_clone) Optimization
780 Perform cloning to make Interprocedural constant propagation stronger
783 Common Report Var(flag_ipa_profile) Init(0) Optimization
784 Perform interprocedural profile propagation
787 Common Report Var(flag_ipa_pta) Init(0) Optimization
788 Perform interprocedural points-to analysis
791 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
792 Discover pure and const functions
795 Common Report Var(flag_ipa_reference) Init(0) Optimization
796 Discover readonly and non addressable static variables
799 Common Report Var(flag_ipa_matrix_reorg) Optimization
800 Perform matrix layout flattening and transposing based
801 on profiling information.
804 Common Report Var(flag_ipa_struct_reorg)
805 Perform structure layout optimizations based
806 on profiling information.
809 Common Joined RejectNegative
810 -fira-algorithm=[CB|priority] Set the used IRA algorithm
813 Common Joined RejectNegative
814 -fira-region=[one|all|mixed] Set regions for IRA
817 Common Report Var(flag_ira_coalesce) Init(0)
818 Do optimistic coalescing.
821 Common Report Var(flag_ira_loop_pressure)
822 Use IRA based register pressure calculation
823 in RTL loop optimizations.
825 fira-share-save-slots
826 Common Report Var(flag_ira_share_save_slots) Init(1)
827 Share slots for saving different hard registers.
829 fira-share-spill-slots
830 Common Report Var(flag_ira_share_spill_slots) Init(1)
831 Share stack slots for spilled pseudo-registers.
834 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
835 -fira-verbose=<number> Control IRA's level of diagnostic messages.
838 Common Report Var(flag_ivopts) Init(1) Optimization
839 Optimize induction variables on trees
842 Common Var(flag_jump_tables) Init(1) Optimization
843 Use jump tables for sufficiently large switch statements
845 fkeep-inline-functions
846 Common Report Var(flag_keep_inline_functions)
847 Generate code for functions even if they are fully inlined
850 Common Report Var(flag_keep_static_consts) Init(1)
851 Emit static const variables even if they are not used
854 Common Report Var(flag_leading_underscore) Init(-1)
855 Give external symbols a leading underscore
859 Does nothing. Preserved for backward compatibility.
863 Enable link-time optimization.
865 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
866 flto-compression-level=
867 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
868 -flto-compression-level=<number> Use zlib compression level <number> for IL
871 Common Report Var(flag_lto_report) Init(0) Optimization
872 Report various link-time optimization statistics
875 Common Report Var(flag_errno_math) Init(1) Optimization
876 Set errno after built-in math functions
879 Common Report Var(mem_report)
880 Report on permanent memory allocation
882 ; This will attempt to merge constant section constants, if 1 only
883 ; string constants and constants from constant pool, if 2 also constant
886 Common Report Var(flag_merge_constants,2) Init(1) Optimization
887 Attempt to merge identical constants and constant variables
890 Common Report Var(flag_merge_constants,1) VarExists Optimization
891 Attempt to merge identical constants across compilation units
894 Common Report Var(flag_merge_debug_strings) Init(1)
895 Attempt to merge identical debug strings across compilation units
898 Common RejectNegative Joined UInteger
899 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
902 Common Report Var(flag_modulo_sched) Optimization
903 Perform SMS based modulo scheduling before the first scheduling pass
905 fmodulo-sched-allow-regmoves
906 Common Report Var(flag_modulo_sched_allow_regmoves)
907 Perform SMS based modulo scheduling with register moves allowed
909 fmove-loop-invariants
910 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
911 Move loop invariant computations out of loops
914 Common RejectNegative Report Var(flag_mudflap)
915 Add mudflap bounds-checking instrumentation for single-threaded program
918 Common RejectNegative Report VarExists Var(flag_mudflap,2)
919 Add mudflap bounds-checking instrumentation for multi-threaded program
922 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
923 Ignore read operations when inserting mudflap instrumentation
926 Common Var(flag_dce) Init(1) Optimization
927 Use the RTL dead code elimination pass
930 Common Var(flag_dse) Init(1) Optimization
931 Use the RTL dead store elimination pass
933 freschedule-modulo-scheduled-loops
934 Common Report Var(flag_resched_modulo_sched) Optimization
935 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
938 Common Report Var(flag_non_call_exceptions) Optimization
939 Support synchronous non-call exceptions
942 Common Report Var(flag_omit_frame_pointer) Optimization
943 When possible do not generate stack frames
945 foptimize-register-move
946 Common Report Var(flag_regmove) Optimization
947 Do the full register move optimization pass
949 foptimize-sibling-calls
950 Common Report Var(flag_optimize_sibling_calls) Optimization
951 Optimize sibling and tail recursive calls
954 Common Report Var(flag_partial_inlining)
955 Perform partial inlining
958 Common Report Var(pre_ipa_mem_report)
959 Report on memory allocation before interprocedural optimization
962 Common Report Var(post_ipa_mem_report)
963 Report on memory allocation before interprocedural optimization
966 Common Report Var(flag_pack_struct) Optimization
967 Pack structure members together without holes
970 Common RejectNegative Joined UInteger Optimization
971 -fpack-struct=<number> Set initial maximum structure member alignment
974 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
975 Return small aggregates in memory, not registers
978 Common Report Var(flag_peel_loops) Optimization
982 Common Report Var(flag_no_peephole,0) Optimization
983 Enable machine specific peephole optimizations
986 Common Report Var(flag_peephole2) Optimization
987 Enable an RTL peephole pass before sched2
990 Common Report Var(flag_pic,2)
991 Generate position-independent code if possible (large mode)
994 Common Report Var(flag_pie,2)
995 Generate position-independent code for executables if possible (large mode)
998 Common Report Var(flag_pic,1) VarExists
999 Generate position-independent code if possible (small mode)
1002 Common Report Var(flag_pie,1) VarExists
1003 Generate position-independent code for executables if possible (small mode)
1006 Common Joined RejectNegative
1007 Specify a plugin to load
1010 Common Joined RejectNegative
1011 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
1013 fpredictive-commoning
1014 Common Report Var(flag_predictive_commoning) Optimization
1015 Run predictive commoning optimization.
1017 fprefetch-loop-arrays
1018 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
1019 Generate prefetch instructions, if available, for arrays in loops
1022 Common Report Var(profile_flag)
1023 Enable basic program profiling code
1026 Common Report Var(profile_arc_flag)
1027 Insert arc-based program profiling code
1030 Common Joined RejectNegative
1031 Set the top-level directory for storing the profile data.
1032 The default is 'pwd'.
1035 Common Report Var(flag_profile_correction)
1036 Enable correction of flow inconsistent profile data input
1040 Enable common options for generating profile info for profile feedback directed optimizations
1043 Common Joined RejectNegative
1044 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1047 Common Var(flag_profile_use)
1048 Enable common options for performing profile feedback directed optimizations
1051 Common Joined RejectNegative
1052 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1055 Common Report Var(flag_profile_values)
1056 Insert code to profile values of expressions
1062 Common Joined RejectNegative
1063 -frandom-seed=<string> Make compile reproducible using <string>
1065 ; This switch causes the command line that was used to create an
1066 ; object file to be recorded into the object file. The exact format
1067 ; of this recording is target and binary file format dependent.
1068 ; It is related to the -fverbose-asm switch, but that switch only
1069 ; records information in the assembler output file as comments, so
1070 ; they never reach the object file.
1071 frecord-gcc-switches
1072 Common Report Var(flag_record_gcc_switches)
1073 Record gcc command line switches in the object file.
1076 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
1077 Return small aggregates in registers
1080 Common Report Var(flag_regmove) Optimization
1081 Enables a register move optimization
1084 Common Report Var(flag_rename_registers) Init(2) Optimization
1085 Perform a register renaming optimization pass
1088 Common Report Var(flag_reorder_blocks) Optimization
1089 Reorder basic blocks to improve code placement
1091 freorder-blocks-and-partition
1092 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1093 Reorder basic blocks and partition into hot and cold sections
1096 Common Report Var(flag_reorder_functions) Optimization
1097 Reorder functions to improve code placement
1099 frerun-cse-after-loop
1100 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
1101 Add a common subexpression elimination pass after loop optimizations
1105 Does nothing. Preserved for backward compatibility.
1108 Common Report Var(flag_rounding_math) Optimization
1109 Disable optimizations that assume default FP rounding behavior
1112 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1113 Enable scheduling across basic blocks
1116 Common Report Var(flag_sched_pressure) Init(0) Optimization
1117 Enable register pressure sensitive insn scheduling
1120 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1121 Allow speculative motion of non-loads
1124 Common Report Var(flag_schedule_speculative_load) Optimization
1125 Allow speculative motion of some loads
1127 fsched-spec-load-dangerous
1128 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1129 Allow speculative motion of more loads
1132 Common RejectNegative Joined
1133 -fsched-verbose=<number> Set the verbosity level of the scheduler
1135 fsched2-use-superblocks
1136 Common Report Var(flag_sched2_use_superblocks) Optimization
1137 If scheduling post reload, do superblock scheduling
1141 Does nothing. Preserved for backward compatibility.
1144 Common Report Var(flag_schedule_insns) Optimization
1145 Reschedule instructions before register allocation
1148 Common Report Var(flag_schedule_insns_after_reload) Optimization
1149 Reschedule instructions after register allocation
1151 ; This flag should be on when a target implements non-trivial
1152 ; scheduling hooks, maybe saving some information for its own sake.
1153 ; On IA64, for example, this is used for correct bundling.
1154 fselective-scheduling
1155 Common Report Var(flag_selective_scheduling) Optimization
1156 Schedule instructions using selective scheduling algorithm
1158 fselective-scheduling2
1159 Common Report Var(flag_selective_scheduling2) Optimization
1160 Run selective scheduling after reload
1162 fsel-sched-pipelining
1163 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1164 Perform software pipelining of inner loops during selective scheduling
1166 fsel-sched-pipelining-outer-loops
1167 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1168 Perform software pipelining of outer loops during selective scheduling
1170 fsel-sched-reschedule-pipelined
1171 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1172 Reschedule pipelined regions without pipelining
1174 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1175 ; of stalled insns into the ready list.
1176 fsched-stalled-insns
1177 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1178 Allow premature scheduling of queued insns
1180 fsched-stalled-insns=
1181 Common RejectNegative Joined UInteger
1182 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
1184 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1185 ; be examined for a dependency on a stalled insn that is candidate for
1186 ; premature removal from the queue of stalled insns into the ready list (has
1187 ; an effect only if the flag 'sched_stalled_insns' is set).
1188 fsched-stalled-insns-dep
1189 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1190 Set dependence distance checking in premature scheduling of queued insns
1192 fsched-stalled-insns-dep=
1193 Common RejectNegative Joined UInteger
1194 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
1196 fsched-group-heuristic
1197 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1198 Enable the group heuristic in the scheduler
1200 fsched-critical-path-heuristic
1201 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1202 Enable the critical path heuristic in the scheduler
1204 fsched-spec-insn-heuristic
1205 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1206 Enable the speculative instruction heuristic in the scheduler
1208 fsched-rank-heuristic
1209 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1210 Enable the rank heuristic in the scheduler
1212 fsched-last-insn-heuristic
1213 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1214 Enable the last instruction heuristic in the scheduler
1216 fsched-dep-count-heuristic
1217 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1218 Enable the dependent count heuristic in the scheduler
1221 Common Report Var(flag_section_anchors) Optimization
1222 Access data in the same section from shared anchor points
1226 Does nothing. Preserved for backward compatibility.
1229 Common Report Var(flag_zee) Init(0)
1230 Eliminate redundant zero extensions on targets that support implicit extensions.
1233 Common Report Var(flag_show_column) Init(1)
1234 Show column numbers in diagnostics, when available. Default on
1237 Common Report Var(flag_signaling_nans) Optimization
1238 Disable optimizations observable by IEEE signaling NaNs
1241 Common Report Var(flag_signed_zeros) Init(1) Optimization
1242 Disable floating point optimizations that ignore the IEEE signedness of zero
1244 fsingle-precision-constant
1245 Common Report Var(flag_single_precision_constant) Optimization
1246 Convert floating point constants to single precision constants
1248 fsplit-ivs-in-unroller
1249 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1250 Split lifetimes of induction variables when loops are unrolled
1253 Common Report Var(flag_split_wide_types) Optimization
1254 Split wide types into independent registers
1256 fvariable-expansion-in-unroller
1257 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1258 Apply variable expansion when loops are unrolled
1261 Common Report RejectNegative Joined
1262 -fstack-check=[no|generic|specific] Insert stack checking code into the program
1265 Common Alias(fstack-check=, specific, no)
1266 Insert stack checking code into the program. Same as -fstack-check=specific
1271 fstack-limit-register=
1272 Common RejectNegative Joined
1273 -fstack-limit-register=<register> Trap if the stack goes past <register>
1275 fstack-limit-symbol=
1276 Common RejectNegative Joined
1277 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
1280 Common Report Var(flag_stack_protect, 1)
1281 Use propolice as a stack protection method
1283 fstack-protector-all
1284 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1285 Use a stack protection method for every function
1288 Common RejectNegative Var(flag_stack_usage)
1289 Output stack usage information on a per-function basis
1293 Does nothing. Preserved for backward compatibility.
1295 ; Nonzero if we should do (language-dependent) alias analysis.
1296 ; Typically, this analysis will assume that expressions of certain
1297 ; types do not alias expressions of certain other types. Only used
1298 ; if alias analysis (in general) is enabled.
1300 Common Report Var(flag_strict_aliasing) Optimization
1301 Assume strict aliasing rules apply
1304 Common Report Var(flag_strict_overflow)
1305 Treat signed overflow as undefined
1308 Common Report Var(flag_syntax_only)
1309 Check for syntax errors, then stop
1312 Common Report Var(flag_test_coverage)
1313 Create data files needed by \"gcov\"
1316 Common Report Var(flag_thread_jumps) Optimization
1317 Perform jump threading optimizations
1320 Common Report Var(time_report)
1321 Report the time taken by each compiler pass
1324 Common Joined RejectNegative
1325 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
1328 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1329 Reorder top level functions, variables, and asms
1332 Common Report Var(flag_tracer)
1333 Perform superblock formation via tail duplication
1335 ; Zero means that floating-point math operations cannot generate a
1336 ; (user-visible) trap. This is the case, for example, in nonstop
1337 ; IEEE 754 arithmetic.
1339 Common Report Var(flag_trapping_math) Init(1) Optimization
1340 Assume floating-point operations can trap
1343 Common Report Var(flag_trapv) Optimization
1344 Trap for signed overflow in addition, subtraction and multiplication
1347 Common Report Var(flag_tree_ccp) Optimization
1348 Enable SSA-CCP optimization on trees
1351 Common Report Var(flag_tree_bit_ccp) Optimization
1352 Enable SSA-BIT-CCP optimization on trees
1356 Does nothing. Preserved for backward compatibility.
1359 Common Report Var(flag_tree_ch) Optimization
1360 Enable loop header copying on trees
1363 Common Report Var(flag_tree_copyrename) Optimization
1364 Replace SSA temporaries with better names in copies
1367 Common Report Var(flag_tree_copy_prop) Optimization
1368 Enable copy propagation on trees
1370 ftree-store-copy-prop
1372 Does nothing. Preserved for backward compatibility.
1375 Common Report Var(flag_tree_cselim) Init(2) Optimization
1376 Transform condition stores into unconditional ones
1378 ftree-switch-conversion
1379 Common Report Var(flag_tree_switch_conversion) Optimization
1380 Perform conversions of switch initializations.
1383 Common Report Var(flag_tree_dce) Optimization
1384 Enable SSA dead code elimination optimization on trees
1386 ftree-dominator-opts
1387 Common Report Var(flag_tree_dom) Optimization
1388 Enable dominator optimizations
1391 Common Report Var(flag_tree_dse) Optimization
1392 Enable dead store elimination
1395 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1396 Enable forward propagation on trees
1399 Common Report Var(flag_tree_fre) Optimization
1400 Enable Full Redundancy Elimination (FRE) on trees
1402 ftree-loop-distribution
1403 Common Report Var(flag_tree_loop_distribution) Optimization
1404 Enable loop distribution on trees
1406 ftree-loop-distribute-patterns
1407 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1408 Enable loop distribution for patterns transformed into a library call
1411 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1412 Enable loop invariant motion on trees
1415 Common Report Var(flag_tree_loop_linear) Optimization
1416 Enable linear loop transforms on trees
1419 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1420 Create canonical induction variables in loops
1423 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1424 Enable loop optimizations on tree level
1426 ftree-parallelize-loops=
1427 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
1428 Enable automatic parallelization of loops
1431 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1432 Enable hoisting loads from conditional pointers.
1435 Common Report Var(flag_tree_pre) Optimization
1436 Enable SSA-PRE optimization on trees
1439 Common Report Var(flag_tree_pta) Init(1) Optimization
1440 Perform function-local points-to analysis on trees.
1443 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1444 Enable reassociation on tree level
1448 Does nothing. Preserved for backward compatibility.
1451 Common Report Var(flag_tree_sink) Optimization
1452 Enable SSA code sinking on trees
1455 Common Report Var(flag_tree_sra) Optimization
1456 Perform scalar replacement of aggregates
1459 Common Report Var(flag_tree_ter) Init(1) Optimization
1460 Replace temporary expressions in the SSA->normal pass
1463 Common Report Var(flag_tree_live_range_split) Optimization
1464 Perform live range splitting during the SSA->normal pass
1467 Common Report Var(flag_tree_vrp) Init(0) Optimization
1468 Perform Value Range Propagation on trees
1471 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1472 Compile whole compilation unit at a time
1475 Common Report Var(flag_unroll_loops) Optimization
1476 Perform loop unrolling when iteration count is known
1479 Common Report Var(flag_unroll_all_loops) Optimization
1480 Perform loop unrolling for all loops
1482 ; Nonzero means that loop optimizer may assume that the induction variables
1483 ; that control loops do not overflow and that the loops with nontrivial
1484 ; exit condition are not infinite
1485 funsafe-loop-optimizations
1486 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1487 Allow loop optimizations to assume that the loops behave in normal way
1490 Common Report Var(flag_associative_math)
1491 Allow optimization for floating-point arithmetic which may change the
1492 result of the operation due to rounding.
1495 Common Report Var(flag_reciprocal_math)
1496 Same as -fassociative-math for expressions which include division.
1498 ; Nonzero means that unsafe floating-point math optimizations are allowed
1499 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
1500 ; are allowed to assume that their arguments and results are "normal"
1501 ; (e.g., nonnegative for SQRT).
1502 funsafe-math-optimizations
1503 Common Report Var(flag_unsafe_math_optimizations) Optimization
1504 Allow math optimizations that may violate IEEE or ISO standards
1507 Common Report Var(flag_unswitch_loops) Optimization
1508 Perform loop unswitching
1511 Common Report Var(flag_unwind_tables) Optimization
1512 Just generate unwind tables for exception handling
1518 Common Report Var(flag_var_tracking) VarExists Optimization
1519 Perform variable tracking
1521 fvar-tracking-assignments
1522 Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1523 Perform variable tracking by annotating assignments
1525 fvar-tracking-assignments-toggle
1526 Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1527 Toggle -fvar-tracking-assignments
1529 fvar-tracking-uninit
1530 Common Report Var(flag_var_tracking_uninit) Optimization
1531 Perform variable tracking and also tag variables that are uninitialized
1534 Common Report Var(flag_tree_vectorize) Optimization
1535 Enable loop vectorization on trees
1538 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1539 Enable basic block vectorization (SLP) on trees
1542 Common Report Var(flag_vect_cost_model) Optimization
1543 Enable use of cost model in vectorization
1545 ftree-vect-loop-version
1546 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1547 Enable loop versioning when doing loop vectorization on trees
1549 ftree-vectorizer-verbose=
1550 Common RejectNegative Joined
1551 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
1554 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1555 Enable copy propagation of scalar-evolution information.
1557 ; -fverbose-asm causes extra commentary information to be produced in
1558 ; the generated assembly code (to make it more readable). This option
1559 ; is generally only of use to those who actually need to read the
1560 ; generated assembly code (perhaps while debugging the compiler itself).
1561 ; -fno-verbose-asm, the default, causes the extra information
1562 ; to not be added and is useful when comparing two assembler files.
1564 Common Report Var(flag_verbose_asm)
1565 Add extra commentary to assembler output
1568 Common Joined RejectNegative
1569 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1573 Common Report Var(flag_value_profile_transformations) Optimization
1574 Use expression value profiles in optimizations
1577 Common Report Var(flag_web) Init(2) Optimization
1578 Construct webs and split unrelated uses of single variable
1582 Enable partitioned link-time optimization
1585 Common RejectNegative Joined Var(flag_whopr)
1586 Partitioned link-time optimization with number of parallel jobs or jobserver.
1588 ftree-builtin-call-dce
1589 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1590 Enable conditional dead code elimination for builtin calls
1593 Common Report Var(flag_whole_program) Init(0) Optimization
1594 Perform whole program optimizations
1597 Common Report Var(flag_wrapv) Optimization
1598 Assume signed arithmetic overflow wraps around
1600 fzero-initialized-in-bss
1601 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1602 Put zero initialized data in the bss section
1605 Common JoinedOrMissing
1606 Generate debug information in default format
1609 Common JoinedOrMissing Negative(gdwarf-)
1610 Generate debug information in COFF format
1613 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1614 Generate debug information in DWARF v2 (or later) format
1617 Common JoinedOrMissing
1618 Generate debug information in default extended format
1621 Common JoinedOrMissing Negative(gstabs+)
1622 Generate debug information in STABS format
1625 Common JoinedOrMissing Negative(gvms)
1626 Generate debug information in extended STABS format
1629 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1630 Emit DWARF additions beyond selected version
1633 Common Report RejectNegative Var(dwarf_strict,1) VarExists
1634 Don't emit DWARF additions beyond selected version
1637 Common Report Var(flag_gtoggle)
1638 Toggle debug information generation
1641 Common JoinedOrMissing Negative(gxcoff)
1642 Generate debug information in VMS format
1645 Common JoinedOrMissing Negative(gxcoff+)
1646 Generate debug information in XCOFF format
1649 Common JoinedOrMissing Negative(gcoff)
1650 Generate debug information in extended XCOFF format
1653 Common Joined Var(plugindir_string) Init(0)
1654 -iplugindir=<dir> Set <dir> to be the default plugin directory
1657 Driver Joined Separate
1659 no-canonical-prefixes
1669 Common Driver Joined Separate MissingArgError(missing filename after %qs)
1670 -o <file> Place output into <file>
1673 Common Var(profile_flag)
1674 Enable function profiling
1677 Driver Var(pass_exit_codes)
1680 Common Var(pedantic)
1681 Issue warnings needed for strict compliance to the standard
1685 Like -pedantic but issue them as errors
1691 Driver Var(use_pipes)
1694 Driver JoinedOrMissing Var(print_file_name)
1696 print-libgcc-file-name
1699 print-multi-directory
1700 Driver Var(print_multi_directory)
1703 Driver Var(print_multi_lib)
1705 print-multi-os-directory
1706 Driver Var(print_multi_os_directory)
1709 Driver JoinedOrMissing Var(print_prog_name)
1712 Driver Var(print_search_dirs)
1715 Driver Var(print_sysroot)
1717 print-sysroot-headers-suffix
1718 Driver Var(print_sysroot_headers_suffix)
1721 Common Var(quiet_flag) RejectDriver
1722 Do not display functions compiled or elapsed time
1731 Driver Var(report_times)
1734 Driver JoinedOrMissing
1740 Common Var(version_flag) RejectDriver
1741 Display the compiler's version
1744 Common Var(inhibit_warnings)
1748 Driver Separate Var(wrapper_string)
1751 Driver Joined Separate
1754 Common RejectNegative Negative(pie)
1755 Create a shared library
1761 Driver Separate Alias(specs=)
1774 ; Documented for Fortran, but always accepted by driver.
1780 Common RejectNegative Negative(shared)
1781 Create a position independent executable
1783 ; This comment is to ensure we retain the blank line above.