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.
28 Display this information
32 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
36 Alias for --help=target
38 ;; The following four entries are to work around the gcc driver
39 ;; program's insatiable desire to turn options starting with a
40 ;; double dash (--) into options starting with a dash f (-f).
55 --param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
61 Common Joined Separate UInteger
62 -G<number> Put global and static data smaller than <number> bytes into a special section (on some targets)
65 Common JoinedOrMissing Optimization
66 -O<number> Set optimization level to <number>
70 Optimize for space rather than speed
74 Optimize for speed disregarding exact standards compliance
77 Common RejectNegative Var(extra_warnings) Warning
78 This switch is deprecated; use -Wextra instead
81 Common Var(warn_aggregate_return) Warning
82 Warn about returning structures, unions or arrays
85 Common Var(warn_array_bounds) Warning
86 Warn if an array is accessed out of bounds
89 Common Var(warn_attributes) Init(1) Warning
90 Warn about inappropriate attribute usage
93 Common Var(warn_cast_align) Warning
94 Warn about pointer casts which increase alignment
97 Common Var(warn_cpp) Init(1) Warning
98 Warn when a #warning directive is encountered
100 Wdeprecated-declarations
101 Common Var(warn_deprecated_decl) Init(1) Warning
102 Warn about uses of __attribute__((deprecated)) declarations
104 Wdisabled-optimization
105 Common Var(warn_disabled_optimization) Warning
106 Warn when an optimization pass is disabled
109 Common Var(warnings_are_errors)
110 Treat all warnings as errors
114 Treat specified warning as error
117 Common Var(extra_warnings) Warning
118 Print extra (possibly unwanted) warnings
121 Common Var(flag_fatal_errors)
122 Exit on the first error occurred
125 Common RejectNegative Joined UInteger
126 -Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
129 Common Var(warn_inline) Warning
130 Warn when an inlined function cannot be inlined
133 Common RejectNegative Joined UInteger Warning Undocumented
136 Common RejectNegative Joined UInteger Warning
137 -Wlarger-than=<number> Warn if an object is larger than <number> bytes
139 Wunsafe-loop-optimizations
140 Common Var(warn_unsafe_loop_optimizations) Warning
141 Warn if the loop cannot be optimized due to nontrivial assumptions.
144 Common Var(warn_missing_noreturn) Warning
145 Warn about functions which might be candidates for __attribute__((noreturn))
148 Common Var(warn_mudflap) Init(1) Warning
149 Warn about constructs not instrumented by -fmudflap
152 Common Var(warn_overflow) Init(1) Warning
153 Warn about overflow in arithmetic expressions
156 Common Var(warn_packed) Warning
157 Warn when the packed attribute has no effect on struct layout
160 Common Var(warn_padded) Warning
161 Warn when padding is required to align structure members
164 Common Var(warn_shadow) Warning
165 Warn when one local variable shadows another
168 Common Var(warn_stack_protect) Warning
169 Warn when not issuing stack smashing protection for some reason
173 Warn about code which might break strict aliasing rules
176 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
177 Warn about code which might break strict aliasing rules
181 Warn about optimizations that assume that signed overflow is undefined
184 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
185 Warn about optimizations that assume that signed overflow is undefined
187 Wsuggest-attribute=const
188 Common Var(warn_suggest_attribute_const) Warning
189 Warn about functions which might be candidates for __attribute__((const))
191 Wsuggest-attribute=pure
192 Common Var(warn_suggest_attribute_pure) Warning
193 Warn about functions which might be candidates for __attribute__((pure))
195 Wsuggest-attribute=noreturn
196 Common Var(warn_suggest_attribute_noreturn) Warning
197 Warn about functions which might be candidates for __attribute__((noreturn))
200 Common Var(warn_switch) Warning
201 Warn about enumerated switches, with no default, missing a case
204 Common Var(warn_switch_default) Warning
205 Warn about enumerated switches missing a \"default:\" statement
208 Common Var(warn_switch_enum) Warning
209 Warn about all enumerated switches missing a specific case
212 Common Var(warn_system_headers) Warning
213 Do not suppress warnings from system headers
216 Common Var(warn_trampolines) Warning
217 Warn whenever a trampoline is generated
220 Common Var(warn_type_limits) Init(-1) Warning
221 Warn if a comparison is always true or always false due to the limited range of the data type
224 Common Var(warn_uninitialized) Init(-1) Warning
225 Warn about uninitialized automatic variables
229 Does nothing. Preserved for backward compatibility.
232 Common Var(warn_unused) Init(0) Warning
233 Enable all -Wunused- warnings
235 Wunused-but-set-parameter
236 Common Var(warn_unused_but_set_parameter) Init(-1) Warning
237 Warn when a function parameter is only set, otherwise unused
239 Wunused-but-set-variable
240 Common Var(warn_unused_but_set_variable) Init(-1) Warning
241 Warn when a variable is only set, otherwise unused
244 Common Var(warn_unused_function) Init(-1) Warning
245 Warn when a function is unused
248 Common Var(warn_unused_label) Init(-1) Warning
249 Warn when a label is unused
252 Common Var(warn_unused_parameter) Init(-1) Warning
253 Warn when a function parameter is unused
256 Common Var(warn_unused_value) Init(-1) Warning
257 Warn when an expression value is unused
260 Common Var(warn_unused_variable) Init(-1) Warning
261 Warn when a variable is unused
264 Common Var(warn_coverage_mismatch) Init(1) Warning
265 Warn in case profiles in -fprofile-use do not match
269 -aux-info <file> Emit declaration information into <file>
282 -d<letters> Enable dumps from specific passes of the compiler
286 -dumpbase <file> Set the file basename to be used for dumps
290 -dumpdir <dir> Set the directory name to be used for dumps
292 ; The version of the C++ ABI in use. The following values are allowed:
294 ; 0: The version of the ABI believed most conformant with the C++ ABI
295 ; specification. This ABI may change as bugs are discovered and fixed.
296 ; Therefore, 0 will not necessarily indicate the same ABI in different
299 ; 1: The version of the ABI first used in G++ 3.2.
301 ; 2: The version of the ABI first used in G++ 3.4 (and current default).
303 ; 3: The version of the ABI that fixes the missing underscore
304 ; in template non-type arguments of pointer type.
306 ; 4: The version of the ABI that introduces unambiguous mangling of
309 ; Additional positive integers will be assigned as new versions of
310 ; the ABI become the default version of the ABI.
312 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
315 Common Report Var(align_functions,0) Optimization UInteger
316 Align the start of functions
319 Common RejectNegative Joined UInteger
322 Common Report Var(align_jumps,0) Optimization UInteger
323 Align labels which are only reached by jumping
326 Common RejectNegative Joined UInteger
329 Common Report Var(align_labels,0) Optimization UInteger
333 Common RejectNegative Joined UInteger
336 Common Report Var(align_loops) Optimization UInteger
337 Align the start of loops
340 Common RejectNegative Joined UInteger
344 Does nothing. Preserved for backward compatibility.
348 Does nothing. Preserved for backward compatibility.
350 fargument-noalias-global
352 Does nothing. Preserved for backward compatibility.
354 fargument-noalias-anything
356 Does nothing. Preserved for backward compatibility.
358 fasynchronous-unwind-tables
359 Common Report Var(flag_asynchronous_unwind_tables) Optimization
360 Generate unwind tables that are exact at each instruction boundary
363 Common Report Var(flag_auto_inc_dec) Init(1)
364 Generate auto-inc/dec instructions
366 ; -fcheck-bounds causes gcc to generate array bounds checks.
367 ; For C, C++ and ObjC: defaults off.
368 ; For Java: defaults to on.
369 ; For Fortran: defaults to off.
371 Common Report Var(flag_bounds_check)
372 Generate code to check bounds before indexing arrays
375 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
376 Replace add, compare, branch with branch on count register
378 fbranch-probabilities
379 Common Report Var(flag_branch_probabilities) Optimization
380 Use profiling information for branch probabilities
382 fbranch-target-load-optimize
383 Common Report Var(flag_branch_target_load_optimize) Optimization
384 Perform branch target load optimization before prologue / epilogue threading
386 fbranch-target-load-optimize2
387 Common Report Var(flag_branch_target_load_optimize2) Optimization
388 Perform branch target load optimization after prologue / epilogue threading
391 Common Report Var(flag_btr_bb_exclusive) Optimization
392 Restrict target load migration not to re-use registers in any basic block
395 Common Joined RejectNegative
396 -fcall-saved-<register> Mark <register> as being preserved across functions
399 Common Joined RejectNegative
400 -fcall-used-<register> Mark <register> as being corrupted by function calls
402 ; Nonzero for -fcaller-saves: allocate values in regs that need to
403 ; be saved across function calls, if that produces overall better code.
404 ; Optional now, so people can test it.
406 Common Report Var(flag_caller_saves) Optimization
407 Save registers around function calls
410 Common Report Var(flag_check_data_deps)
411 Compare the results of several data dependence analyzers.
414 Common Report Var(flag_no_common,0) Optimization
415 Do not put uninitialized globals in the common section
418 Common JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
419 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
421 fcompare-debug-second
422 Common RejectNegative Var(flag_compare_debug)
423 Run only the second compilation of -fcompare-debug
426 Common Var(flag_conserve_stack) Optimization
427 Do not perform optimizations increasing noticeably stack usage
430 Common Report Var(flag_cprop_registers) Optimization
431 Perform a register copy-propagation optimization pass
434 Common Report Var(flag_crossjumping) Optimization
435 Perform cross-jumping optimization
438 Common Report Var(flag_cse_follow_jumps) Optimization
439 When running CSE, follow jumps to their targets
443 Does nothing. Preserved for backward compatibility.
446 Common Report Var(flag_cx_limited_range) Optimization
447 Omit range reduction step when performing complex division
450 Common Report Var(flag_cx_fortran_rules) Optimization
451 Complex multiplication and division follow Fortran rules
454 Common Report Var(flag_data_sections) Optimization
455 Place data items into their own section
459 List all available debugging counters with their limits and counts.
462 Common RejectNegative Joined
463 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
466 Common Joined RejectNegative
467 Map one directory name to another in debug information
469 ; Nonzero for -fdefer-pop: don't pop args after each function call
470 ; instead save them up to pop many calls' args with one insns.
472 Common Report Var(flag_defer_pop) Optimization
473 Defer popping functions args from stack until later
476 Common Report Var(flag_delayed_branch) Optimization
477 Attempt to fill delay slots of branch instructions
479 fdelete-null-pointer-checks
480 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
481 Delete useless null pointer checks
483 fdiagnostics-show-location=
484 Common Joined RejectNegative
485 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
487 fdiagnostics-show-option
488 Common Var(flag_diagnostics_show_option) Init(1)
489 Amend appropriate diagnostic messages with the command line option that controls them
492 Common Joined RejectNegative
493 -fdump-<type> Dump various compiler internals to a file
496 Common RejectNegative Joined Var(flag_dump_final_insns)
497 -fdump-final-insns=filename Dump to filename the insns at the end of translation
500 Common Report Var(flag_dump_noaddr)
501 Suppress output of addresses in debugging dumps
504 Common Report Var(flag_dump_unnumbered) VarExists
505 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
507 fdump-unnumbered-links
508 Common Report Var(flag_dump_unnumbered_links) VarExists
509 Suppress output of previous and next insn numbers in debugging dumps
512 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
513 Enable CFI tables via GAS assembler directives.
516 Common Report Var(flag_early_inlining) Init(1) Optimization
517 Perform early inlining
519 feliminate-dwarf2-dups
520 Common Report Var(flag_eliminate_dwarf2_dups)
521 Perform DWARF2 duplicate elimination
524 Common Report Var(flag_ipa_sra) Init(0) Optimization
525 Perform interprocedural reduction of aggregates
527 feliminate-unused-debug-symbols
528 Common Report Var(flag_debug_only_used_symbols)
529 Perform unused type elimination in debug info
531 feliminate-unused-debug-types
532 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
533 Perform unused type elimination in debug info
535 femit-class-debug-always
536 Common Report Var(flag_emit_class_debug_always) Init(0)
537 Do not suppress C++ class debug information.
540 Common Report Var(flag_enable_icf_debug)
541 Generate debug information to support Identical Code Folding (ICF)
544 Common Report Var(flag_exceptions) Optimization
545 Enable exception handling
547 fexpensive-optimizations
548 Common Report Var(flag_expensive_optimizations) Optimization
549 Perform a number of minor, expensive optimizations
552 Common Joined RejectNegative
553 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
559 Common Report Var(flag_finite_math_only) Optimization
560 Assume no NaNs or infinities are generated
563 Common Joined RejectNegative
564 -ffixed-<register> Mark <register> as being unavailable to the compiler
567 Common Report Var(flag_float_store) Optimization
568 Don't allocate floats and doubles in extended-precision registers
572 Does nothing. Preserved for backward compatibility.
575 Common Report Var(flag_forward_propagate) Optimization
576 Perform a forward propagation pass on RTL
578 ; Nonzero means don't put addresses of constant functions in registers.
579 ; Used for compiling the Unix kernel, where strange substitutions are
580 ; done on the assembly output.
582 Common Report Var(flag_no_function_cse,0)
583 Allow function addresses to be held in registers
586 Common Report Var(flag_function_sections)
587 Place each function into its own section
590 Common Report Var(flag_gcse) Optimization
591 Perform global common subexpression elimination
594 Common Report Var(flag_gcse_lm) Init(1) Optimization
595 Perform enhanced load motion during global common subexpression elimination
598 Common Report Var(flag_gcse_sm) Init(0) Optimization
599 Perform store motion after global common subexpression elimination
602 Common Report Var(flag_gcse_las) Init(0) Optimization
603 Perform redundant load after store elimination in global common subexpression
607 Common Report Var(flag_gcse_after_reload) Optimization
608 Perform global common subexpression elimination after register allocation
611 ; This option is not documented yet as its semantics will change.
613 Common Report Var(flag_graphite)
614 Enable in and out of Graphite representation
617 Common Report Var(flag_graphite_identity) Optimization
618 Enable Graphite Identity transformation
620 floop-parallelize-all
621 Common Report Var(flag_loop_parallelize_all) Optimization
622 Mark all loops as parallel
625 Common Report Var(flag_loop_strip_mine) Optimization
626 Enable Loop Strip Mining transformation
629 Common Report Var(flag_loop_interchange) Optimization
630 Enable Loop Interchange transformation
633 Common Report Var(flag_loop_block) Optimization
634 Enable Loop Blocking transformation
636 fstrict-volatile-bitfields
637 Common Report Var(flag_strict_volatile_bitfields) Init(-1)
638 Force bitfield accesses to match their type width
640 fguess-branch-probability
641 Common Report Var(flag_guess_branch_prob) Optimization
642 Enable guessing of branch probabilities
644 ; Nonzero means ignore `#ident' directives. 0 means handle them.
645 ; Generate position-independent code for executables if possible
646 ; On SVR4 targets, it also controls whether or not to emit a
647 ; string identifying the compiler.
649 Common Report Var(flag_no_ident,0)
650 Process #ident directives
653 Common Report Var(flag_if_conversion) Optimization
654 Perform conversion of conditional jumps to branchless equivalents
657 Common Report Var(flag_if_conversion2) Optimization
658 Perform conversion of conditional jumps to conditional execution
660 ftree-loop-if-convert
661 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
662 Convert conditional jumps in innermost loops to branchless equivalents
664 ; -finhibit-size-directive inhibits output of .size for ELF.
665 ; This is used only for compiling crtstuff.c,
666 ; and it may be extended to other effects
667 ; needed for crtstuff.c on other systems.
668 finhibit-size-directive
669 Common Report Var(flag_inhibit_size_directive)
670 Do not generate .size directives
673 Common Report Var(flag_indirect_inlining)
674 Perform indirect inlining
676 ; Nonzero means that functions declared `inline' will be treated
677 ; as `static'. Prevents generation of zillions of copies of unused
678 ; static inline functions; instead, `inlines' are written out
679 ; only when actually used. Used in conjunction with -g. Also
680 ; does the right thing with #pragma interface.
682 Common Report Var(flag_no_inline,0) Init(0)
683 Pay attention to the \"inline\" keyword
685 finline-small-functions
686 Common Report Var(flag_inline_small_functions) Optimization
687 Integrate simple functions into their callers when code size is known to not growth
690 Common Report Var(flag_inline_functions) Optimization
691 Integrate simple functions into their callers
693 finline-functions-called-once
694 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
695 Integrate functions called once into their callers
698 Common RejectNegative Joined UInteger
701 Common RejectNegative Joined UInteger
702 -finline-limit=<number> Limit the size of inlined functions to <number>
704 finstrument-functions
705 Common Report Var(flag_instrument_function_entry_exit)
706 Instrument function entry and exit with profiling calls
708 finstrument-functions-exclude-function-list=
709 Common RejectNegative Joined
710 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
712 finstrument-functions-exclude-file-list=
713 Common RejectNegative Joined
714 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
717 Common Report Var(flag_ipa_cp) Optimization
718 Perform Interprocedural constant propagation
721 Common Report Var(flag_ipa_cp_clone) Optimization
722 Perform cloning to make Interprocedural constant propagation stronger
725 Common Report Var(flag_ipa_profile) Init(0) Optimization
726 Perform interprocedural profile propagation
729 Common Report Var(flag_ipa_pta) Init(0) Optimization
730 Perform interprocedural points-to analysis
733 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
734 Discover pure and const functions
737 Common Report Var(flag_ipa_reference) Init(0) Optimization
738 Discover readonly and non addressable static variables
741 Common Report Var(flag_ipa_matrix_reorg) Optimization
742 Perform matrix layout flattening and transposing based
743 on profiling information.
746 Common Report Var(flag_ipa_struct_reorg)
747 Perform structure layout optimizations based
748 on profiling information.
751 Common Joined RejectNegative
752 -fira-algorithm=[CB|priority] Set the used IRA algorithm
755 Common Joined RejectNegative
756 -fira-region=[one|all|mixed] Set regions for IRA
759 Common Report Var(flag_ira_coalesce) Init(0)
760 Do optimistic coalescing.
763 Common Report Var(flag_ira_loop_pressure)
764 Use IRA based register pressure calculation
765 in RTL loop optimizations.
767 fira-share-save-slots
768 Common Report Var(flag_ira_share_save_slots) Init(1)
769 Share slots for saving different hard registers.
771 fira-share-spill-slots
772 Common Report Var(flag_ira_share_spill_slots) Init(1)
773 Share stack slots for spilled pseudo-registers.
776 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
777 -fira-verbose=<number> Control IRA's level of diagnostic messages.
780 Common Report Var(flag_ivopts) Init(1) Optimization
781 Optimize induction variables on trees
784 Common Var(flag_jump_tables) Init(1) Optimization
785 Use jump tables for sufficiently large switch statements
787 fkeep-inline-functions
788 Common Report Var(flag_keep_inline_functions)
789 Generate code for functions even if they are fully inlined
792 Common Report Var(flag_keep_static_consts) Init(1)
793 Emit static const variables even if they are not used
796 Common Report Var(flag_leading_underscore) Init(-1)
797 Give external symbols a leading underscore
801 Does nothing. Preserved for backward compatibility.
805 Enable link-time optimization.
807 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
808 flto-compression-level=
809 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
810 -flto-compression-level=<number> Use zlib compression level <number> for IL
813 Common Report Var(flag_lto_report) Init(0) Optimization
814 Report various link-time optimization statistics
817 Common Report Var(flag_errno_math) Init(1) Optimization
818 Set errno after built-in math functions
821 Common Report Var(mem_report)
822 Report on permanent memory allocation
824 ; This will attempt to merge constant section constants, if 1 only
825 ; string constants and constants from constant pool, if 2 also constant
828 Common Report Var(flag_merge_constants,2) Init(1) Optimization
829 Attempt to merge identical constants and constant variables
832 Common Report Var(flag_merge_constants,1) VarExists Optimization
833 Attempt to merge identical constants across compilation units
836 Common Report Var(flag_merge_debug_strings) Init(1)
837 Attempt to merge identical debug strings across compilation units
840 Common RejectNegative Joined UInteger
841 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
844 Common Report Var(flag_modulo_sched) Optimization
845 Perform SMS based modulo scheduling before the first scheduling pass
847 fmodulo-sched-allow-regmoves
848 Common Report Var(flag_modulo_sched_allow_regmoves)
849 Perform SMS based modulo scheduling with register moves allowed
851 fmove-loop-invariants
852 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
853 Move loop invariant computations out of loops
856 Common RejectNegative Report Var(flag_mudflap)
857 Add mudflap bounds-checking instrumentation for single-threaded program
860 Common RejectNegative Report VarExists Var(flag_mudflap,2)
861 Add mudflap bounds-checking instrumentation for multi-threaded program
864 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
865 Ignore read operations when inserting mudflap instrumentation
868 Common Var(flag_dce) Init(1) Optimization
869 Use the RTL dead code elimination pass
872 Common Var(flag_dse) Init(1) Optimization
873 Use the RTL dead store elimination pass
875 freschedule-modulo-scheduled-loops
876 Common Report Var(flag_resched_modulo_sched) Optimization
877 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
880 Common Report Var(flag_non_call_exceptions) Optimization
881 Support synchronous non-call exceptions
884 Common Report Var(flag_omit_frame_pointer) Optimization
885 When possible do not generate stack frames
887 foptimize-register-move
888 Common Report Var(flag_regmove) Optimization
889 Do the full register move optimization pass
891 foptimize-sibling-calls
892 Common Report Var(flag_optimize_sibling_calls) Optimization
893 Optimize sibling and tail recursive calls
896 Common Report Var(flag_partial_inlining)
897 Perform partial inlining
900 Common Report Var(pre_ipa_mem_report)
901 Report on memory allocation before interprocedural optimization
904 Common Report Var(post_ipa_mem_report)
905 Report on memory allocation before interprocedural optimization
908 Common Report Var(flag_pack_struct) Optimization
909 Pack structure members together without holes
912 Common RejectNegative Joined UInteger Optimization
913 -fpack-struct=<number> Set initial maximum structure member alignment
916 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
917 Return small aggregates in memory, not registers
920 Common Report Var(flag_peel_loops) Optimization
924 Common Report Var(flag_no_peephole,0) Optimization
925 Enable machine specific peephole optimizations
928 Common Report Var(flag_peephole2) Optimization
929 Enable an RTL peephole pass before sched2
932 Common Report Var(flag_pic,2)
933 Generate position-independent code if possible (large mode)
936 Common Report Var(flag_pie,2)
937 Generate position-independent code for executables if possible (large mode)
940 Common Report Var(flag_pic,1) VarExists
941 Generate position-independent code if possible (small mode)
944 Common Report Var(flag_pie,1) VarExists
945 Generate position-independent code for executables if possible (small mode)
948 Common Joined RejectNegative
949 Specify a plugin to load
952 Common Joined RejectNegative
953 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
955 fpredictive-commoning
956 Common Report Var(flag_predictive_commoning) Optimization
957 Run predictive commoning optimization.
959 fprefetch-loop-arrays
960 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
961 Generate prefetch instructions, if available, for arrays in loops
964 Common Report Var(profile_flag)
965 Enable basic program profiling code
968 Common Report Var(profile_arc_flag)
969 Insert arc-based program profiling code
972 Common Joined RejectNegative
973 Set the top-level directory for storing the profile data.
974 The default is 'pwd'.
977 Common Report Var(flag_profile_correction)
978 Enable correction of flow inconsistent profile data input
982 Enable common options for generating profile info for profile feedback directed optimizations
985 Common Joined RejectNegative
986 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
989 Common Var(flag_profile_use)
990 Enable common options for performing profile feedback directed optimizations
993 Common Joined RejectNegative
994 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
997 Common Report Var(flag_profile_values)
998 Insert code to profile values of expressions
1004 Common Joined RejectNegative
1005 -frandom-seed=<string> Make compile reproducible using <string>
1007 ; This switch causes the command line that was used to create an
1008 ; object file to be recorded into the object file. The exact format
1009 ; of this recording is target and binary file format dependent.
1010 ; It is related to the -fverbose-asm switch, but that switch only
1011 ; records information in the assembler output file as comments, so
1012 ; they never reach the object file.
1013 frecord-gcc-switches
1014 Common Report Var(flag_record_gcc_switches)
1015 Record gcc command line switches in the object file.
1018 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
1019 Return small aggregates in registers
1022 Common Report Var(flag_regmove) Optimization
1023 Enables a register move optimization
1026 Common Report Var(flag_rename_registers) Init(2) Optimization
1027 Perform a register renaming optimization pass
1030 Common Report Var(flag_reorder_blocks) Optimization
1031 Reorder basic blocks to improve code placement
1033 freorder-blocks-and-partition
1034 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1035 Reorder basic blocks and partition into hot and cold sections
1038 Common Report Var(flag_reorder_functions) Optimization
1039 Reorder functions to improve code placement
1041 frerun-cse-after-loop
1042 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
1043 Add a common subexpression elimination pass after loop optimizations
1047 Does nothing. Preserved for backward compatibility.
1050 Common Report Var(flag_rounding_math) Optimization
1051 Disable optimizations that assume default FP rounding behavior
1054 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1055 Enable scheduling across basic blocks
1058 Common Report Var(flag_sched_pressure) Init(0) Optimization
1059 Enable register pressure sensitive insn scheduling
1062 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1063 Allow speculative motion of non-loads
1066 Common Report Var(flag_schedule_speculative_load) Optimization
1067 Allow speculative motion of some loads
1069 fsched-spec-load-dangerous
1070 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1071 Allow speculative motion of more loads
1074 Common RejectNegative Joined
1075 -fsched-verbose=<number> Set the verbosity level of the scheduler
1077 fsched2-use-superblocks
1078 Common Report Var(flag_sched2_use_superblocks) Optimization
1079 If scheduling post reload, do superblock scheduling
1083 Does nothing. Preserved for backward compatibility.
1086 Common Report Var(flag_schedule_insns) Optimization
1087 Reschedule instructions before register allocation
1090 Common Report Var(flag_schedule_insns_after_reload) Optimization
1091 Reschedule instructions after register allocation
1093 ; This flag should be on when a target implements non-trivial
1094 ; scheduling hooks, maybe saving some information for its own sake.
1095 ; On IA64, for example, this is used for correct bundling.
1096 fselective-scheduling
1097 Common Report Var(flag_selective_scheduling) Optimization
1098 Schedule instructions using selective scheduling algorithm
1100 fselective-scheduling2
1101 Common Report Var(flag_selective_scheduling2) Optimization
1102 Run selective scheduling after reload
1104 fsel-sched-pipelining
1105 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1106 Perform software pipelining of inner loops during selective scheduling
1108 fsel-sched-pipelining-outer-loops
1109 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1110 Perform software pipelining of outer loops during selective scheduling
1112 fsel-sched-reschedule-pipelined
1113 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1114 Reschedule pipelined regions without pipelining
1116 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1117 ; of stalled insns into the ready list.
1118 fsched-stalled-insns
1119 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1120 Allow premature scheduling of queued insns
1122 fsched-stalled-insns=
1123 Common RejectNegative Joined UInteger
1124 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
1126 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1127 ; be examined for a dependency on a stalled insn that is candidate for
1128 ; premature removal from the queue of stalled insns into the ready list (has
1129 ; an effect only if the flag 'sched_stalled_insns' is set).
1130 fsched-stalled-insns-dep
1131 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1132 Set dependence distance checking in premature scheduling of queued insns
1134 fsched-stalled-insns-dep=
1135 Common RejectNegative Joined UInteger
1136 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
1138 fsched-group-heuristic
1139 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1140 Enable the group heuristic in the scheduler
1142 fsched-critical-path-heuristic
1143 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1144 Enable the critical path heuristic in the scheduler
1146 fsched-spec-insn-heuristic
1147 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1148 Enable the speculative instruction heuristic in the scheduler
1150 fsched-rank-heuristic
1151 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1152 Enable the rank heuristic in the scheduler
1154 fsched-last-insn-heuristic
1155 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1156 Enable the last instruction heuristic in the scheduler
1158 fsched-dep-count-heuristic
1159 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1160 Enable the dependent count heuristic in the scheduler
1163 Common Report Var(flag_section_anchors) Optimization
1164 Access data in the same section from shared anchor points
1168 Does nothing. Preserved for backward compatibility.
1171 Common Report Var(flag_zee) Init(0)
1172 Eliminate redundant zero extensions on targets that support implicit extensions.
1175 Common Report Var(flag_show_column) Init(1)
1176 Show column numbers in diagnostics, when available. Default on
1179 Common Report Var(flag_signaling_nans) Optimization
1180 Disable optimizations observable by IEEE signaling NaNs
1183 Common Report Var(flag_signed_zeros) Init(1) Optimization
1184 Disable floating point optimizations that ignore the IEEE signedness of zero
1186 fsingle-precision-constant
1187 Common Report Var(flag_single_precision_constant) Optimization
1188 Convert floating point constants to single precision constants
1190 fsplit-ivs-in-unroller
1191 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1192 Split lifetimes of induction variables when loops are unrolled
1195 Common Report Var(flag_split_wide_types) Optimization
1196 Split wide types into independent registers
1198 fvariable-expansion-in-unroller
1199 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1200 Apply variable expansion when loops are unrolled
1203 Common Report RejectNegative Joined
1204 -fstack-check=[no|generic|specific] Insert stack checking code into the program
1208 Insert stack checking code into the program. Same as -fstack-check=specific
1213 fstack-limit-register=
1214 Common RejectNegative Joined
1215 -fstack-limit-register=<register> Trap if the stack goes past <register>
1217 fstack-limit-symbol=
1218 Common RejectNegative Joined
1219 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
1222 Common Report Var(flag_stack_protect, 1)
1223 Use propolice as a stack protection method
1225 fstack-protector-all
1226 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1227 Use a stack protection method for every function
1231 Does nothing. Preserved for backward compatibility.
1233 ; Nonzero if we should do (language-dependent) alias analysis.
1234 ; Typically, this analysis will assume that expressions of certain
1235 ; types do not alias expressions of certain other types. Only used
1236 ; if alias analysis (in general) is enabled.
1238 Common Report Var(flag_strict_aliasing) Optimization
1239 Assume strict aliasing rules apply
1242 Common Report Var(flag_strict_overflow)
1243 Treat signed overflow as undefined
1246 Common Report Var(flag_syntax_only)
1247 Check for syntax errors, then stop
1250 Common Report Var(flag_test_coverage)
1251 Create data files needed by \"gcov\"
1254 Common Report Var(flag_thread_jumps) Optimization
1255 Perform jump threading optimizations
1258 Common Report Var(time_report)
1259 Report the time taken by each compiler pass
1262 Common Joined RejectNegative
1263 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
1266 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1267 Reorder top level functions, variables, and asms
1270 Common Report Var(flag_tracer)
1271 Perform superblock formation via tail duplication
1273 ; Zero means that floating-point math operations cannot generate a
1274 ; (user-visible) trap. This is the case, for example, in nonstop
1275 ; IEEE 754 arithmetic.
1277 Common Report Var(flag_trapping_math) Init(1) Optimization
1278 Assume floating-point operations can trap
1281 Common Report Var(flag_trapv) Optimization
1282 Trap for signed overflow in addition, subtraction and multiplication
1285 Common Report Var(flag_tree_ccp) Optimization
1286 Enable SSA-CCP optimization on trees
1290 Does nothing. Preserved for backward compatibility.
1293 Common Report Var(flag_tree_ch) Optimization
1294 Enable loop header copying on trees
1297 Common Report Var(flag_tree_copyrename) Optimization
1298 Replace SSA temporaries with better names in copies
1301 Common Report Var(flag_tree_copy_prop) Optimization
1302 Enable copy propagation on trees
1304 ftree-store-copy-prop
1306 Does nothing. Preserved for backward compatibility.
1309 Common Report Var(flag_tree_cselim) Init(2) Optimization
1310 Transform condition stores into unconditional ones
1312 ftree-switch-conversion
1313 Common Report Var(flag_tree_switch_conversion) Optimization
1314 Perform conversions of switch initializations.
1317 Common Report Var(flag_tree_dce) Optimization
1318 Enable SSA dead code elimination optimization on trees
1320 ftree-dominator-opts
1321 Common Report Var(flag_tree_dom) Optimization
1322 Enable dominator optimizations
1325 Common Report Var(flag_tree_dse) Optimization
1326 Enable dead store elimination
1329 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1330 Enable forward propagation on trees
1333 Common Report Var(flag_tree_fre) Optimization
1334 Enable Full Redundancy Elimination (FRE) on trees
1336 ftree-loop-distribution
1337 Common Report Var(flag_tree_loop_distribution) Optimization
1338 Enable loop distribution on trees
1341 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1342 Enable loop invariant motion on trees
1345 Common Report Var(flag_tree_loop_linear) Optimization
1346 Enable linear loop transforms on trees
1349 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1350 Create canonical induction variables in loops
1353 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1354 Enable loop optimizations on tree level
1356 ftree-parallelize-loops=
1357 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
1358 Enable automatic parallelization of loops
1361 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1362 Enable hoisting loads from conditional pointers.
1365 Common Report Var(flag_tree_pre) Optimization
1366 Enable SSA-PRE optimization on trees
1369 Common Report Var(flag_tree_pta) Init(1) Optimization
1370 Perform function-local points-to analysis on trees.
1373 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1374 Enable reassociation on tree level
1378 Does nothing. Preserved for backward compatibility.
1381 Common Report Var(flag_tree_sink) Optimization
1382 Enable SSA code sinking on trees
1385 Common Report Var(flag_tree_sra) Optimization
1386 Perform scalar replacement of aggregates
1389 Common Report Var(flag_tree_ter) Init(1) Optimization
1390 Replace temporary expressions in the SSA->normal pass
1393 Common Report Var(flag_tree_live_range_split) Optimization
1394 Perform live range splitting during the SSA->normal pass
1397 Common Report Var(flag_tree_vrp) Init(0) Optimization
1398 Perform Value Range Propagation on trees
1401 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1402 Compile whole compilation unit at a time
1405 Common Report Var(flag_unroll_loops) Optimization
1406 Perform loop unrolling when iteration count is known
1409 Common Report Var(flag_unroll_all_loops) Optimization
1410 Perform loop unrolling for all loops
1412 ; Nonzero means that loop optimizer may assume that the induction variables
1413 ; that control loops do not overflow and that the loops with nontrivial
1414 ; exit condition are not infinite
1415 funsafe-loop-optimizations
1416 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1417 Allow loop optimizations to assume that the loops behave in normal way
1420 Common Report Var(flag_associative_math)
1421 Allow optimization for floating-point arithmetic which may change the
1422 result of the operation due to rounding.
1425 Common Report Var(flag_reciprocal_math)
1426 Same as -fassociative-math for expressions which include division.
1428 ; Nonzero means that unsafe floating-point math optimizations are allowed
1429 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
1430 ; are allowed to assume that their arguments and results are "normal"
1431 ; (e.g., nonnegative for SQRT).
1432 funsafe-math-optimizations
1433 Common Report Var(flag_unsafe_math_optimizations) Optimization
1434 Allow math optimizations that may violate IEEE or ISO standards
1437 Common Report Var(flag_unswitch_loops) Optimization
1438 Perform loop unswitching
1441 Common Report Var(flag_unwind_tables) Optimization
1442 Just generate unwind tables for exception handling
1448 Common Report Var(flag_var_tracking) VarExists Optimization
1449 Perform variable tracking
1451 fvar-tracking-assignments
1452 Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1453 Perform variable tracking by annotating assignments
1455 fvar-tracking-assignments-toggle
1456 Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1457 Toggle -fvar-tracking-assignments
1459 fvar-tracking-uninit
1460 Common Report Var(flag_var_tracking_uninit) Optimization
1461 Perform variable tracking and also tag variables that are uninitialized
1464 Common Report Var(flag_tree_vectorize) Optimization
1465 Enable loop vectorization on trees
1468 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1469 Enable basic block vectorization (SLP) on trees
1472 Common Report Var(flag_vect_cost_model) Optimization
1473 Enable use of cost model in vectorization
1475 ftree-vect-loop-version
1476 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1477 Enable loop versioning when doing loop vectorization on trees
1479 ftree-vectorizer-verbose=
1480 Common RejectNegative Joined
1481 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
1484 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1485 Enable copy propagation of scalar-evolution information.
1487 ; -fverbose-asm causes extra commentary information to be produced in
1488 ; the generated assembly code (to make it more readable). This option
1489 ; is generally only of use to those who actually need to read the
1490 ; generated assembly code (perhaps while debugging the compiler itself).
1491 ; -fno-verbose-asm, the default, causes the extra information
1492 ; to not be added and is useful when comparing two assembler files.
1494 Common Report Var(flag_verbose_asm)
1495 Add extra commentary to assembler output
1498 Common Joined RejectNegative
1499 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1503 Common Report Var(flag_value_profile_transformations) Optimization
1504 Use expression value profiles in optimizations
1507 Common Report Var(flag_web) Init(2) Optimization
1508 Construct webs and split unrelated uses of single variable
1512 Enable partitioned link-time optimization
1515 Common RejectNegative UInteger Joined Var(flag_whopr)
1516 Enable partitioned link-time optimization with specified number of parallel jobs
1518 ftree-builtin-call-dce
1519 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1520 Enable conditional dead code elimination for builtin calls
1523 Common Report Var(flag_whole_program) Init(0) Optimization
1524 Perform whole program optimizations
1527 Common Report Var(flag_wrapv) Optimization
1528 Assume signed arithmetic overflow wraps around
1530 fzero-initialized-in-bss
1531 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1532 Put zero initialized data in the bss section
1535 Common JoinedOrMissing
1536 Generate debug information in default format
1539 Common JoinedOrMissing Negative(gdwarf-)
1540 Generate debug information in COFF format
1543 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1544 Generate debug information in DWARF v2 (or later) format
1547 Common JoinedOrMissing
1548 Generate debug information in default extended format
1551 Common JoinedOrMissing Negative(gstabs+)
1552 Generate debug information in STABS format
1555 Common JoinedOrMissing Negative(gvms)
1556 Generate debug information in extended STABS format
1559 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1560 Emit DWARF additions beyond selected version
1563 Common Report RejectNegative Var(dwarf_strict,1) VarExists
1564 Don't emit DWARF additions beyond selected version
1567 Common Report Var(flag_gtoggle)
1568 Toggle debug information generation
1571 Common JoinedOrMissing Negative(gxcoff)
1572 Generate debug information in VMS format
1575 Common JoinedOrMissing Negative(gxcoff+)
1576 Generate debug information in XCOFF format
1579 Common JoinedOrMissing Negative(gcoff)
1580 Generate debug information in extended XCOFF format
1583 Common Joined Var(plugindir_string) Init(0)
1584 -iplugindir=<dir> Set <dir> to be the default plugin directory
1587 Common Joined Separate MissingArgError(missing filename after %qs)
1588 -o <file> Place output into <file>
1591 Common Var(profile_flag)
1592 Enable function profiling
1595 Common Var(pedantic)
1596 Issue warnings needed for strict compliance to the standard
1600 Like -pedantic but issue them as errors
1603 Common Var(quiet_flag)
1604 Do not display functions compiled or elapsed time
1607 Common Var(version_flag)
1608 Display the compiler's version
1611 Common Var(inhibit_warnings)
1615 Common RejectNegative Negative(pie)
1616 Create a shared library
1619 Common RejectNegative Negative(shared)
1620 Create a position independent executable
1622 ; This comment is to ensure we retain the blank line above.