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 Common JoinedOrMissing Optimization
74 -O<number> Set optimization level to <number>
78 Optimize for space rather than speed
82 Optimize for speed disregarding exact standards compliance
88 Common RejectNegative Var(extra_warnings) Warning
89 This switch is deprecated; use -Wextra instead
92 Driver JoinedOrMissing
95 Driver JoinedOrMissing
98 Driver JoinedOrMissing
101 Common Var(warn_aggregate_return) Warning
102 Warn about returning structures, unions or arrays
105 Common Var(warn_array_bounds) Warning
106 Warn if an array is accessed out of bounds
109 Common Var(warn_attributes) Init(1) Warning
110 Warn about inappropriate attribute usage
113 Common Var(warn_cast_align) Warning
114 Warn about pointer casts which increase alignment
117 Common Var(warn_cpp) Init(1) Warning
118 Warn when a #warning directive is encountered
120 Wdeprecated-declarations
121 Common Var(warn_deprecated_decl) Init(1) Warning
122 Warn about uses of __attribute__((deprecated)) declarations
124 Wdisabled-optimization
125 Common Var(warn_disabled_optimization) Warning
126 Warn when an optimization pass is disabled
129 Common Var(warnings_are_errors)
130 Treat all warnings as errors
134 Treat specified warning as error
137 Common Var(extra_warnings) Warning
138 Print extra (possibly unwanted) warnings
141 Common Var(flag_fatal_errors)
142 Exit on the first error occurred
145 Common RejectNegative Joined UInteger
146 -Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
149 Common Var(warn_inline) Warning
150 Warn when an inlined function cannot be inlined
153 Common RejectNegative Joined UInteger Warning Undocumented
156 Common RejectNegative Joined UInteger Warning
157 -Wlarger-than=<number> Warn if an object is larger than <number> bytes
159 Wunsafe-loop-optimizations
160 Common Var(warn_unsafe_loop_optimizations) Warning
161 Warn if the loop cannot be optimized due to nontrivial assumptions.
164 Common Var(warn_missing_noreturn) Warning
165 Warn about functions which might be candidates for __attribute__((noreturn))
168 Common Var(warn_mudflap) Init(1) Warning
169 Warn about constructs not instrumented by -fmudflap
172 Common Var(warn_overflow) Init(1) Warning
173 Warn about overflow in arithmetic expressions
176 Common Var(warn_packed) Warning
177 Warn when the packed attribute has no effect on struct layout
180 Common Var(warn_padded) Warning
181 Warn when padding is required to align structure members
184 Common Var(warn_shadow) Warning
185 Warn when one local variable shadows another
188 Common Var(warn_stack_protect) Warning
189 Warn when not issuing stack smashing protection for some reason
193 Warn about code which might break strict aliasing rules
196 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
197 Warn about code which might break strict aliasing rules
201 Warn about optimizations that assume that signed overflow is undefined
204 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
205 Warn about optimizations that assume that signed overflow is undefined
207 Wsuggest-attribute=const
208 Common Var(warn_suggest_attribute_const) Warning
209 Warn about functions which might be candidates for __attribute__((const))
211 Wsuggest-attribute=pure
212 Common Var(warn_suggest_attribute_pure) Warning
213 Warn about functions which might be candidates for __attribute__((pure))
215 Wsuggest-attribute=noreturn
216 Common Var(warn_suggest_attribute_noreturn) Warning
217 Warn about functions which might be candidates for __attribute__((noreturn))
220 Common Var(warn_switch) Warning
221 Warn about enumerated switches, with no default, missing a case
224 Common Var(warn_switch_default) Warning
225 Warn about enumerated switches missing a \"default:\" statement
228 Common Var(warn_switch_enum) Warning
229 Warn about all enumerated switches missing a specific case
232 Common Var(warn_system_headers) Warning
233 Do not suppress warnings from system headers
236 Common Var(warn_trampolines) Warning
237 Warn whenever a trampoline is generated
240 Common Var(warn_type_limits) Init(-1) Warning
241 Warn if a comparison is always true or always false due to the limited range of the data type
244 Common Var(warn_uninitialized) Init(-1) Warning
245 Warn about uninitialized automatic variables
249 Does nothing. Preserved for backward compatibility.
252 Common Var(warn_unused) Init(0) Warning
253 Enable all -Wunused- warnings
255 Wunused-but-set-parameter
256 Common Var(warn_unused_but_set_parameter) Init(-1) Warning
257 Warn when a function parameter is only set, otherwise unused
259 Wunused-but-set-variable
260 Common Var(warn_unused_but_set_variable) Init(-1) Warning
261 Warn when a variable is only set, otherwise unused
264 Common Var(warn_unused_function) Init(-1) Warning
265 Warn when a function is unused
268 Common Var(warn_unused_label) Init(-1) Warning
269 Warn when a label is unused
272 Common Var(warn_unused_parameter) Init(-1) Warning
273 Warn when a function parameter is unused
276 Common Var(warn_unused_value) Init(-1) Warning
277 Warn when an expression value is unused
280 Common Var(warn_unused_variable) Init(-1) Warning
281 Warn when a variable is unused
284 Common Var(warn_coverage_mismatch) Init(1) Warning
285 Warn in case profiles in -fprofile-use do not match
298 -aux-info <file> Emit declaration information into <file>
304 Common Separate RejectDriver
307 Common Separate RejectDriver
310 Driver Var(combine_flag)
317 -d<letters> Enable dumps from specific passes of the compiler
321 -dumpbase <file> Set the file basename to be used for dumps
325 -dumpdir <dir> Set the directory name to be used for dumps
336 ; The version of the C++ ABI in use. The following values are allowed:
338 ; 0: The version of the ABI believed most conformant with the C++ ABI
339 ; specification. This ABI may change as bugs are discovered and fixed.
340 ; Therefore, 0 will not necessarily indicate the same ABI in different
343 ; 1: The version of the ABI first used in G++ 3.2.
345 ; 2: The version of the ABI first used in G++ 3.4 (and current default).
347 ; 3: The version of the ABI that fixes the missing underscore
348 ; in template non-type arguments of pointer type.
350 ; 4: The version of the ABI that introduces unambiguous mangling of
353 ; Additional positive integers will be assigned as new versions of
354 ; the ABI become the default version of the ABI.
356 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
359 Common Report Var(align_functions,0) Optimization UInteger
360 Align the start of functions
363 Common RejectNegative Joined UInteger
366 Common Report Var(align_jumps,0) Optimization UInteger
367 Align labels which are only reached by jumping
370 Common RejectNegative Joined UInteger
373 Common Report Var(align_labels,0) Optimization UInteger
377 Common RejectNegative Joined UInteger
380 Common Report Var(align_loops) Optimization UInteger
381 Align the start of loops
384 Common RejectNegative Joined UInteger
388 Does nothing. Preserved for backward compatibility.
392 Does nothing. Preserved for backward compatibility.
394 fargument-noalias-global
396 Does nothing. Preserved for backward compatibility.
398 fargument-noalias-anything
400 Does nothing. Preserved for backward compatibility.
402 fasynchronous-unwind-tables
403 Common Report Var(flag_asynchronous_unwind_tables) Optimization
404 Generate unwind tables that are exact at each instruction boundary
407 Common Report Var(flag_auto_inc_dec) Init(1)
408 Generate auto-inc/dec instructions
410 ; -fcheck-bounds causes gcc to generate array bounds checks.
411 ; For C, C++ and ObjC: defaults off.
412 ; For Java: defaults to on.
413 ; For Fortran: defaults to off.
415 Common Report Var(flag_bounds_check)
416 Generate code to check bounds before indexing arrays
419 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
420 Replace add, compare, branch with branch on count register
422 fbranch-probabilities
423 Common Report Var(flag_branch_probabilities) Optimization
424 Use profiling information for branch probabilities
426 fbranch-target-load-optimize
427 Common Report Var(flag_branch_target_load_optimize) Optimization
428 Perform branch target load optimization before prologue / epilogue threading
430 fbranch-target-load-optimize2
431 Common Report Var(flag_branch_target_load_optimize2) Optimization
432 Perform branch target load optimization after prologue / epilogue threading
435 Common Report Var(flag_btr_bb_exclusive) Optimization
436 Restrict target load migration not to re-use registers in any basic block
439 Common Joined RejectNegative
440 -fcall-saved-<register> Mark <register> as being preserved across functions
443 Common Joined RejectNegative
444 -fcall-used-<register> Mark <register> as being corrupted by function calls
446 ; Nonzero for -fcaller-saves: allocate values in regs that need to
447 ; be saved across function calls, if that produces overall better code.
448 ; Optional now, so people can test it.
450 Common Report Var(flag_caller_saves) Optimization
451 Save registers around function calls
454 Common Report Var(flag_check_data_deps)
455 Compare the results of several data dependence analyzers.
458 Common Report Var(flag_no_common,0) Optimization
459 Do not put uninitialized globals in the common section
463 ; Converted by the driver to -fcompare-debug= options.
466 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
467 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
469 fcompare-debug-second
470 Common Driver RejectNegative Var(flag_compare_debug)
471 Run only the second compilation of -fcompare-debug
474 Common Var(flag_conserve_stack) Optimization
475 Do not perform optimizations increasing noticeably stack usage
478 Common Report Var(flag_cprop_registers) Optimization
479 Perform a register copy-propagation optimization pass
482 Common Report Var(flag_crossjumping) Optimization
483 Perform cross-jumping optimization
486 Common Report Var(flag_cse_follow_jumps) Optimization
487 When running CSE, follow jumps to their targets
491 Does nothing. Preserved for backward compatibility.
494 Common Report Var(flag_cx_limited_range) Optimization
495 Omit range reduction step when performing complex division
498 Common Report Var(flag_cx_fortran_rules) Optimization
499 Complex multiplication and division follow Fortran rules
502 Common Report Var(flag_data_sections) Optimization
503 Place data items into their own section
507 List all available debugging counters with their limits and counts.
510 Common RejectNegative Joined
511 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
514 Common Joined RejectNegative
515 Map one directory name to another in debug information
517 ; Nonzero for -fdefer-pop: don't pop args after each function call
518 ; instead save them up to pop many calls' args with one insns.
520 Common Report Var(flag_defer_pop) Optimization
521 Defer popping functions args from stack until later
524 Common Report Var(flag_delayed_branch) Optimization
525 Attempt to fill delay slots of branch instructions
527 fdelete-null-pointer-checks
528 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
529 Delete useless null pointer checks
531 fdiagnostics-show-location=
532 Common Joined RejectNegative
533 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
535 fdiagnostics-show-option
536 Common Var(flag_diagnostics_show_option) Init(1)
537 Amend appropriate diagnostic messages with the command line option that controls them
540 Common Joined RejectNegative
541 -fdump-<type> Dump various compiler internals to a file
544 Common RejectNegative Joined Var(flag_dump_final_insns)
545 -fdump-final-insns=filename Dump to filename the insns at the end of translation
548 Common Report Var(flag_dump_noaddr)
549 Suppress output of addresses in debugging dumps
552 Common Report Var(flag_dump_unnumbered) VarExists
553 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
555 fdump-unnumbered-links
556 Common Report Var(flag_dump_unnumbered_links) VarExists
557 Suppress output of previous and next insn numbers in debugging dumps
560 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
561 Enable CFI tables via GAS assembler directives.
564 Common Report Var(flag_early_inlining) Init(1) Optimization
565 Perform early inlining
567 feliminate-dwarf2-dups
568 Common Report Var(flag_eliminate_dwarf2_dups)
569 Perform DWARF2 duplicate elimination
572 Common Report Var(flag_ipa_sra) Init(0) Optimization
573 Perform interprocedural reduction of aggregates
575 feliminate-unused-debug-symbols
576 Common Report Var(flag_debug_only_used_symbols)
577 Perform unused type elimination in debug info
579 feliminate-unused-debug-types
580 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
581 Perform unused type elimination in debug info
583 femit-class-debug-always
584 Common Report Var(flag_emit_class_debug_always) Init(0)
585 Do not suppress C++ class debug information.
588 Common Report Var(flag_enable_icf_debug)
589 Generate debug information to support Identical Code Folding (ICF)
592 Common Report Var(flag_exceptions) Optimization
593 Enable exception handling
595 fexpensive-optimizations
596 Common Report Var(flag_expensive_optimizations) Optimization
597 Perform a number of minor, expensive optimizations
600 Common Joined RejectNegative
601 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
607 Common Report Var(flag_finite_math_only) Optimization
608 Assume no NaNs or infinities are generated
611 Common Joined RejectNegative
612 -ffixed-<register> Mark <register> as being unavailable to the compiler
615 Common Report Var(flag_float_store) Optimization
616 Don't allocate floats and doubles in extended-precision registers
620 Does nothing. Preserved for backward compatibility.
623 Common Report Var(flag_forward_propagate) Optimization
624 Perform a forward propagation pass on RTL
626 ; Nonzero means don't put addresses of constant functions in registers.
627 ; Used for compiling the Unix kernel, where strange substitutions are
628 ; done on the assembly output.
630 Common Report Var(flag_no_function_cse,0)
631 Allow function addresses to be held in registers
634 Common Report Var(flag_function_sections)
635 Place each function into its own section
638 Common Report Var(flag_gcse) Optimization
639 Perform global common subexpression elimination
642 Common Report Var(flag_gcse_lm) Init(1) Optimization
643 Perform enhanced load motion during global common subexpression elimination
646 Common Report Var(flag_gcse_sm) Init(0) Optimization
647 Perform store motion after global common subexpression elimination
650 Common Report Var(flag_gcse_las) Init(0) Optimization
651 Perform redundant load after store elimination in global common subexpression
655 Common Report Var(flag_gcse_after_reload) Optimization
656 Perform global common subexpression elimination after register allocation
659 ; This option is not documented yet as its semantics will change.
661 Common Report Var(flag_graphite)
662 Enable in and out of Graphite representation
665 Common Report Var(flag_graphite_identity) Optimization
666 Enable Graphite Identity transformation
668 floop-parallelize-all
669 Common Report Var(flag_loop_parallelize_all) Optimization
670 Mark all loops as parallel
673 Common Report Var(flag_loop_strip_mine) Optimization
674 Enable Loop Strip Mining transformation
677 Common Report Var(flag_loop_interchange) Optimization
678 Enable Loop Interchange transformation
681 Common Report Var(flag_loop_block) Optimization
682 Enable Loop Blocking transformation
684 fstrict-volatile-bitfields
685 Common Report Var(flag_strict_volatile_bitfields) Init(-1)
686 Force bitfield accesses to match their type width
688 fguess-branch-probability
689 Common Report Var(flag_guess_branch_prob) Optimization
690 Enable guessing of branch probabilities
692 ; Nonzero means ignore `#ident' directives. 0 means handle them.
693 ; Generate position-independent code for executables if possible
694 ; On SVR4 targets, it also controls whether or not to emit a
695 ; string identifying the compiler.
697 Common Report Var(flag_no_ident,0)
698 Process #ident directives
701 Common Report Var(flag_if_conversion) Optimization
702 Perform conversion of conditional jumps to branchless equivalents
705 Common Report Var(flag_if_conversion2) Optimization
706 Perform conversion of conditional jumps to conditional execution
708 ftree-loop-if-convert
709 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
710 Convert conditional jumps in innermost loops to branchless equivalents
712 ; -finhibit-size-directive inhibits output of .size for ELF.
713 ; This is used only for compiling crtstuff.c,
714 ; and it may be extended to other effects
715 ; needed for crtstuff.c on other systems.
716 finhibit-size-directive
717 Common Report Var(flag_inhibit_size_directive)
718 Do not generate .size directives
721 Common Report Var(flag_indirect_inlining)
722 Perform indirect inlining
724 ; Nonzero means that functions declared `inline' will be treated
725 ; as `static'. Prevents generation of zillions of copies of unused
726 ; static inline functions; instead, `inlines' are written out
727 ; only when actually used. Used in conjunction with -g. Also
728 ; does the right thing with #pragma interface.
730 Common Report Var(flag_no_inline,0) Init(0)
731 Pay attention to the \"inline\" keyword
733 finline-small-functions
734 Common Report Var(flag_inline_small_functions) Optimization
735 Integrate simple functions into their callers when code size is known to not growth
738 Common Report Var(flag_inline_functions) Optimization
739 Integrate simple functions into their callers
741 finline-functions-called-once
742 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
743 Integrate functions called once into their callers
746 Common RejectNegative Joined UInteger
749 Common RejectNegative Joined UInteger
750 -finline-limit=<number> Limit the size of inlined functions to <number>
752 finstrument-functions
753 Common Report Var(flag_instrument_function_entry_exit)
754 Instrument function entry and exit with profiling calls
756 finstrument-functions-exclude-function-list=
757 Common RejectNegative Joined
758 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
760 finstrument-functions-exclude-file-list=
761 Common RejectNegative Joined
762 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
765 Common Report Var(flag_ipa_cp) Optimization
766 Perform Interprocedural constant propagation
769 Common Report Var(flag_ipa_cp_clone) Optimization
770 Perform cloning to make Interprocedural constant propagation stronger
773 Common Report Var(flag_ipa_profile) Init(0) Optimization
774 Perform interprocedural profile propagation
777 Common Report Var(flag_ipa_pta) Init(0) Optimization
778 Perform interprocedural points-to analysis
781 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
782 Discover pure and const functions
785 Common Report Var(flag_ipa_reference) Init(0) Optimization
786 Discover readonly and non addressable static variables
789 Common Report Var(flag_ipa_matrix_reorg) Optimization
790 Perform matrix layout flattening and transposing based
791 on profiling information.
794 Common Report Var(flag_ipa_struct_reorg)
795 Perform structure layout optimizations based
796 on profiling information.
799 Common Joined RejectNegative
800 -fira-algorithm=[CB|priority] Set the used IRA algorithm
803 Common Joined RejectNegative
804 -fira-region=[one|all|mixed] Set regions for IRA
807 Common Report Var(flag_ira_coalesce) Init(0)
808 Do optimistic coalescing.
811 Common Report Var(flag_ira_loop_pressure)
812 Use IRA based register pressure calculation
813 in RTL loop optimizations.
815 fira-share-save-slots
816 Common Report Var(flag_ira_share_save_slots) Init(1)
817 Share slots for saving different hard registers.
819 fira-share-spill-slots
820 Common Report Var(flag_ira_share_spill_slots) Init(1)
821 Share stack slots for spilled pseudo-registers.
824 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
825 -fira-verbose=<number> Control IRA's level of diagnostic messages.
828 Common Report Var(flag_ivopts) Init(1) Optimization
829 Optimize induction variables on trees
832 Common Var(flag_jump_tables) Init(1) Optimization
833 Use jump tables for sufficiently large switch statements
835 fkeep-inline-functions
836 Common Report Var(flag_keep_inline_functions)
837 Generate code for functions even if they are fully inlined
840 Common Report Var(flag_keep_static_consts) Init(1)
841 Emit static const variables even if they are not used
844 Common Report Var(flag_leading_underscore) Init(-1)
845 Give external symbols a leading underscore
849 Does nothing. Preserved for backward compatibility.
853 Enable link-time optimization.
855 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
856 flto-compression-level=
857 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
858 -flto-compression-level=<number> Use zlib compression level <number> for IL
861 Common Report Var(flag_lto_report) Init(0) Optimization
862 Report various link-time optimization statistics
865 Common Report Var(flag_errno_math) Init(1) Optimization
866 Set errno after built-in math functions
869 Common Report Var(mem_report)
870 Report on permanent memory allocation
872 ; This will attempt to merge constant section constants, if 1 only
873 ; string constants and constants from constant pool, if 2 also constant
876 Common Report Var(flag_merge_constants,2) Init(1) Optimization
877 Attempt to merge identical constants and constant variables
880 Common Report Var(flag_merge_constants,1) VarExists Optimization
881 Attempt to merge identical constants across compilation units
884 Common Report Var(flag_merge_debug_strings) Init(1)
885 Attempt to merge identical debug strings across compilation units
888 Common RejectNegative Joined UInteger
889 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
892 Common Report Var(flag_modulo_sched) Optimization
893 Perform SMS based modulo scheduling before the first scheduling pass
895 fmodulo-sched-allow-regmoves
896 Common Report Var(flag_modulo_sched_allow_regmoves)
897 Perform SMS based modulo scheduling with register moves allowed
899 fmove-loop-invariants
900 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
901 Move loop invariant computations out of loops
904 Common RejectNegative Report Var(flag_mudflap)
905 Add mudflap bounds-checking instrumentation for single-threaded program
908 Common RejectNegative Report VarExists Var(flag_mudflap,2)
909 Add mudflap bounds-checking instrumentation for multi-threaded program
912 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
913 Ignore read operations when inserting mudflap instrumentation
916 Common Var(flag_dce) Init(1) Optimization
917 Use the RTL dead code elimination pass
920 Common Var(flag_dse) Init(1) Optimization
921 Use the RTL dead store elimination pass
923 freschedule-modulo-scheduled-loops
924 Common Report Var(flag_resched_modulo_sched) Optimization
925 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
928 Common Report Var(flag_non_call_exceptions) Optimization
929 Support synchronous non-call exceptions
932 Common Report Var(flag_omit_frame_pointer) Optimization
933 When possible do not generate stack frames
935 foptimize-register-move
936 Common Report Var(flag_regmove) Optimization
937 Do the full register move optimization pass
939 foptimize-sibling-calls
940 Common Report Var(flag_optimize_sibling_calls) Optimization
941 Optimize sibling and tail recursive calls
944 Common Report Var(flag_partial_inlining)
945 Perform partial inlining
948 Common Report Var(pre_ipa_mem_report)
949 Report on memory allocation before interprocedural optimization
952 Common Report Var(post_ipa_mem_report)
953 Report on memory allocation before interprocedural optimization
956 Common Report Var(flag_pack_struct) Optimization
957 Pack structure members together without holes
960 Common RejectNegative Joined UInteger Optimization
961 -fpack-struct=<number> Set initial maximum structure member alignment
964 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
965 Return small aggregates in memory, not registers
968 Common Report Var(flag_peel_loops) Optimization
972 Common Report Var(flag_no_peephole,0) Optimization
973 Enable machine specific peephole optimizations
976 Common Report Var(flag_peephole2) Optimization
977 Enable an RTL peephole pass before sched2
980 Common Report Var(flag_pic,2)
981 Generate position-independent code if possible (large mode)
984 Common Report Var(flag_pie,2)
985 Generate position-independent code for executables if possible (large mode)
988 Common Report Var(flag_pic,1) VarExists
989 Generate position-independent code if possible (small mode)
992 Common Report Var(flag_pie,1) VarExists
993 Generate position-independent code for executables if possible (small mode)
996 Common Joined RejectNegative
997 Specify a plugin to load
1000 Common Joined RejectNegative
1001 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
1003 fpredictive-commoning
1004 Common Report Var(flag_predictive_commoning) Optimization
1005 Run predictive commoning optimization.
1007 fprefetch-loop-arrays
1008 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
1009 Generate prefetch instructions, if available, for arrays in loops
1012 Common Report Var(profile_flag)
1013 Enable basic program profiling code
1016 Common Report Var(profile_arc_flag)
1017 Insert arc-based program profiling code
1020 Common Joined RejectNegative
1021 Set the top-level directory for storing the profile data.
1022 The default is 'pwd'.
1025 Common Report Var(flag_profile_correction)
1026 Enable correction of flow inconsistent profile data input
1030 Enable common options for generating profile info for profile feedback directed optimizations
1033 Common Joined RejectNegative
1034 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1037 Common Var(flag_profile_use)
1038 Enable common options for performing profile feedback directed optimizations
1041 Common Joined RejectNegative
1042 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1045 Common Report Var(flag_profile_values)
1046 Insert code to profile values of expressions
1052 Common Joined RejectNegative
1053 -frandom-seed=<string> Make compile reproducible using <string>
1055 ; This switch causes the command line that was used to create an
1056 ; object file to be recorded into the object file. The exact format
1057 ; of this recording is target and binary file format dependent.
1058 ; It is related to the -fverbose-asm switch, but that switch only
1059 ; records information in the assembler output file as comments, so
1060 ; they never reach the object file.
1061 frecord-gcc-switches
1062 Common Report Var(flag_record_gcc_switches)
1063 Record gcc command line switches in the object file.
1066 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
1067 Return small aggregates in registers
1070 Common Report Var(flag_regmove) Optimization
1071 Enables a register move optimization
1074 Common Report Var(flag_rename_registers) Init(2) Optimization
1075 Perform a register renaming optimization pass
1078 Common Report Var(flag_reorder_blocks) Optimization
1079 Reorder basic blocks to improve code placement
1081 freorder-blocks-and-partition
1082 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1083 Reorder basic blocks and partition into hot and cold sections
1086 Common Report Var(flag_reorder_functions) Optimization
1087 Reorder functions to improve code placement
1089 frerun-cse-after-loop
1090 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
1091 Add a common subexpression elimination pass after loop optimizations
1095 Does nothing. Preserved for backward compatibility.
1098 Common Report Var(flag_rounding_math) Optimization
1099 Disable optimizations that assume default FP rounding behavior
1102 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1103 Enable scheduling across basic blocks
1106 Common Report Var(flag_sched_pressure) Init(0) Optimization
1107 Enable register pressure sensitive insn scheduling
1110 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1111 Allow speculative motion of non-loads
1114 Common Report Var(flag_schedule_speculative_load) Optimization
1115 Allow speculative motion of some loads
1117 fsched-spec-load-dangerous
1118 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1119 Allow speculative motion of more loads
1122 Common RejectNegative Joined
1123 -fsched-verbose=<number> Set the verbosity level of the scheduler
1125 fsched2-use-superblocks
1126 Common Report Var(flag_sched2_use_superblocks) Optimization
1127 If scheduling post reload, do superblock scheduling
1131 Does nothing. Preserved for backward compatibility.
1134 Common Report Var(flag_schedule_insns) Optimization
1135 Reschedule instructions before register allocation
1138 Common Report Var(flag_schedule_insns_after_reload) Optimization
1139 Reschedule instructions after register allocation
1141 ; This flag should be on when a target implements non-trivial
1142 ; scheduling hooks, maybe saving some information for its own sake.
1143 ; On IA64, for example, this is used for correct bundling.
1144 fselective-scheduling
1145 Common Report Var(flag_selective_scheduling) Optimization
1146 Schedule instructions using selective scheduling algorithm
1148 fselective-scheduling2
1149 Common Report Var(flag_selective_scheduling2) Optimization
1150 Run selective scheduling after reload
1152 fsel-sched-pipelining
1153 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1154 Perform software pipelining of inner loops during selective scheduling
1156 fsel-sched-pipelining-outer-loops
1157 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1158 Perform software pipelining of outer loops during selective scheduling
1160 fsel-sched-reschedule-pipelined
1161 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1162 Reschedule pipelined regions without pipelining
1164 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1165 ; of stalled insns into the ready list.
1166 fsched-stalled-insns
1167 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1168 Allow premature scheduling of queued insns
1170 fsched-stalled-insns=
1171 Common RejectNegative Joined UInteger
1172 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
1174 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1175 ; be examined for a dependency on a stalled insn that is candidate for
1176 ; premature removal from the queue of stalled insns into the ready list (has
1177 ; an effect only if the flag 'sched_stalled_insns' is set).
1178 fsched-stalled-insns-dep
1179 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1180 Set dependence distance checking in premature scheduling of queued insns
1182 fsched-stalled-insns-dep=
1183 Common RejectNegative Joined UInteger
1184 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
1186 fsched-group-heuristic
1187 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1188 Enable the group heuristic in the scheduler
1190 fsched-critical-path-heuristic
1191 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1192 Enable the critical path heuristic in the scheduler
1194 fsched-spec-insn-heuristic
1195 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1196 Enable the speculative instruction heuristic in the scheduler
1198 fsched-rank-heuristic
1199 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1200 Enable the rank heuristic in the scheduler
1202 fsched-last-insn-heuristic
1203 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1204 Enable the last instruction heuristic in the scheduler
1206 fsched-dep-count-heuristic
1207 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1208 Enable the dependent count heuristic in the scheduler
1211 Common Report Var(flag_section_anchors) Optimization
1212 Access data in the same section from shared anchor points
1216 Does nothing. Preserved for backward compatibility.
1219 Common Report Var(flag_zee) Init(0)
1220 Eliminate redundant zero extensions on targets that support implicit extensions.
1223 Common Report Var(flag_show_column) Init(1)
1224 Show column numbers in diagnostics, when available. Default on
1227 Common Report Var(flag_signaling_nans) Optimization
1228 Disable optimizations observable by IEEE signaling NaNs
1231 Common Report Var(flag_signed_zeros) Init(1) Optimization
1232 Disable floating point optimizations that ignore the IEEE signedness of zero
1234 fsingle-precision-constant
1235 Common Report Var(flag_single_precision_constant) Optimization
1236 Convert floating point constants to single precision constants
1238 fsplit-ivs-in-unroller
1239 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1240 Split lifetimes of induction variables when loops are unrolled
1243 Common Report Var(flag_split_wide_types) Optimization
1244 Split wide types into independent registers
1246 fvariable-expansion-in-unroller
1247 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1248 Apply variable expansion when loops are unrolled
1251 Common Report RejectNegative Joined
1252 -fstack-check=[no|generic|specific] Insert stack checking code into the program
1256 Insert stack checking code into the program. Same as -fstack-check=specific
1261 fstack-limit-register=
1262 Common RejectNegative Joined
1263 -fstack-limit-register=<register> Trap if the stack goes past <register>
1265 fstack-limit-symbol=
1266 Common RejectNegative Joined
1267 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
1270 Common Report Var(flag_stack_protect, 1)
1271 Use propolice as a stack protection method
1273 fstack-protector-all
1274 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1275 Use a stack protection method for every function
1279 Does nothing. Preserved for backward compatibility.
1281 ; Nonzero if we should do (language-dependent) alias analysis.
1282 ; Typically, this analysis will assume that expressions of certain
1283 ; types do not alias expressions of certain other types. Only used
1284 ; if alias analysis (in general) is enabled.
1286 Common Report Var(flag_strict_aliasing) Optimization
1287 Assume strict aliasing rules apply
1290 Common Report Var(flag_strict_overflow)
1291 Treat signed overflow as undefined
1294 Common Report Var(flag_syntax_only)
1295 Check for syntax errors, then stop
1298 Common Report Var(flag_test_coverage)
1299 Create data files needed by \"gcov\"
1302 Common Report Var(flag_thread_jumps) Optimization
1303 Perform jump threading optimizations
1306 Common Report Var(time_report)
1307 Report the time taken by each compiler pass
1310 Common Joined RejectNegative
1311 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
1314 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1315 Reorder top level functions, variables, and asms
1318 Common Report Var(flag_tracer)
1319 Perform superblock formation via tail duplication
1321 ; Zero means that floating-point math operations cannot generate a
1322 ; (user-visible) trap. This is the case, for example, in nonstop
1323 ; IEEE 754 arithmetic.
1325 Common Report Var(flag_trapping_math) Init(1) Optimization
1326 Assume floating-point operations can trap
1329 Common Report Var(flag_trapv) Optimization
1330 Trap for signed overflow in addition, subtraction and multiplication
1333 Common Report Var(flag_tree_ccp) Optimization
1334 Enable SSA-CCP optimization on trees
1337 Common Report Var(flag_tree_bit_ccp) Optimization
1338 Enable SSA-BIT-CCP optimization on trees
1342 Does nothing. Preserved for backward compatibility.
1345 Common Report Var(flag_tree_ch) Optimization
1346 Enable loop header copying on trees
1349 Common Report Var(flag_tree_copyrename) Optimization
1350 Replace SSA temporaries with better names in copies
1353 Common Report Var(flag_tree_copy_prop) Optimization
1354 Enable copy propagation on trees
1356 ftree-store-copy-prop
1358 Does nothing. Preserved for backward compatibility.
1361 Common Report Var(flag_tree_cselim) Init(2) Optimization
1362 Transform condition stores into unconditional ones
1364 ftree-switch-conversion
1365 Common Report Var(flag_tree_switch_conversion) Optimization
1366 Perform conversions of switch initializations.
1369 Common Report Var(flag_tree_dce) Optimization
1370 Enable SSA dead code elimination optimization on trees
1372 ftree-dominator-opts
1373 Common Report Var(flag_tree_dom) Optimization
1374 Enable dominator optimizations
1377 Common Report Var(flag_tree_dse) Optimization
1378 Enable dead store elimination
1381 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1382 Enable forward propagation on trees
1385 Common Report Var(flag_tree_fre) Optimization
1386 Enable Full Redundancy Elimination (FRE) on trees
1388 ftree-loop-distribution
1389 Common Report Var(flag_tree_loop_distribution) Optimization
1390 Enable loop distribution on trees
1392 ftree-loop-distribute-patterns
1393 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1394 Enable loop distribution for patterns transformed into a library call
1397 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1398 Enable loop invariant motion on trees
1401 Common Report Var(flag_tree_loop_linear) Optimization
1402 Enable linear loop transforms on trees
1405 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1406 Create canonical induction variables in loops
1409 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1410 Enable loop optimizations on tree level
1412 ftree-parallelize-loops=
1413 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
1414 Enable automatic parallelization of loops
1417 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1418 Enable hoisting loads from conditional pointers.
1421 Common Report Var(flag_tree_pre) Optimization
1422 Enable SSA-PRE optimization on trees
1425 Common Report Var(flag_tree_pta) Init(1) Optimization
1426 Perform function-local points-to analysis on trees.
1429 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1430 Enable reassociation on tree level
1434 Does nothing. Preserved for backward compatibility.
1437 Common Report Var(flag_tree_sink) Optimization
1438 Enable SSA code sinking on trees
1441 Common Report Var(flag_tree_sra) Optimization
1442 Perform scalar replacement of aggregates
1445 Common Report Var(flag_tree_ter) Init(1) Optimization
1446 Replace temporary expressions in the SSA->normal pass
1449 Common Report Var(flag_tree_live_range_split) Optimization
1450 Perform live range splitting during the SSA->normal pass
1453 Common Report Var(flag_tree_vrp) Init(0) Optimization
1454 Perform Value Range Propagation on trees
1457 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1458 Compile whole compilation unit at a time
1461 Common Report Var(flag_unroll_loops) Optimization
1462 Perform loop unrolling when iteration count is known
1465 Common Report Var(flag_unroll_all_loops) Optimization
1466 Perform loop unrolling for all loops
1468 ; Nonzero means that loop optimizer may assume that the induction variables
1469 ; that control loops do not overflow and that the loops with nontrivial
1470 ; exit condition are not infinite
1471 funsafe-loop-optimizations
1472 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1473 Allow loop optimizations to assume that the loops behave in normal way
1476 Common Report Var(flag_associative_math)
1477 Allow optimization for floating-point arithmetic which may change the
1478 result of the operation due to rounding.
1481 Common Report Var(flag_reciprocal_math)
1482 Same as -fassociative-math for expressions which include division.
1484 ; Nonzero means that unsafe floating-point math optimizations are allowed
1485 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
1486 ; are allowed to assume that their arguments and results are "normal"
1487 ; (e.g., nonnegative for SQRT).
1488 funsafe-math-optimizations
1489 Common Report Var(flag_unsafe_math_optimizations) Optimization
1490 Allow math optimizations that may violate IEEE or ISO standards
1493 Common Report Var(flag_unswitch_loops) Optimization
1494 Perform loop unswitching
1497 Common Report Var(flag_unwind_tables) Optimization
1498 Just generate unwind tables for exception handling
1504 Common Report Var(flag_var_tracking) VarExists Optimization
1505 Perform variable tracking
1507 fvar-tracking-assignments
1508 Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1509 Perform variable tracking by annotating assignments
1511 fvar-tracking-assignments-toggle
1512 Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1513 Toggle -fvar-tracking-assignments
1515 fvar-tracking-uninit
1516 Common Report Var(flag_var_tracking_uninit) Optimization
1517 Perform variable tracking and also tag variables that are uninitialized
1520 Common Report Var(flag_tree_vectorize) Optimization
1521 Enable loop vectorization on trees
1524 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1525 Enable basic block vectorization (SLP) on trees
1528 Common Report Var(flag_vect_cost_model) Optimization
1529 Enable use of cost model in vectorization
1531 ftree-vect-loop-version
1532 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1533 Enable loop versioning when doing loop vectorization on trees
1535 ftree-vectorizer-verbose=
1536 Common RejectNegative Joined
1537 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
1540 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1541 Enable copy propagation of scalar-evolution information.
1543 ; -fverbose-asm causes extra commentary information to be produced in
1544 ; the generated assembly code (to make it more readable). This option
1545 ; is generally only of use to those who actually need to read the
1546 ; generated assembly code (perhaps while debugging the compiler itself).
1547 ; -fno-verbose-asm, the default, causes the extra information
1548 ; to not be added and is useful when comparing two assembler files.
1550 Common Report Var(flag_verbose_asm)
1551 Add extra commentary to assembler output
1554 Common Joined RejectNegative
1555 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1559 Common Report Var(flag_value_profile_transformations) Optimization
1560 Use expression value profiles in optimizations
1563 Common Report Var(flag_web) Init(2) Optimization
1564 Construct webs and split unrelated uses of single variable
1568 Enable partitioned link-time optimization
1571 Common RejectNegative UInteger Joined Var(flag_whopr)
1572 Enable partitioned link-time optimization with specified number of parallel jobs
1574 ftree-builtin-call-dce
1575 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1576 Enable conditional dead code elimination for builtin calls
1579 Common Report Var(flag_whole_program) Init(0) Optimization
1580 Perform whole program optimizations
1583 Common Report Var(flag_wrapv) Optimization
1584 Assume signed arithmetic overflow wraps around
1586 fzero-initialized-in-bss
1587 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1588 Put zero initialized data in the bss section
1591 Common JoinedOrMissing
1592 Generate debug information in default format
1595 Common JoinedOrMissing Negative(gdwarf-)
1596 Generate debug information in COFF format
1599 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1600 Generate debug information in DWARF v2 (or later) format
1603 Common JoinedOrMissing
1604 Generate debug information in default extended format
1607 Common JoinedOrMissing Negative(gstabs+)
1608 Generate debug information in STABS format
1611 Common JoinedOrMissing Negative(gvms)
1612 Generate debug information in extended STABS format
1615 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1616 Emit DWARF additions beyond selected version
1619 Common Report RejectNegative Var(dwarf_strict,1) VarExists
1620 Don't emit DWARF additions beyond selected version
1623 Common Report Var(flag_gtoggle)
1624 Toggle debug information generation
1627 Common JoinedOrMissing Negative(gxcoff)
1628 Generate debug information in VMS format
1631 Common JoinedOrMissing Negative(gxcoff+)
1632 Generate debug information in XCOFF format
1635 Common JoinedOrMissing Negative(gcoff)
1636 Generate debug information in extended XCOFF format
1639 Common Joined Var(plugindir_string) Init(0)
1640 -iplugindir=<dir> Set <dir> to be the default plugin directory
1643 Driver Joined Separate
1645 no-canonical-prefixes
1649 Common Driver Joined Separate MissingArgError(missing filename after %qs)
1650 -o <file> Place output into <file>
1653 Common Var(profile_flag)
1654 Enable function profiling
1657 Driver Var(pass_exit_codes)
1660 Common Var(pedantic)
1661 Issue warnings needed for strict compliance to the standard
1665 Like -pedantic but issue them as errors
1668 Driver Var(use_pipes)
1671 Driver JoinedOrMissing Var(print_file_name)
1673 print-libgcc-file-name
1676 print-multi-directory
1677 Driver Var(print_multi_directory)
1680 Driver Var(print_multi_lib)
1682 print-multi-os-directory
1683 Driver Var(print_multi_os_directory)
1686 Driver JoinedOrMissing Var(print_prog_name)
1689 Driver Var(print_search_dirs)
1692 Driver Var(print_sysroot)
1694 print-sysroot-headers-suffix
1695 Driver Var(print_sysroot_headers_suffix)
1698 Common Var(quiet_flag) RejectDriver
1699 Do not display functions compiled or elapsed time
1708 Driver Var(report_times)
1711 Driver JoinedOrMissing
1717 Common Var(version_flag) RejectDriver
1718 Display the compiler's version
1721 Common Var(inhibit_warnings)
1725 Driver Separate Var(wrapper_string)
1728 Driver Joined Separate
1731 Common RejectNegative Negative(pie)
1732 Create a shared library
1748 ; Documented for Fortran, but always accepted by driver.
1754 Common RejectNegative Negative(shared)
1755 Create a position independent executable
1757 ; This comment is to ensure we retain the blank line above.