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 Var(extra_warnings) Warning
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 UInteger Warning Undocumented
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>
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 Common RejectNegative Joined Var(flag_dump_final_insns)
548 -fdump-final-insns=filename Dump to filename the insns at the end of translation
551 Common Report Var(flag_dump_noaddr)
552 Suppress output of addresses in debugging dumps
555 Common Report Var(flag_dump_unnumbered) VarExists
556 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
558 fdump-unnumbered-links
559 Common Report Var(flag_dump_unnumbered_links) VarExists
560 Suppress output of previous and next insn numbers in debugging dumps
563 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
564 Enable CFI tables via GAS assembler directives.
567 Common Report Var(flag_early_inlining) Init(1) Optimization
568 Perform early inlining
570 feliminate-dwarf2-dups
571 Common Report Var(flag_eliminate_dwarf2_dups)
572 Perform DWARF2 duplicate elimination
575 Common Report Var(flag_ipa_sra) Init(0) Optimization
576 Perform interprocedural reduction of aggregates
578 feliminate-unused-debug-symbols
579 Common Report Var(flag_debug_only_used_symbols)
580 Perform unused type elimination in debug info
582 feliminate-unused-debug-types
583 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
584 Perform unused type elimination in debug info
586 femit-class-debug-always
587 Common Report Var(flag_emit_class_debug_always) Init(0)
588 Do not suppress C++ class debug information.
591 Common Report Var(flag_enable_icf_debug)
592 Generate debug information to support Identical Code Folding (ICF)
595 Common Report Var(flag_exceptions) Optimization
596 Enable exception handling
598 fexpensive-optimizations
599 Common Report Var(flag_expensive_optimizations) Optimization
600 Perform a number of minor, expensive optimizations
603 Common Joined RejectNegative
604 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
610 Common Report Var(flag_finite_math_only) Optimization
611 Assume no NaNs or infinities are generated
614 Common Joined RejectNegative
615 -ffixed-<register> Mark <register> as being unavailable to the compiler
618 Common Report Var(flag_float_store) Optimization
619 Don't allocate floats and doubles in extended-precision registers
623 Does nothing. Preserved for backward compatibility.
626 Common Report Var(flag_forward_propagate) Optimization
627 Perform a forward propagation pass on RTL
629 ; Nonzero means don't put addresses of constant functions in registers.
630 ; Used for compiling the Unix kernel, where strange substitutions are
631 ; done on the assembly output.
633 Common Report Var(flag_no_function_cse,0)
634 Allow function addresses to be held in registers
637 Common Report Var(flag_function_sections)
638 Place each function into its own section
641 Common Report Var(flag_gcse) Optimization
642 Perform global common subexpression elimination
645 Common Report Var(flag_gcse_lm) Init(1) Optimization
646 Perform enhanced load motion during global common subexpression elimination
649 Common Report Var(flag_gcse_sm) Init(0) Optimization
650 Perform store motion after global common subexpression elimination
653 Common Report Var(flag_gcse_las) Init(0) Optimization
654 Perform redundant load after store elimination in global common subexpression
658 Common Report Var(flag_gcse_after_reload) Optimization
659 Perform global common subexpression elimination after register allocation
662 ; This option is not documented yet as its semantics will change.
664 Common Report Var(flag_graphite)
665 Enable in and out of Graphite representation
668 Common Report Var(flag_graphite_identity) Optimization
669 Enable Graphite Identity transformation
671 floop-parallelize-all
672 Common Report Var(flag_loop_parallelize_all) Optimization
673 Mark all loops as parallel
676 Common Report Var(flag_loop_strip_mine) Optimization
677 Enable Loop Strip Mining transformation
680 Common Report Var(flag_loop_interchange) Optimization
681 Enable Loop Interchange transformation
684 Common Report Var(flag_loop_block) Optimization
685 Enable Loop Blocking transformation
687 fstrict-volatile-bitfields
688 Common Report Var(flag_strict_volatile_bitfields) Init(-1)
689 Force bitfield accesses to match their type width
691 fguess-branch-probability
692 Common Report Var(flag_guess_branch_prob) Optimization
693 Enable guessing of branch probabilities
695 ; Nonzero means ignore `#ident' directives. 0 means handle them.
696 ; Generate position-independent code for executables if possible
697 ; On SVR4 targets, it also controls whether or not to emit a
698 ; string identifying the compiler.
700 Common Report Var(flag_no_ident,0)
701 Process #ident directives
704 Common Report Var(flag_if_conversion) Optimization
705 Perform conversion of conditional jumps to branchless equivalents
708 Common Report Var(flag_if_conversion2) Optimization
709 Perform conversion of conditional jumps to conditional execution
711 ftree-loop-if-convert
712 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
713 Convert conditional jumps in innermost loops to branchless equivalents
715 ftree-loop-if-convert-stores
716 Common Report Var(flag_tree_loop_if_convert_stores) Optimization
717 Also if-convert conditional jumps containing memory writes
719 ; -finhibit-size-directive inhibits output of .size for ELF.
720 ; This is used only for compiling crtstuff.c,
721 ; and it may be extended to other effects
722 ; needed for crtstuff.c on other systems.
723 finhibit-size-directive
724 Common Report Var(flag_inhibit_size_directive)
725 Do not generate .size directives
728 Common Report Var(flag_indirect_inlining)
729 Perform indirect inlining
731 ; Nonzero means that functions declared `inline' will be treated
732 ; as `static'. Prevents generation of zillions of copies of unused
733 ; static inline functions; instead, `inlines' are written out
734 ; only when actually used. Used in conjunction with -g. Also
735 ; does the right thing with #pragma interface.
737 Common Report Var(flag_no_inline,0) Init(0)
738 Pay attention to the \"inline\" keyword
740 finline-small-functions
741 Common Report Var(flag_inline_small_functions) Optimization
742 Integrate simple functions into their callers when code size is known to not growth
745 Common Report Var(flag_inline_functions) Optimization
746 Integrate simple functions into their callers
748 finline-functions-called-once
749 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
750 Integrate functions called once into their callers
753 Common RejectNegative Joined UInteger
756 Common RejectNegative Joined UInteger
757 -finline-limit=<number> Limit the size of inlined functions to <number>
759 finstrument-functions
760 Common Report Var(flag_instrument_function_entry_exit)
761 Instrument function entry and exit with profiling calls
763 finstrument-functions-exclude-function-list=
764 Common RejectNegative Joined
765 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
767 finstrument-functions-exclude-file-list=
768 Common RejectNegative Joined
769 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
772 Common Report Var(flag_ipa_cp) Optimization
773 Perform Interprocedural constant propagation
776 Common Report Var(flag_ipa_cp_clone) Optimization
777 Perform cloning to make Interprocedural constant propagation stronger
780 Common Report Var(flag_ipa_profile) Init(0) Optimization
781 Perform interprocedural profile propagation
784 Common Report Var(flag_ipa_pta) Init(0) Optimization
785 Perform interprocedural points-to analysis
788 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
789 Discover pure and const functions
792 Common Report Var(flag_ipa_reference) Init(0) Optimization
793 Discover readonly and non addressable static variables
796 Common Report Var(flag_ipa_matrix_reorg) Optimization
797 Perform matrix layout flattening and transposing based
798 on profiling information.
801 Common Report Var(flag_ipa_struct_reorg)
802 Perform structure layout optimizations based
803 on profiling information.
806 Common Joined RejectNegative
807 -fira-algorithm=[CB|priority] Set the used IRA algorithm
810 Common Joined RejectNegative
811 -fira-region=[one|all|mixed] Set regions for IRA
814 Common Report Var(flag_ira_coalesce) Init(0)
815 Do optimistic coalescing.
818 Common Report Var(flag_ira_loop_pressure)
819 Use IRA based register pressure calculation
820 in RTL loop optimizations.
822 fira-share-save-slots
823 Common Report Var(flag_ira_share_save_slots) Init(1)
824 Share slots for saving different hard registers.
826 fira-share-spill-slots
827 Common Report Var(flag_ira_share_spill_slots) Init(1)
828 Share stack slots for spilled pseudo-registers.
831 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
832 -fira-verbose=<number> Control IRA's level of diagnostic messages.
835 Common Report Var(flag_ivopts) Init(1) Optimization
836 Optimize induction variables on trees
839 Common Var(flag_jump_tables) Init(1) Optimization
840 Use jump tables for sufficiently large switch statements
842 fkeep-inline-functions
843 Common Report Var(flag_keep_inline_functions)
844 Generate code for functions even if they are fully inlined
847 Common Report Var(flag_keep_static_consts) Init(1)
848 Emit static const variables even if they are not used
851 Common Report Var(flag_leading_underscore) Init(-1)
852 Give external symbols a leading underscore
856 Does nothing. Preserved for backward compatibility.
860 Enable link-time optimization.
862 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
863 flto-compression-level=
864 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
865 -flto-compression-level=<number> Use zlib compression level <number> for IL
868 Common Report Var(flag_lto_report) Init(0) Optimization
869 Report various link-time optimization statistics
872 Common Report Var(flag_errno_math) Init(1) Optimization
873 Set errno after built-in math functions
876 Common Report Var(mem_report)
877 Report on permanent memory allocation
879 ; This will attempt to merge constant section constants, if 1 only
880 ; string constants and constants from constant pool, if 2 also constant
883 Common Report Var(flag_merge_constants,2) Init(1) Optimization
884 Attempt to merge identical constants and constant variables
887 Common Report Var(flag_merge_constants,1) VarExists Optimization
888 Attempt to merge identical constants across compilation units
891 Common Report Var(flag_merge_debug_strings) Init(1)
892 Attempt to merge identical debug strings across compilation units
895 Common RejectNegative Joined UInteger
896 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
899 Common Report Var(flag_modulo_sched) Optimization
900 Perform SMS based modulo scheduling before the first scheduling pass
902 fmodulo-sched-allow-regmoves
903 Common Report Var(flag_modulo_sched_allow_regmoves)
904 Perform SMS based modulo scheduling with register moves allowed
906 fmove-loop-invariants
907 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
908 Move loop invariant computations out of loops
911 Common RejectNegative Report Var(flag_mudflap)
912 Add mudflap bounds-checking instrumentation for single-threaded program
915 Common RejectNegative Report VarExists Var(flag_mudflap,2)
916 Add mudflap bounds-checking instrumentation for multi-threaded program
919 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
920 Ignore read operations when inserting mudflap instrumentation
923 Common Var(flag_dce) Init(1) Optimization
924 Use the RTL dead code elimination pass
927 Common Var(flag_dse) Init(1) Optimization
928 Use the RTL dead store elimination pass
930 freschedule-modulo-scheduled-loops
931 Common Report Var(flag_resched_modulo_sched) Optimization
932 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
935 Common Report Var(flag_non_call_exceptions) Optimization
936 Support synchronous non-call exceptions
939 Common Report Var(flag_omit_frame_pointer) Optimization
940 When possible do not generate stack frames
942 foptimize-register-move
943 Common Report Var(flag_regmove) Optimization
944 Do the full register move optimization pass
946 foptimize-sibling-calls
947 Common Report Var(flag_optimize_sibling_calls) Optimization
948 Optimize sibling and tail recursive calls
951 Common Report Var(flag_partial_inlining)
952 Perform partial inlining
955 Common Report Var(pre_ipa_mem_report)
956 Report on memory allocation before interprocedural optimization
959 Common Report Var(post_ipa_mem_report)
960 Report on memory allocation before interprocedural optimization
963 Common Report Var(flag_pack_struct) Optimization
964 Pack structure members together without holes
967 Common RejectNegative Joined UInteger Optimization
968 -fpack-struct=<number> Set initial maximum structure member alignment
971 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
972 Return small aggregates in memory, not registers
975 Common Report Var(flag_peel_loops) Optimization
979 Common Report Var(flag_no_peephole,0) Optimization
980 Enable machine specific peephole optimizations
983 Common Report Var(flag_peephole2) Optimization
984 Enable an RTL peephole pass before sched2
987 Common Report Var(flag_pic,2)
988 Generate position-independent code if possible (large mode)
991 Common Report Var(flag_pie,2)
992 Generate position-independent code for executables if possible (large mode)
995 Common Report Var(flag_pic,1) VarExists
996 Generate position-independent code if possible (small mode)
999 Common Report Var(flag_pie,1) VarExists
1000 Generate position-independent code for executables if possible (small mode)
1003 Common Joined RejectNegative
1004 Specify a plugin to load
1007 Common Joined RejectNegative
1008 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
1010 fpredictive-commoning
1011 Common Report Var(flag_predictive_commoning) Optimization
1012 Run predictive commoning optimization.
1014 fprefetch-loop-arrays
1015 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
1016 Generate prefetch instructions, if available, for arrays in loops
1019 Common Report Var(profile_flag)
1020 Enable basic program profiling code
1023 Common Report Var(profile_arc_flag)
1024 Insert arc-based program profiling code
1027 Common Joined RejectNegative
1028 Set the top-level directory for storing the profile data.
1029 The default is 'pwd'.
1032 Common Report Var(flag_profile_correction)
1033 Enable correction of flow inconsistent profile data input
1037 Enable common options for generating profile info for profile feedback directed optimizations
1040 Common Joined RejectNegative
1041 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1044 Common Var(flag_profile_use)
1045 Enable common options for performing profile feedback directed optimizations
1048 Common Joined RejectNegative
1049 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1052 Common Report Var(flag_profile_values)
1053 Insert code to profile values of expressions
1059 Common Joined RejectNegative
1060 -frandom-seed=<string> Make compile reproducible using <string>
1062 ; This switch causes the command line that was used to create an
1063 ; object file to be recorded into the object file. The exact format
1064 ; of this recording is target and binary file format dependent.
1065 ; It is related to the -fverbose-asm switch, but that switch only
1066 ; records information in the assembler output file as comments, so
1067 ; they never reach the object file.
1068 frecord-gcc-switches
1069 Common Report Var(flag_record_gcc_switches)
1070 Record gcc command line switches in the object file.
1073 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
1074 Return small aggregates in registers
1077 Common Report Var(flag_regmove) Optimization
1078 Enables a register move optimization
1081 Common Report Var(flag_rename_registers) Init(2) Optimization
1082 Perform a register renaming optimization pass
1085 Common Report Var(flag_reorder_blocks) Optimization
1086 Reorder basic blocks to improve code placement
1088 freorder-blocks-and-partition
1089 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1090 Reorder basic blocks and partition into hot and cold sections
1093 Common Report Var(flag_reorder_functions) Optimization
1094 Reorder functions to improve code placement
1096 frerun-cse-after-loop
1097 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
1098 Add a common subexpression elimination pass after loop optimizations
1102 Does nothing. Preserved for backward compatibility.
1105 Common Report Var(flag_rounding_math) Optimization
1106 Disable optimizations that assume default FP rounding behavior
1109 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1110 Enable scheduling across basic blocks
1113 Common Report Var(flag_sched_pressure) Init(0) Optimization
1114 Enable register pressure sensitive insn scheduling
1117 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1118 Allow speculative motion of non-loads
1121 Common Report Var(flag_schedule_speculative_load) Optimization
1122 Allow speculative motion of some loads
1124 fsched-spec-load-dangerous
1125 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1126 Allow speculative motion of more loads
1129 Common RejectNegative Joined
1130 -fsched-verbose=<number> Set the verbosity level of the scheduler
1132 fsched2-use-superblocks
1133 Common Report Var(flag_sched2_use_superblocks) Optimization
1134 If scheduling post reload, do superblock scheduling
1138 Does nothing. Preserved for backward compatibility.
1141 Common Report Var(flag_schedule_insns) Optimization
1142 Reschedule instructions before register allocation
1145 Common Report Var(flag_schedule_insns_after_reload) Optimization
1146 Reschedule instructions after register allocation
1148 ; This flag should be on when a target implements non-trivial
1149 ; scheduling hooks, maybe saving some information for its own sake.
1150 ; On IA64, for example, this is used for correct bundling.
1151 fselective-scheduling
1152 Common Report Var(flag_selective_scheduling) Optimization
1153 Schedule instructions using selective scheduling algorithm
1155 fselective-scheduling2
1156 Common Report Var(flag_selective_scheduling2) Optimization
1157 Run selective scheduling after reload
1159 fsel-sched-pipelining
1160 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1161 Perform software pipelining of inner loops during selective scheduling
1163 fsel-sched-pipelining-outer-loops
1164 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1165 Perform software pipelining of outer loops during selective scheduling
1167 fsel-sched-reschedule-pipelined
1168 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1169 Reschedule pipelined regions without pipelining
1171 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1172 ; of stalled insns into the ready list.
1173 fsched-stalled-insns
1174 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1175 Allow premature scheduling of queued insns
1177 fsched-stalled-insns=
1178 Common RejectNegative Joined UInteger
1179 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
1181 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1182 ; be examined for a dependency on a stalled insn that is candidate for
1183 ; premature removal from the queue of stalled insns into the ready list (has
1184 ; an effect only if the flag 'sched_stalled_insns' is set).
1185 fsched-stalled-insns-dep
1186 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1187 Set dependence distance checking in premature scheduling of queued insns
1189 fsched-stalled-insns-dep=
1190 Common RejectNegative Joined UInteger
1191 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
1193 fsched-group-heuristic
1194 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1195 Enable the group heuristic in the scheduler
1197 fsched-critical-path-heuristic
1198 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1199 Enable the critical path heuristic in the scheduler
1201 fsched-spec-insn-heuristic
1202 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1203 Enable the speculative instruction heuristic in the scheduler
1205 fsched-rank-heuristic
1206 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1207 Enable the rank heuristic in the scheduler
1209 fsched-last-insn-heuristic
1210 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1211 Enable the last instruction heuristic in the scheduler
1213 fsched-dep-count-heuristic
1214 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1215 Enable the dependent count heuristic in the scheduler
1218 Common Report Var(flag_section_anchors) Optimization
1219 Access data in the same section from shared anchor points
1223 Does nothing. Preserved for backward compatibility.
1226 Common Report Var(flag_zee) Init(0)
1227 Eliminate redundant zero extensions on targets that support implicit extensions.
1230 Common Report Var(flag_show_column) Init(1)
1231 Show column numbers in diagnostics, when available. Default on
1234 Common Report Var(flag_signaling_nans) Optimization
1235 Disable optimizations observable by IEEE signaling NaNs
1238 Common Report Var(flag_signed_zeros) Init(1) Optimization
1239 Disable floating point optimizations that ignore the IEEE signedness of zero
1241 fsingle-precision-constant
1242 Common Report Var(flag_single_precision_constant) Optimization
1243 Convert floating point constants to single precision constants
1245 fsplit-ivs-in-unroller
1246 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1247 Split lifetimes of induction variables when loops are unrolled
1250 Common Report Var(flag_split_wide_types) Optimization
1251 Split wide types into independent registers
1253 fvariable-expansion-in-unroller
1254 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1255 Apply variable expansion when loops are unrolled
1258 Common Report RejectNegative Joined
1259 -fstack-check=[no|generic|specific] Insert stack checking code into the program
1263 Insert stack checking code into the program. Same as -fstack-check=specific
1268 fstack-limit-register=
1269 Common RejectNegative Joined
1270 -fstack-limit-register=<register> Trap if the stack goes past <register>
1272 fstack-limit-symbol=
1273 Common RejectNegative Joined
1274 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
1277 Common Report Var(flag_stack_protect, 1)
1278 Use propolice as a stack protection method
1280 fstack-protector-all
1281 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1282 Use a stack protection method for every function
1286 Does nothing. Preserved for backward compatibility.
1288 ; Nonzero if we should do (language-dependent) alias analysis.
1289 ; Typically, this analysis will assume that expressions of certain
1290 ; types do not alias expressions of certain other types. Only used
1291 ; if alias analysis (in general) is enabled.
1293 Common Report Var(flag_strict_aliasing) Optimization
1294 Assume strict aliasing rules apply
1297 Common Report Var(flag_strict_overflow)
1298 Treat signed overflow as undefined
1301 Common Report Var(flag_syntax_only)
1302 Check for syntax errors, then stop
1305 Common Report Var(flag_test_coverage)
1306 Create data files needed by \"gcov\"
1309 Common Report Var(flag_thread_jumps) Optimization
1310 Perform jump threading optimizations
1313 Common Report Var(time_report)
1314 Report the time taken by each compiler pass
1317 Common Joined RejectNegative
1318 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
1321 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1322 Reorder top level functions, variables, and asms
1325 Common Report Var(flag_tracer)
1326 Perform superblock formation via tail duplication
1328 ; Zero means that floating-point math operations cannot generate a
1329 ; (user-visible) trap. This is the case, for example, in nonstop
1330 ; IEEE 754 arithmetic.
1332 Common Report Var(flag_trapping_math) Init(1) Optimization
1333 Assume floating-point operations can trap
1336 Common Report Var(flag_trapv) Optimization
1337 Trap for signed overflow in addition, subtraction and multiplication
1340 Common Report Var(flag_tree_ccp) Optimization
1341 Enable SSA-CCP optimization on trees
1344 Common Report Var(flag_tree_bit_ccp) Optimization
1345 Enable SSA-BIT-CCP optimization on trees
1349 Does nothing. Preserved for backward compatibility.
1352 Common Report Var(flag_tree_ch) Optimization
1353 Enable loop header copying on trees
1356 Common Report Var(flag_tree_copyrename) Optimization
1357 Replace SSA temporaries with better names in copies
1360 Common Report Var(flag_tree_copy_prop) Optimization
1361 Enable copy propagation on trees
1363 ftree-store-copy-prop
1365 Does nothing. Preserved for backward compatibility.
1368 Common Report Var(flag_tree_cselim) Init(2) Optimization
1369 Transform condition stores into unconditional ones
1371 ftree-switch-conversion
1372 Common Report Var(flag_tree_switch_conversion) Optimization
1373 Perform conversions of switch initializations.
1376 Common Report Var(flag_tree_dce) Optimization
1377 Enable SSA dead code elimination optimization on trees
1379 ftree-dominator-opts
1380 Common Report Var(flag_tree_dom) Optimization
1381 Enable dominator optimizations
1384 Common Report Var(flag_tree_dse) Optimization
1385 Enable dead store elimination
1388 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1389 Enable forward propagation on trees
1392 Common Report Var(flag_tree_fre) Optimization
1393 Enable Full Redundancy Elimination (FRE) on trees
1395 ftree-loop-distribution
1396 Common Report Var(flag_tree_loop_distribution) Optimization
1397 Enable loop distribution on trees
1399 ftree-loop-distribute-patterns
1400 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1401 Enable loop distribution for patterns transformed into a library call
1404 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1405 Enable loop invariant motion on trees
1408 Common Report Var(flag_tree_loop_linear) Optimization
1409 Enable linear loop transforms on trees
1412 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1413 Create canonical induction variables in loops
1416 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1417 Enable loop optimizations on tree level
1419 ftree-parallelize-loops=
1420 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
1421 Enable automatic parallelization of loops
1424 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1425 Enable hoisting loads from conditional pointers.
1428 Common Report Var(flag_tree_pre) Optimization
1429 Enable SSA-PRE optimization on trees
1432 Common Report Var(flag_tree_pta) Init(1) Optimization
1433 Perform function-local points-to analysis on trees.
1436 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1437 Enable reassociation on tree level
1441 Does nothing. Preserved for backward compatibility.
1444 Common Report Var(flag_tree_sink) Optimization
1445 Enable SSA code sinking on trees
1448 Common Report Var(flag_tree_sra) Optimization
1449 Perform scalar replacement of aggregates
1452 Common Report Var(flag_tree_ter) Init(1) Optimization
1453 Replace temporary expressions in the SSA->normal pass
1456 Common Report Var(flag_tree_live_range_split) Optimization
1457 Perform live range splitting during the SSA->normal pass
1460 Common Report Var(flag_tree_vrp) Init(0) Optimization
1461 Perform Value Range Propagation on trees
1464 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1465 Compile whole compilation unit at a time
1468 Common Report Var(flag_unroll_loops) Optimization
1469 Perform loop unrolling when iteration count is known
1472 Common Report Var(flag_unroll_all_loops) Optimization
1473 Perform loop unrolling for all loops
1475 ; Nonzero means that loop optimizer may assume that the induction variables
1476 ; that control loops do not overflow and that the loops with nontrivial
1477 ; exit condition are not infinite
1478 funsafe-loop-optimizations
1479 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1480 Allow loop optimizations to assume that the loops behave in normal way
1483 Common Report Var(flag_associative_math)
1484 Allow optimization for floating-point arithmetic which may change the
1485 result of the operation due to rounding.
1488 Common Report Var(flag_reciprocal_math)
1489 Same as -fassociative-math for expressions which include division.
1491 ; Nonzero means that unsafe floating-point math optimizations are allowed
1492 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
1493 ; are allowed to assume that their arguments and results are "normal"
1494 ; (e.g., nonnegative for SQRT).
1495 funsafe-math-optimizations
1496 Common Report Var(flag_unsafe_math_optimizations) Optimization
1497 Allow math optimizations that may violate IEEE or ISO standards
1500 Common Report Var(flag_unswitch_loops) Optimization
1501 Perform loop unswitching
1504 Common Report Var(flag_unwind_tables) Optimization
1505 Just generate unwind tables for exception handling
1511 Common Report Var(flag_var_tracking) VarExists Optimization
1512 Perform variable tracking
1514 fvar-tracking-assignments
1515 Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1516 Perform variable tracking by annotating assignments
1518 fvar-tracking-assignments-toggle
1519 Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1520 Toggle -fvar-tracking-assignments
1522 fvar-tracking-uninit
1523 Common Report Var(flag_var_tracking_uninit) Optimization
1524 Perform variable tracking and also tag variables that are uninitialized
1527 Common Report Var(flag_tree_vectorize) Optimization
1528 Enable loop vectorization on trees
1531 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1532 Enable basic block vectorization (SLP) on trees
1535 Common Report Var(flag_vect_cost_model) Optimization
1536 Enable use of cost model in vectorization
1538 ftree-vect-loop-version
1539 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1540 Enable loop versioning when doing loop vectorization on trees
1542 ftree-vectorizer-verbose=
1543 Common RejectNegative Joined
1544 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
1547 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1548 Enable copy propagation of scalar-evolution information.
1550 ; -fverbose-asm causes extra commentary information to be produced in
1551 ; the generated assembly code (to make it more readable). This option
1552 ; is generally only of use to those who actually need to read the
1553 ; generated assembly code (perhaps while debugging the compiler itself).
1554 ; -fno-verbose-asm, the default, causes the extra information
1555 ; to not be added and is useful when comparing two assembler files.
1557 Common Report Var(flag_verbose_asm)
1558 Add extra commentary to assembler output
1561 Common Joined RejectNegative
1562 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1566 Common Report Var(flag_value_profile_transformations) Optimization
1567 Use expression value profiles in optimizations
1570 Common Report Var(flag_web) Init(2) Optimization
1571 Construct webs and split unrelated uses of single variable
1575 Enable partitioned link-time optimization
1578 Common RejectNegative UInteger Joined Var(flag_whopr)
1579 Enable partitioned link-time optimization with specified number of parallel jobs
1581 ftree-builtin-call-dce
1582 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1583 Enable conditional dead code elimination for builtin calls
1586 Common Report Var(flag_whole_program) Init(0) Optimization
1587 Perform whole program optimizations
1590 Common Report Var(flag_wrapv) Optimization
1591 Assume signed arithmetic overflow wraps around
1593 fzero-initialized-in-bss
1594 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1595 Put zero initialized data in the bss section
1598 Common JoinedOrMissing
1599 Generate debug information in default format
1602 Common JoinedOrMissing Negative(gdwarf-)
1603 Generate debug information in COFF format
1606 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1607 Generate debug information in DWARF v2 (or later) format
1610 Common JoinedOrMissing
1611 Generate debug information in default extended format
1614 Common JoinedOrMissing Negative(gstabs+)
1615 Generate debug information in STABS format
1618 Common JoinedOrMissing Negative(gvms)
1619 Generate debug information in extended STABS format
1622 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1623 Emit DWARF additions beyond selected version
1626 Common Report RejectNegative Var(dwarf_strict,1) VarExists
1627 Don't emit DWARF additions beyond selected version
1630 Common Report Var(flag_gtoggle)
1631 Toggle debug information generation
1634 Common JoinedOrMissing Negative(gxcoff)
1635 Generate debug information in VMS format
1638 Common JoinedOrMissing Negative(gxcoff+)
1639 Generate debug information in XCOFF format
1642 Common JoinedOrMissing Negative(gcoff)
1643 Generate debug information in extended XCOFF format
1646 Common Joined Var(plugindir_string) Init(0)
1647 -iplugindir=<dir> Set <dir> to be the default plugin directory
1650 Driver Joined Separate
1652 no-canonical-prefixes
1662 Common Driver Joined Separate MissingArgError(missing filename after %qs)
1663 -o <file> Place output into <file>
1666 Common Var(profile_flag)
1667 Enable function profiling
1670 Driver Var(pass_exit_codes)
1673 Common Var(pedantic)
1674 Issue warnings needed for strict compliance to the standard
1678 Like -pedantic but issue them as errors
1684 Driver Var(use_pipes)
1687 Driver JoinedOrMissing Var(print_file_name)
1689 print-libgcc-file-name
1692 print-multi-directory
1693 Driver Var(print_multi_directory)
1696 Driver Var(print_multi_lib)
1698 print-multi-os-directory
1699 Driver Var(print_multi_os_directory)
1702 Driver JoinedOrMissing Var(print_prog_name)
1705 Driver Var(print_search_dirs)
1708 Driver Var(print_sysroot)
1710 print-sysroot-headers-suffix
1711 Driver Var(print_sysroot_headers_suffix)
1714 Common Var(quiet_flag) RejectDriver
1715 Do not display functions compiled or elapsed time
1724 Driver Var(report_times)
1727 Driver JoinedOrMissing
1733 Common Var(version_flag) RejectDriver
1734 Display the compiler's version
1737 Common Var(inhibit_warnings)
1741 Driver Separate Var(wrapper_string)
1744 Driver Joined Separate
1747 Common RejectNegative Negative(pie)
1748 Create a shared library
1767 ; Documented for Fortran, but always accepted by driver.
1773 Common RejectNegative Negative(shared)
1774 Create a position independent executable
1776 ; This comment is to ensure we retain the blank line above.