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.
35 ; 0 means straightforward implementation of complex divide acceptable.
36 ; 1 means wide ranges of inputs must work for complex divide.
37 ; 2 means C99-like requirements for complex multiply and divide.
39 int flag_complex_method = 1
41 ; Nonzero if subexpressions must be evaluated from left-to-right.
43 int flag_evaluation_order = 0
45 ; Set the default region and algorithm for the integrated register
49 enum ira_algorithm flag_ira_algorithm = IRA_ALGORITHM_CB
52 enum ira_region flag_ira_region = IRA_REGION_MIXED
54 ; Language specific warning pass for unused results.
56 bool flag_warn_unused_result = false
61 ; Floating-point contraction mode, fast by default.
63 enum fp_contract_mode flag_fp_contract_mode = FP_CONTRACT_FAST
65 ; The excess precision specified on the command line, or defaulted by
68 enum excess_precision flag_excess_precision_cmdline = EXCESS_PRECISION_DEFAULT
70 ; Nonzero if we should write GIMPLE bytecode for link-time optimization.
74 ; True to warn about any objects definitions whose size is larger
75 ; than N bytes. Also want about function definitions whose returned
76 ; values are larger than N bytes, where N is 'larger_than_size'.
81 HOST_WIDE_INT larger_than_size
83 ; True to warn about any function whose frame size is larger
86 bool warn_frame_larger_than
89 HOST_WIDE_INT frame_larger_than_size
91 ; Nonzero means we should be saving declaration info into a .X file.
93 int flag_gen_aux_info = 0
95 ; Nonzero if we are compiling code for a shared library, zero for
100 ; The default visibility for all symbols (unless overridden).
102 enum symbol_visibility default_visibility = VISIBILITY_DEFAULT
104 ; Set to the default thread-local storage (tls) model to use.
106 enum tls_model flag_tls_default = TLS_MODEL_GLOBAL_DYNAMIC
108 ; These two are really VEC(char_p,heap) *.
111 void *flag_instrument_functions_exclude_functions
114 void *flag_instrument_functions_exclude_files
116 ; Generic structs (e.g. templates not explicitly specialized)
117 ; may not have a compilation unit associated with them, and so
118 ; may need to be treated differently from ordinary structs.
120 ; Structs only handled by reference (indirectly), will also usually
121 ; not need as much debugging information.
124 enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
127 enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
129 ; True if we should exit after parsing options.
131 bool exit_after_options
133 ; Type(s) of debugging information we are producing (if any). See
134 ; flag-types.h for the definitions of the different possible types of
135 ; debugging information.
137 enum debug_info_type write_symbols = NO_DEBUG
139 ; Level of debugging information we are producing. See flag-types.h
140 ; for the definitions of the different possible levels.
142 enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
144 ; Nonzero means use GNU-only extensions in the generated symbolic
145 ; debugging information. Currently, this only has an effect when
146 ; write_symbols is set to DBX_DEBUG, XCOFF_DEBUG, or DWARF_DEBUG.
148 bool use_gnu_debug_info_extensions
160 Driver Alias(coverage)
166 Common Separate Alias(d)
169 Common Joined Alias(d)
172 Common Separate Alias(dumpbase)
175 Common Separate Alias(dumpdir)
178 Driver Separate Alias(e)
181 Driver Joined Alias(e)
184 Common Warning Alias(Wextra)
187 Driver Separate Alias(Xassembler)
190 Driver JoinedOrMissing Alias(Xassembler)
193 Driver Separate Alias(Xlinker)
196 Driver JoinedOrMissing Alias(Xlinker)
199 Driver Separate Alias(u)
202 Driver Joined Alias(u)
205 Common Driver Var(help_flag)
206 Display this information
209 Common Driver Report Joined
210 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
213 Driver Separate Alias(x)
216 Driver Joined Alias(x)
219 Driver Separate Alias(L)
222 Driver Joined Alias(L)
224 -no-canonical-prefixes
225 Driver Alias(no-canonical-prefixes)
227 -no-standard-libraries
228 Driver Alias(nostdlib)
237 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
240 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
243 Driver Alias(pass-exit-codes)
246 Common Alias(pedantic)
249 Common Alias(pedantic-errors)
258 Driver Separate Alias(B)
261 Driver JoinedOrMissing Alias(B)
267 Driver Separate Alias(print-file-name=)
270 Driver JoinedOrMissing Alias(print-file-name=)
272 -print-libgcc-file-name
273 Driver Alias(print-libgcc-file-name)
275 -print-multi-directory
276 Driver Alias(print-multi-directory)
279 Driver Alias(print-multi-lib)
281 -print-multi-os-directory
282 Driver Alias(print-multi-os-directory)
285 Driver Separate Alias(print-prog-name=)
288 Driver JoinedOrMissing Alias(print-prog-name=)
291 Driver Alias(print-search-dirs)
294 Driver Alias(print-sysroot)
296 -print-sysroot-headers-suffix
297 Driver Alias(print-sysroot-headers-suffix)
303 Driver Alias(save-temps)
309 Driver Separate Alias(specs=)
312 Driver Joined Alias(specs=)
318 Driver Alias(symbolic)
322 Alias for --help=target
330 ;; The driver used to convert options such as --help into forms such
331 ;; as -fhelp; the following four entries are for compatibility with
332 ;; any direct uses of those (undocumented) -f forms
334 Common Driver Alias(-help)
337 Common Driver Joined Alias(-help=)
340 Common Driver Alias(-target-help)
343 Common Driver Alias(-version)
347 --param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
350 Common Joined Alias(-param)
353 Driver Separate Alias(-sysroot=)
356 Driver JoinedOrMissing
362 Driver Joined Separate
368 Driver Joined Separate
371 Common JoinedOrMissing Optimization
372 -O<number> Set optimization level to <number>
376 Optimize for space rather than speed
380 Optimize for speed disregarding exact standards compliance
383 Driver Joined Separate
389 Driver Joined Separate
401 Common RejectNegative Warning Alias(Wextra)
402 This switch is deprecated; use -Wextra instead
405 Driver JoinedOrMissing
408 Driver JoinedOrMissing
411 Driver JoinedOrMissing
414 Common Var(warn_aggregate_return) Warning
415 Warn about returning structures, unions or arrays
418 Common Var(warn_array_bounds) Warning
419 Warn if an array is accessed out of bounds
422 Common Var(warn_attributes) Init(1) Warning
423 Warn about inappropriate attribute usage
426 Common Var(warn_cast_align) Warning
427 Warn about pointer casts which increase alignment
430 Common Var(warn_cpp) Init(1) Warning
431 Warn when a #warning directive is encountered
433 Wdeprecated-declarations
434 Common Var(warn_deprecated_decl) Init(1) Warning
435 Warn about uses of __attribute__((deprecated)) declarations
437 Wdisabled-optimization
438 Common Var(warn_disabled_optimization) Warning
439 Warn when an optimization pass is disabled
442 Common Var(warnings_are_errors)
443 Treat all warnings as errors
447 Treat specified warning as error
450 Common Var(extra_warnings) Warning
451 Print extra (possibly unwanted) warnings
454 Common Var(flag_fatal_errors)
455 Exit on the first error occurred
458 Common RejectNegative Joined UInteger
459 -Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
462 Common Var(warn_inline) Warning
463 Warn when an inlined function cannot be inlined
466 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
469 Common RejectNegative Joined UInteger Warning
470 -Wlarger-than=<number> Warn if an object is larger than <number> bytes
472 Wunsafe-loop-optimizations
473 Common Var(warn_unsafe_loop_optimizations) Warning
474 Warn if the loop cannot be optimized due to nontrivial assumptions.
477 Common Var(warn_missing_noreturn) Warning
478 Warn about functions which might be candidates for __attribute__((noreturn))
481 Common Var(warn_mudflap) Init(1) Warning
482 Warn about constructs not instrumented by -fmudflap
485 Common Var(warn_overflow) Init(1) Warning
486 Warn about overflow in arithmetic expressions
489 Common Var(warn_packed) Warning
490 Warn when the packed attribute has no effect on struct layout
493 Common Var(warn_padded) Warning
494 Warn when padding is required to align structure members
497 Common Var(warn_shadow) Warning
498 Warn when one local variable shadows another
501 Common Var(warn_stack_protect) Warning
502 Warn when not issuing stack smashing protection for some reason
506 Warn about code which might break strict aliasing rules
509 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
510 Warn about code which might break strict aliasing rules
514 Warn about optimizations that assume that signed overflow is undefined
517 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
518 Warn about optimizations that assume that signed overflow is undefined
520 Wsuggest-attribute=const
521 Common Var(warn_suggest_attribute_const) Warning
522 Warn about functions which might be candidates for __attribute__((const))
524 Wsuggest-attribute=pure
525 Common Var(warn_suggest_attribute_pure) Warning
526 Warn about functions which might be candidates for __attribute__((pure))
528 Wsuggest-attribute=noreturn
529 Common Var(warn_suggest_attribute_noreturn) Warning
530 Warn about functions which might be candidates for __attribute__((noreturn))
533 Common Var(warn_switch) Warning
534 Warn about enumerated switches, with no default, missing a case
537 Common Var(warn_switch_default) Warning
538 Warn about enumerated switches missing a \"default:\" statement
541 Common Var(warn_switch_enum) Warning
542 Warn about all enumerated switches missing a specific case
545 Common Var(warn_system_headers) Warning
546 Do not suppress warnings from system headers
549 Common Var(warn_trampolines) Warning
550 Warn whenever a trampoline is generated
553 Common Var(warn_type_limits) Init(-1) Warning
554 Warn if a comparison is always true or always false due to the limited range of the data type
557 Common Var(warn_uninitialized) Init(-1) Warning
558 Warn about uninitialized automatic variables
562 Does nothing. Preserved for backward compatibility.
565 Common Var(warn_unused) Init(0) Warning
566 Enable all -Wunused- warnings
568 Wunused-but-set-parameter
569 Common Var(warn_unused_but_set_parameter) Init(-1) Warning
570 Warn when a function parameter is only set, otherwise unused
572 Wunused-but-set-variable
573 Common Var(warn_unused_but_set_variable) Init(-1) Warning
574 Warn when a variable is only set, otherwise unused
577 Common Var(warn_unused_function) Init(-1) Warning
578 Warn when a function is unused
581 Common Var(warn_unused_label) Init(-1) Warning
582 Warn when a label is unused
585 Common Var(warn_unused_parameter) Init(-1) Warning
586 Warn when a function parameter is unused
589 Common Var(warn_unused_value) Init(-1) Warning
590 Warn when an expression value is unused
593 Common Var(warn_unused_variable) Init(-1) Warning
594 Warn when a variable is unused
597 Common Var(warn_coverage_mismatch) Init(1) Warning
598 Warn in case profiles in -fprofile-use do not match
610 Common Separate Var(aux_info_file_name)
611 -aux-info <file> Emit declaration information into <file>
614 Common Joined Alias(aux-info)
617 Common Separate RejectDriver Var(aux_base_name)
620 Common Separate RejectDriver
630 -d<letters> Enable dumps from specific passes of the compiler
633 Common Separate Var(dump_base_name)
634 -dumpbase <file> Set the file basename to be used for dumps
637 Common Separate Var(dump_dir_name)
638 -dumpdir <dir> Set the directory name to be used for dumps
650 Driver Joined Separate
652 ; The version of the C++ ABI in use. The following values are allowed:
654 ; 0: The version of the ABI believed most conformant with the C++ ABI
655 ; specification. This ABI may change as bugs are discovered and fixed.
656 ; Therefore, 0 will not necessarily indicate the same ABI in different
659 ; 1: The version of the ABI first used in G++ 3.2.
661 ; 2: The version of the ABI first used in G++ 3.4 (and current default).
663 ; 3: The version of the ABI that fixes the missing underscore
664 ; in template non-type arguments of pointer type.
666 ; 4: The version of the ABI that introduces unambiguous mangling of
669 ; Additional positive integers will be assigned as new versions of
670 ; the ABI become the default version of the ABI.
672 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
675 Common Report Var(align_functions,0) Optimization UInteger
676 Align the start of functions
679 Common RejectNegative Joined UInteger Var(align_functions)
682 Common Report Var(align_jumps,0) Optimization UInteger
683 Align labels which are only reached by jumping
686 Common RejectNegative Joined UInteger Var(align_jumps)
689 Common Report Var(align_labels,0) Optimization UInteger
693 Common RejectNegative Joined UInteger Var(align_labels)
696 Common Report Var(align_loops,0) Optimization UInteger
697 Align the start of loops
700 Common RejectNegative Joined UInteger Var(align_loops)
704 Does nothing. Preserved for backward compatibility.
708 Does nothing. Preserved for backward compatibility.
710 fargument-noalias-global
712 Does nothing. Preserved for backward compatibility.
714 fargument-noalias-anything
716 Does nothing. Preserved for backward compatibility.
718 fasynchronous-unwind-tables
719 Common Report Var(flag_asynchronous_unwind_tables) Optimization
720 Generate unwind tables that are exact at each instruction boundary
723 Common Report Var(flag_auto_inc_dec) Init(1)
724 Generate auto-inc/dec instructions
726 ; -fcheck-bounds causes gcc to generate array bounds checks.
727 ; For C, C++ and ObjC: defaults off.
728 ; For Java: defaults to on.
729 ; For Fortran: defaults to off.
731 Common Report Var(flag_bounds_check)
732 Generate code to check bounds before indexing arrays
735 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
736 Replace add, compare, branch with branch on count register
738 fbranch-probabilities
739 Common Report Var(flag_branch_probabilities) Optimization
740 Use profiling information for branch probabilities
742 fbranch-target-load-optimize
743 Common Report Var(flag_branch_target_load_optimize) Optimization
744 Perform branch target load optimization before prologue / epilogue threading
746 fbranch-target-load-optimize2
747 Common Report Var(flag_branch_target_load_optimize2) Optimization
748 Perform branch target load optimization after prologue / epilogue threading
751 Common Report Var(flag_btr_bb_exclusive) Optimization
752 Restrict target load migration not to re-use registers in any basic block
755 Common Joined RejectNegative Var(common_deferred_options) Defer
756 -fcall-saved-<register> Mark <register> as being preserved across functions
759 Common Joined RejectNegative Var(common_deferred_options) Defer
760 -fcall-used-<register> Mark <register> as being corrupted by function calls
762 ; Nonzero for -fcaller-saves: allocate values in regs that need to
763 ; be saved across function calls, if that produces overall better code.
764 ; Optional now, so people can test it.
766 Common Report Var(flag_caller_saves) Optimization
767 Save registers around function calls
770 Common Report Var(flag_check_data_deps)
771 Compare the results of several data dependence analyzers.
773 fcombine-stack-adjustments
774 Common Report Var(flag_combine_stack_adjustments) Optimization
775 Looks for opportunities to reduce stack adjustments and stack references.
778 Common Report Var(flag_no_common,0) Optimization
779 Do not put uninitialized globals in the common section
783 ; Converted by the driver to -fcompare-debug= options.
786 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
787 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
789 fcompare-debug-second
790 Common Driver RejectNegative
791 Run only the second compilation of -fcompare-debug
794 Common Var(flag_conserve_stack) Optimization
795 Do not perform optimizations increasing noticeably stack usage
798 Common Report Var(flag_cprop_registers) Optimization
799 Perform a register copy-propagation optimization pass
802 Common Report Var(flag_crossjumping) Optimization
803 Perform cross-jumping optimization
806 Common Report Var(flag_cse_follow_jumps) Optimization
807 When running CSE, follow jumps to their targets
811 Does nothing. Preserved for backward compatibility.
814 Common Report Var(flag_cx_limited_range) Optimization
815 Omit range reduction step when performing complex division
818 Common Report Var(flag_cx_fortran_rules) Optimization
819 Complex multiplication and division follow Fortran rules
822 Common Report Var(flag_data_sections) Optimization
823 Place data items into their own section
827 List all available debugging counters with their limits and counts.
830 Common RejectNegative Joined
831 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
834 Common Joined RejectNegative
835 Map one directory name to another in debug information
837 ; Nonzero for -fdefer-pop: don't pop args after each function call
838 ; instead save them up to pop many calls' args with one insns.
840 Common Report Var(flag_defer_pop) Optimization
841 Defer popping functions args from stack until later
844 Common Report Var(flag_delayed_branch) Optimization
845 Attempt to fill delay slots of branch instructions
847 fdelete-null-pointer-checks
848 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
849 Delete useless null pointer checks
851 fdiagnostics-show-location=
852 Common Joined RejectNegative
853 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
855 fdiagnostics-show-option
856 Common Var(flag_diagnostics_show_option) Init(1)
857 Amend appropriate diagnostic messages with the command line option that controls them
860 Common Joined RejectNegative Var(common_deferred_options) Defer
861 -fdump-<type> Dump various compiler internals to a file
864 Driver RejectNegative
867 Common RejectNegative Joined Var(flag_dump_final_insns)
868 -fdump-final-insns=filename Dump to filename the insns at the end of translation
871 Common RejectNegative Joined Var(flag_dump_go_spec)
872 -fdump-go-spec=filename Write all declarations to file as Go code
875 Common Report Var(flag_dump_noaddr)
876 Suppress output of addresses in debugging dumps
879 Common Report Var(flag_dump_unnumbered)
880 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
882 fdump-unnumbered-links
883 Common Report Var(flag_dump_unnumbered_links)
884 Suppress output of previous and next insn numbers in debugging dumps
887 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
888 Enable CFI tables via GAS assembler directives.
891 Common Report Var(flag_early_inlining) Init(1) Optimization
892 Perform early inlining
894 feliminate-dwarf2-dups
895 Common Report Var(flag_eliminate_dwarf2_dups)
896 Perform DWARF2 duplicate elimination
899 Common Report Var(flag_ipa_sra) Init(0) Optimization
900 Perform interprocedural reduction of aggregates
902 feliminate-unused-debug-symbols
903 Common Report Var(flag_debug_only_used_symbols)
904 Perform unused type elimination in debug info
906 feliminate-unused-debug-types
907 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
908 Perform unused type elimination in debug info
910 femit-class-debug-always
911 Common Report Var(flag_emit_class_debug_always) Init(0)
912 Do not suppress C++ class debug information.
915 Common Report Var(flag_enable_icf_debug)
916 Generate debug information to support Identical Code Folding (ICF)
919 Common Report Var(flag_exceptions) Optimization
920 Enable exception handling
922 fexpensive-optimizations
923 Common Report Var(flag_expensive_optimizations) Optimization
924 Perform a number of minor, expensive optimizations
927 Common Joined RejectNegative
928 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
934 Common Report Var(flag_finite_math_only) Optimization
935 Assume no NaNs or infinities are generated
938 Common Joined RejectNegative Var(common_deferred_options) Defer
939 -ffixed-<register> Mark <register> as being unavailable to the compiler
942 Common Report Var(flag_float_store) Optimization
943 Don't allocate floats and doubles in extended-precision registers
947 Does nothing. Preserved for backward compatibility.
950 Common Report Var(flag_forward_propagate) Optimization
951 Perform a forward propagation pass on RTL
954 Common Joined RejectNegative
955 -ffp-contract=[off|on|fast] Perform floating-point expression contraction.
957 ; Nonzero means don't put addresses of constant functions in registers.
958 ; Used for compiling the Unix kernel, where strange substitutions are
959 ; done on the assembly output.
961 Common Report Var(flag_no_function_cse,0)
962 Allow function addresses to be held in registers
965 Common Report Var(flag_function_sections)
966 Place each function into its own section
969 Common Report Var(flag_gcse) Optimization
970 Perform global common subexpression elimination
973 Common Report Var(flag_gcse_lm) Init(1) Optimization
974 Perform enhanced load motion during global common subexpression elimination
977 Common Report Var(flag_gcse_sm) Init(0) Optimization
978 Perform store motion after global common subexpression elimination
981 Common Report Var(flag_gcse_las) Init(0) Optimization
982 Perform redundant load after store elimination in global common subexpression
986 Common Report Var(flag_gcse_after_reload) Optimization
987 Perform global common subexpression elimination after register allocation
990 ; This option is not documented yet as its semantics will change.
992 Common Report Var(flag_graphite)
993 Enable in and out of Graphite representation
996 Common Report Var(flag_graphite_identity) Optimization
997 Enable Graphite Identity transformation
999 floop-parallelize-all
1000 Common Report Var(flag_loop_parallelize_all) Optimization
1001 Mark all loops as parallel
1004 Common Report Var(flag_loop_strip_mine) Optimization
1005 Enable Loop Strip Mining transformation
1008 Common Report Var(flag_loop_interchange) Optimization
1009 Enable Loop Interchange transformation
1012 Common Report Var(flag_loop_block) Optimization
1013 Enable Loop Blocking transformation
1016 Common Report Var(flag_loop_flatten) Optimization
1017 Enable Loop Flattening transformation
1019 fstrict-volatile-bitfields
1020 Common Report Var(flag_strict_volatile_bitfields) Init(-1)
1021 Force bitfield accesses to match their type width
1023 fguess-branch-probability
1024 Common Report Var(flag_guess_branch_prob) Optimization
1025 Enable guessing of branch probabilities
1027 ; Nonzero means ignore `#ident' directives. 0 means handle them.
1028 ; Generate position-independent code for executables if possible
1029 ; On SVR4 targets, it also controls whether or not to emit a
1030 ; string identifying the compiler.
1032 Common Report Var(flag_no_ident,0)
1033 Process #ident directives
1036 Common Report Var(flag_if_conversion) Optimization
1037 Perform conversion of conditional jumps to branchless equivalents
1040 Common Report Var(flag_if_conversion2) Optimization
1041 Perform conversion of conditional jumps to conditional execution
1043 ftree-loop-if-convert
1044 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
1045 Convert conditional jumps in innermost loops to branchless equivalents
1047 ftree-loop-if-convert-stores
1048 Common Report Var(flag_tree_loop_if_convert_stores) Optimization
1049 Also if-convert conditional jumps containing memory writes
1051 ; -finhibit-size-directive inhibits output of .size for ELF.
1052 ; This is used only for compiling crtstuff.c,
1053 ; and it may be extended to other effects
1054 ; needed for crtstuff.c on other systems.
1055 finhibit-size-directive
1056 Common Report Var(flag_inhibit_size_directive)
1057 Do not generate .size directives
1060 Common Report Var(flag_indirect_inlining)
1061 Perform indirect inlining
1063 ; Nonzero means that functions declared `inline' will be treated
1064 ; as `static'. Prevents generation of zillions of copies of unused
1065 ; static inline functions; instead, `inlines' are written out
1066 ; only when actually used. Used in conjunction with -g. Also
1067 ; does the right thing with #pragma interface.
1069 Common Report Var(flag_no_inline,0) Init(0)
1070 Pay attention to the \"inline\" keyword
1072 finline-small-functions
1073 Common Report Var(flag_inline_small_functions) Optimization
1074 Integrate simple functions into their callers when code size is known to not growth
1077 Common Report Var(flag_inline_functions) Optimization
1078 Integrate simple functions into their callers
1080 finline-functions-called-once
1081 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
1082 Integrate functions called once into their callers
1085 Common RejectNegative Joined Alias(finline-limit=)
1088 Common RejectNegative Joined UInteger
1089 -finline-limit=<number> Limit the size of inlined functions to <number>
1091 finstrument-functions
1092 Common Report Var(flag_instrument_function_entry_exit)
1093 Instrument function entry and exit with profiling calls
1095 finstrument-functions-exclude-function-list=
1096 Common RejectNegative Joined
1097 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
1099 finstrument-functions-exclude-file-list=
1100 Common RejectNegative Joined
1101 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
1104 Common Report Var(flag_ipa_cp) Optimization
1105 Perform Interprocedural constant propagation
1108 Common Report Var(flag_ipa_cp_clone) Optimization
1109 Perform cloning to make Interprocedural constant propagation stronger
1112 Common Report Var(flag_ipa_profile) Init(0) Optimization
1113 Perform interprocedural profile propagation
1116 Common Report Var(flag_ipa_pta) Init(0) Optimization
1117 Perform interprocedural points-to analysis
1120 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
1121 Discover pure and const functions
1124 Common Report Var(flag_ipa_reference) Init(0) Optimization
1125 Discover readonly and non addressable static variables
1128 Common Report Var(flag_ipa_matrix_reorg) Optimization
1129 Perform matrix layout flattening and transposing based
1130 on profiling information.
1133 Common Report Var(flag_ipa_struct_reorg)
1134 Perform structure layout optimizations based
1135 on profiling information.
1138 Common Joined RejectNegative
1139 -fira-algorithm=[CB|priority] Set the used IRA algorithm
1142 Common Joined RejectNegative
1143 -fira-region=[one|all|mixed] Set regions for IRA
1146 Common Report Var(flag_ira_loop_pressure)
1147 Use IRA based register pressure calculation
1148 in RTL loop optimizations.
1150 fira-share-save-slots
1151 Common Report Var(flag_ira_share_save_slots) Init(1)
1152 Share slots for saving different hard registers.
1154 fira-share-spill-slots
1155 Common Report Var(flag_ira_share_spill_slots) Init(1)
1156 Share stack slots for spilled pseudo-registers.
1159 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
1160 -fira-verbose=<number> Control IRA's level of diagnostic messages.
1163 Common Report Var(flag_ivopts) Init(1) Optimization
1164 Optimize induction variables on trees
1167 Common Var(flag_jump_tables) Init(1) Optimization
1168 Use jump tables for sufficiently large switch statements
1170 fkeep-inline-functions
1171 Common Report Var(flag_keep_inline_functions)
1172 Generate code for functions even if they are fully inlined
1175 Common Report Var(flag_keep_static_consts) Init(1)
1176 Emit static const variables even if they are not used
1179 Common Report Var(flag_leading_underscore) Init(-1)
1180 Give external symbols a leading underscore
1184 Does nothing. Preserved for backward compatibility.
1188 Enable link-time optimization.
1191 Common RejectNegative Joined Var(flag_lto)
1192 Link-time optimization with number of parallel jobs or jobserver.
1195 Common Var(flag_lto_partition_1to1)
1196 Partition functions and vars at linktime based on object files they originate from
1198 flto-partition=balanced
1199 Common Var(flag_lto_partition_balanced)
1200 Partition functions and vars at linktime into approximately same sized buckets
1203 Common Var(flag_lto_partition_none)
1204 Disable partioning and streaming
1206 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1207 flto-compression-level=
1208 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
1209 -flto-compression-level=<number> Use zlib compression level <number> for IL
1212 Common Report Var(flag_lto_report) Init(0) Optimization
1213 Report various link-time optimization statistics
1216 Common Report Var(flag_errno_math) Init(1) Optimization
1217 Set errno after built-in math functions
1220 Common Joined RejectNegative UInteger Var(flag_max_errors)
1221 -fmax-errors=<number> Maximum number of errors to report
1224 Common Report Var(mem_report)
1225 Report on permanent memory allocation
1227 ; This will attempt to merge constant section constants, if 1 only
1228 ; string constants and constants from constant pool, if 2 also constant
1230 fmerge-all-constants
1231 Common Report Var(flag_merge_constants,2) Init(1) Optimization
1232 Attempt to merge identical constants and constant variables
1235 Common Report Var(flag_merge_constants,1) Optimization
1236 Attempt to merge identical constants across compilation units
1238 fmerge-debug-strings
1239 Common Report Var(flag_merge_debug_strings) Init(1)
1240 Attempt to merge identical debug strings across compilation units
1243 Common RejectNegative Joined UInteger
1244 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
1247 Common Report Var(flag_modulo_sched) Optimization
1248 Perform SMS based modulo scheduling before the first scheduling pass
1250 fmodulo-sched-allow-regmoves
1251 Common Report Var(flag_modulo_sched_allow_regmoves)
1252 Perform SMS based modulo scheduling with register moves allowed
1254 fmove-loop-invariants
1255 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
1256 Move loop invariant computations out of loops
1259 Common RejectNegative Report Var(flag_mudflap)
1260 Add mudflap bounds-checking instrumentation for single-threaded program
1263 Common RejectNegative Report Var(flag_mudflap,2)
1264 Add mudflap bounds-checking instrumentation for multi-threaded program
1267 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
1268 Ignore read operations when inserting mudflap instrumentation
1271 Common Var(flag_dce) Init(1) Optimization
1272 Use the RTL dead code elimination pass
1275 Common Var(flag_dse) Init(1) Optimization
1276 Use the RTL dead store elimination pass
1278 freschedule-modulo-scheduled-loops
1279 Common Report Var(flag_resched_modulo_sched) Optimization
1280 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
1282 fnon-call-exceptions
1283 Common Report Var(flag_non_call_exceptions) Optimization
1284 Support synchronous non-call exceptions
1287 Common Report Var(flag_omit_frame_pointer) Optimization
1288 When possible do not generate stack frames
1290 foptimize-register-move
1291 Common Report Var(flag_regmove) Optimization
1292 Do the full register move optimization pass
1294 foptimize-sibling-calls
1295 Common Report Var(flag_optimize_sibling_calls) Optimization
1296 Optimize sibling and tail recursive calls
1299 Common Report Var(flag_partial_inlining)
1300 Perform partial inlining
1303 Common Report Var(pre_ipa_mem_report)
1304 Report on memory allocation before interprocedural optimization
1306 fpost-ipa-mem-report
1307 Common Report Var(post_ipa_mem_report)
1308 Report on memory allocation before interprocedural optimization
1311 Common Report Var(flag_pack_struct) Optimization
1312 Pack structure members together without holes
1315 Common RejectNegative Joined UInteger Optimization
1316 -fpack-struct=<number> Set initial maximum structure member alignment
1319 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
1320 Return small aggregates in memory, not registers
1323 Common Report Var(flag_peel_loops) Optimization
1324 Perform loop peeling
1327 Common Report Var(flag_no_peephole,0) Optimization
1328 Enable machine specific peephole optimizations
1331 Common Report Var(flag_peephole2) Optimization
1332 Enable an RTL peephole pass before sched2
1335 Common Report Var(flag_pic,2)
1336 Generate position-independent code if possible (large mode)
1339 Common Report Var(flag_pie,2)
1340 Generate position-independent code for executables if possible (large mode)
1343 Common Report Var(flag_pic,1)
1344 Generate position-independent code if possible (small mode)
1347 Common Report Var(flag_pie,1)
1348 Generate position-independent code for executables if possible (small mode)
1351 Common Joined RejectNegative Var(common_deferred_options) Defer
1352 Specify a plugin to load
1355 Common Joined RejectNegative Var(common_deferred_options) Defer
1356 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
1358 fpredictive-commoning
1359 Common Report Var(flag_predictive_commoning) Optimization
1360 Run predictive commoning optimization.
1362 fprefetch-loop-arrays
1363 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
1364 Generate prefetch instructions, if available, for arrays in loops
1367 Common Report Var(profile_flag)
1368 Enable basic program profiling code
1371 Common Report Var(profile_arc_flag)
1372 Insert arc-based program profiling code
1375 Common Joined RejectNegative Var(profile_data_prefix)
1376 Set the top-level directory for storing the profile data.
1377 The default is 'pwd'.
1380 Common Report Var(flag_profile_correction)
1381 Enable correction of flow inconsistent profile data input
1385 Enable common options for generating profile info for profile feedback directed optimizations
1388 Common Joined RejectNegative
1389 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1392 Common Var(flag_profile_use)
1393 Enable common options for performing profile feedback directed optimizations
1396 Common Joined RejectNegative
1397 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1400 Common Report Var(flag_profile_values)
1401 Insert code to profile values of expressions
1407 Common Joined RejectNegative
1408 -frandom-seed=<string> Make compile reproducible using <string>
1410 ; This switch causes the command line that was used to create an
1411 ; object file to be recorded into the object file. The exact format
1412 ; of this recording is target and binary file format dependent.
1413 ; It is related to the -fverbose-asm switch, but that switch only
1414 ; records information in the assembler output file as comments, so
1415 ; they never reach the object file.
1416 frecord-gcc-switches
1417 Common Report Var(flag_record_gcc_switches)
1418 Record gcc command line switches in the object file.
1421 Common Report Var(flag_pcc_struct_return,0) Optimization
1422 Return small aggregates in registers
1425 Common Report Var(flag_regmove) Optimization
1426 Enables a register move optimization
1429 Common Report Var(flag_rename_registers) Init(2) Optimization
1430 Perform a register renaming optimization pass
1433 Common Report Var(flag_reorder_blocks) Optimization
1434 Reorder basic blocks to improve code placement
1436 freorder-blocks-and-partition
1437 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1438 Reorder basic blocks and partition into hot and cold sections
1441 Common Report Var(flag_reorder_functions) Optimization
1442 Reorder functions to improve code placement
1444 frerun-cse-after-loop
1445 Common Report Var(flag_rerun_cse_after_loop) Optimization
1446 Add a common subexpression elimination pass after loop optimizations
1450 Does nothing. Preserved for backward compatibility.
1453 Common Report Var(flag_rounding_math) Optimization
1454 Disable optimizations that assume default FP rounding behavior
1457 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1458 Enable scheduling across basic blocks
1461 Common Report Var(flag_sched_pressure) Init(0) Optimization
1462 Enable register pressure sensitive insn scheduling
1465 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1466 Allow speculative motion of non-loads
1469 Common Report Var(flag_schedule_speculative_load) Optimization
1470 Allow speculative motion of some loads
1472 fsched-spec-load-dangerous
1473 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1474 Allow speculative motion of more loads
1477 Common RejectNegative Joined
1478 -fsched-verbose=<number> Set the verbosity level of the scheduler
1480 fsched2-use-superblocks
1481 Common Report Var(flag_sched2_use_superblocks) Optimization
1482 If scheduling post reload, do superblock scheduling
1486 Does nothing. Preserved for backward compatibility.
1489 Common Report Var(flag_schedule_insns) Optimization
1490 Reschedule instructions before register allocation
1493 Common Report Var(flag_schedule_insns_after_reload) Optimization
1494 Reschedule instructions after register allocation
1496 ; This flag should be on when a target implements non-trivial
1497 ; scheduling hooks, maybe saving some information for its own sake.
1498 ; On IA64, for example, this is used for correct bundling.
1499 fselective-scheduling
1500 Common Report Var(flag_selective_scheduling) Optimization
1501 Schedule instructions using selective scheduling algorithm
1503 fselective-scheduling2
1504 Common Report Var(flag_selective_scheduling2) Optimization
1505 Run selective scheduling after reload
1507 fsel-sched-pipelining
1508 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1509 Perform software pipelining of inner loops during selective scheduling
1511 fsel-sched-pipelining-outer-loops
1512 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1513 Perform software pipelining of outer loops during selective scheduling
1515 fsel-sched-reschedule-pipelined
1516 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1517 Reschedule pipelined regions without pipelining
1519 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1520 ; of stalled insns into the ready list.
1521 fsched-stalled-insns
1522 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1523 Allow premature scheduling of queued insns
1525 fsched-stalled-insns=
1526 Common RejectNegative Joined UInteger
1527 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
1529 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1530 ; be examined for a dependency on a stalled insn that is candidate for
1531 ; premature removal from the queue of stalled insns into the ready list (has
1532 ; an effect only if the flag 'sched_stalled_insns' is set).
1533 fsched-stalled-insns-dep
1534 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1535 Set dependence distance checking in premature scheduling of queued insns
1537 fsched-stalled-insns-dep=
1538 Common RejectNegative Joined UInteger
1539 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
1541 fsched-group-heuristic
1542 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1543 Enable the group heuristic in the scheduler
1545 fsched-critical-path-heuristic
1546 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1547 Enable the critical path heuristic in the scheduler
1549 fsched-spec-insn-heuristic
1550 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1551 Enable the speculative instruction heuristic in the scheduler
1553 fsched-rank-heuristic
1554 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1555 Enable the rank heuristic in the scheduler
1557 fsched-last-insn-heuristic
1558 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1559 Enable the last instruction heuristic in the scheduler
1561 fsched-dep-count-heuristic
1562 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1563 Enable the dependent count heuristic in the scheduler
1566 Common Report Var(flag_section_anchors) Optimization
1567 Access data in the same section from shared anchor points
1571 Does nothing. Preserved for backward compatibility.
1574 Common Report Var(flag_zee) Init(0)
1575 Eliminate redundant zero extensions on targets that support implicit extensions.
1578 Common Report Var(flag_show_column) Init(1)
1579 Show column numbers in diagnostics, when available. Default on
1582 Common Report Var(flag_signaling_nans) Optimization
1583 Disable optimizations observable by IEEE signaling NaNs
1586 Common Report Var(flag_signed_zeros) Init(1) Optimization
1587 Disable floating point optimizations that ignore the IEEE signedness of zero
1589 fsingle-precision-constant
1590 Common Report Var(flag_single_precision_constant) Optimization
1591 Convert floating point constants to single precision constants
1593 fsplit-ivs-in-unroller
1594 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1595 Split lifetimes of induction variables when loops are unrolled
1598 Common Report Var(flag_split_stack) Init(-1)
1599 Generate discontiguous stack frames
1602 Common Report Var(flag_split_wide_types) Optimization
1603 Split wide types into independent registers
1605 fvariable-expansion-in-unroller
1606 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1607 Apply variable expansion when loops are unrolled
1610 Common Report RejectNegative Joined
1611 -fstack-check=[no|generic|specific] Insert stack checking code into the program
1614 Common Alias(fstack-check=, specific, no)
1615 Insert stack checking code into the program. Same as -fstack-check=specific
1618 Common Var(common_deferred_options) Defer
1620 fstack-limit-register=
1621 Common RejectNegative Joined Var(common_deferred_options) Defer
1622 -fstack-limit-register=<register> Trap if the stack goes past <register>
1624 fstack-limit-symbol=
1625 Common RejectNegative Joined Var(common_deferred_options) Defer
1626 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
1629 Common Report Var(flag_stack_protect, 1)
1630 Use propolice as a stack protection method
1632 fstack-protector-all
1633 Common Report RejectNegative Var(flag_stack_protect, 2)
1634 Use a stack protection method for every function
1637 Common RejectNegative Var(flag_stack_usage)
1638 Output stack usage information on a per-function basis
1642 Does nothing. Preserved for backward compatibility.
1644 ; Nonzero if we should do (language-dependent) alias analysis.
1645 ; Typically, this analysis will assume that expressions of certain
1646 ; types do not alias expressions of certain other types. Only used
1647 ; if alias analysis (in general) is enabled.
1649 Common Report Var(flag_strict_aliasing) Optimization
1650 Assume strict aliasing rules apply
1653 Common Report Var(flag_strict_overflow)
1654 Treat signed overflow as undefined
1657 Common Report Var(flag_syntax_only)
1658 Check for syntax errors, then stop
1661 Common Report Var(flag_test_coverage)
1662 Create data files needed by \"gcov\"
1665 Common Report Var(flag_thread_jumps) Optimization
1666 Perform jump threading optimizations
1669 Common Report Var(time_report)
1670 Report the time taken by each compiler pass
1673 Common Joined RejectNegative
1674 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
1677 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1678 Reorder top level functions, variables, and asms
1681 Common Report Var(flag_tracer)
1682 Perform superblock formation via tail duplication
1684 ; Zero means that floating-point math operations cannot generate a
1685 ; (user-visible) trap. This is the case, for example, in nonstop
1686 ; IEEE 754 arithmetic.
1688 Common Report Var(flag_trapping_math) Init(1) Optimization
1689 Assume floating-point operations can trap
1692 Common Report Var(flag_trapv) Optimization
1693 Trap for signed overflow in addition, subtraction and multiplication
1696 Common Report Var(flag_tree_ccp) Optimization
1697 Enable SSA-CCP optimization on trees
1700 Common Report Var(flag_tree_bit_ccp) Optimization
1701 Enable SSA-BIT-CCP optimization on trees
1705 Does nothing. Preserved for backward compatibility.
1708 Common Report Var(flag_tree_ch) Optimization
1709 Enable loop header copying on trees
1712 Common Report Var(flag_tree_copyrename) Optimization
1713 Replace SSA temporaries with better names in copies
1716 Common Report Var(flag_tree_copy_prop) Optimization
1717 Enable copy propagation on trees
1719 ftree-store-copy-prop
1721 Does nothing. Preserved for backward compatibility.
1724 Common Report Var(flag_tree_cselim) Init(2) Optimization
1725 Transform condition stores into unconditional ones
1727 ftree-switch-conversion
1728 Common Report Var(flag_tree_switch_conversion) Optimization
1729 Perform conversions of switch initializations.
1732 Common Report Var(flag_tree_dce) Optimization
1733 Enable SSA dead code elimination optimization on trees
1735 ftree-dominator-opts
1736 Common Report Var(flag_tree_dom) Optimization
1737 Enable dominator optimizations
1740 Common Report Var(flag_tree_dse) Optimization
1741 Enable dead store elimination
1744 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1745 Enable forward propagation on trees
1748 Common Report Var(flag_tree_fre) Optimization
1749 Enable Full Redundancy Elimination (FRE) on trees
1751 ftree-loop-distribution
1752 Common Report Var(flag_tree_loop_distribution) Optimization
1753 Enable loop distribution on trees
1755 ftree-loop-distribute-patterns
1756 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1757 Enable loop distribution for patterns transformed into a library call
1760 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1761 Enable loop invariant motion on trees
1764 Common Report Var(flag_tree_loop_linear) Optimization
1765 Enable linear loop transforms on trees
1768 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1769 Create canonical induction variables in loops
1772 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1773 Enable loop optimizations on tree level
1775 ftree-parallelize-loops=
1776 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
1777 Enable automatic parallelization of loops
1780 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1781 Enable hoisting loads from conditional pointers.
1784 Common Report Var(flag_tree_pre) Optimization
1785 Enable SSA-PRE optimization on trees
1788 Common Report Var(flag_tree_pta) Init(1) Optimization
1789 Perform function-local points-to analysis on trees.
1792 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1793 Enable reassociation on tree level
1797 Does nothing. Preserved for backward compatibility.
1800 Common Report Var(flag_tree_sink) Optimization
1801 Enable SSA code sinking on trees
1804 Common Report Var(flag_tree_sra) Optimization
1805 Perform scalar replacement of aggregates
1808 Common Report Var(flag_tree_ter) Optimization
1809 Replace temporary expressions in the SSA->normal pass
1812 Common Report Var(flag_tree_live_range_split) Optimization
1813 Perform live range splitting during the SSA->normal pass
1816 Common Report Var(flag_tree_vrp) Init(0) Optimization
1817 Perform Value Range Propagation on trees
1820 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1821 Compile whole compilation unit at a time
1824 Common Report Var(flag_unroll_loops) Optimization
1825 Perform loop unrolling when iteration count is known
1828 Common Report Var(flag_unroll_all_loops) Optimization
1829 Perform loop unrolling for all loops
1831 ; Nonzero means that loop optimizer may assume that the induction variables
1832 ; that control loops do not overflow and that the loops with nontrivial
1833 ; exit condition are not infinite
1834 funsafe-loop-optimizations
1835 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1836 Allow loop optimizations to assume that the loops behave in normal way
1839 Common Report Var(flag_associative_math)
1840 Allow optimization for floating-point arithmetic which may change the
1841 result of the operation due to rounding.
1844 Common Report Var(flag_reciprocal_math)
1845 Same as -fassociative-math for expressions which include division.
1847 ; Nonzero means that unsafe floating-point math optimizations are allowed
1848 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
1849 ; are allowed to assume that their arguments and results are "normal"
1850 ; (e.g., nonnegative for SQRT).
1851 funsafe-math-optimizations
1852 Common Report Var(flag_unsafe_math_optimizations) Optimization
1853 Allow math optimizations that may violate IEEE or ISO standards
1856 Common Report Var(flag_unswitch_loops) Optimization
1857 Perform loop unswitching
1860 Common Report Var(flag_unwind_tables) Optimization
1861 Just generate unwind tables for exception handling
1866 ; Positive if we should track variables, negative if we should run
1867 ; the var-tracking pass only to discard debug annotations, zero if
1868 ; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it
1869 ; will be set according to optimize, debug_info_level and debug_hooks
1870 ; in process_options ().
1872 Common Report Var(flag_var_tracking) Init(2) Optimization
1873 Perform variable tracking
1875 ; Positive if we should track variables at assignments, negative if
1876 ; we should run the var-tracking pass only to discard debug
1877 ; annotations. When flag_var_tracking_assignments ==
1878 ; AUTODETECT_VALUE it will be set according to flag_var_tracking.
1879 fvar-tracking-assignments
1880 Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
1881 Perform variable tracking by annotating assignments
1883 ; Nonzero if we should toggle flag_var_tracking_assignments after
1884 ; processing options and computing its default. */
1885 fvar-tracking-assignments-toggle
1886 Common Report Var(flag_var_tracking_assignments_toggle) Optimization
1887 Toggle -fvar-tracking-assignments
1889 fvar-tracking-uninit
1890 Common Report Var(flag_var_tracking_uninit) Optimization
1891 Perform variable tracking and also tag variables that are uninitialized
1894 Common Report Var(flag_tree_vectorize) Optimization
1895 Enable loop vectorization on trees
1898 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1899 Enable basic block vectorization (SLP) on trees
1902 Common Report Var(flag_vect_cost_model) Optimization
1903 Enable use of cost model in vectorization
1905 ftree-vect-loop-version
1906 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1907 Enable loop versioning when doing loop vectorization on trees
1909 ftree-vectorizer-verbose=
1910 Common RejectNegative Joined
1911 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
1914 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1915 Enable copy propagation of scalar-evolution information.
1917 ; -fverbose-asm causes extra commentary information to be produced in
1918 ; the generated assembly code (to make it more readable). This option
1919 ; is generally only of use to those who actually need to read the
1920 ; generated assembly code (perhaps while debugging the compiler itself).
1921 ; -fno-verbose-asm, the default, causes the extra information
1922 ; to not be added and is useful when comparing two assembler files.
1924 Common Report Var(flag_verbose_asm)
1925 Add extra commentary to assembler output
1928 Common Joined RejectNegative
1929 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1933 Common Report Var(flag_value_profile_transformations) Optimization
1934 Use expression value profiles in optimizations
1937 Common Report Var(flag_web) Init(2) Optimization
1938 Construct webs and split unrelated uses of single variable
1940 ftree-builtin-call-dce
1941 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1942 Enable conditional dead code elimination for builtin calls
1945 Common Report Var(flag_whole_program) Init(0) Optimization
1946 Perform whole program optimizations
1949 Common Report Var(flag_wrapv) Optimization
1950 Assume signed arithmetic overflow wraps around
1952 fzero-initialized-in-bss
1953 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1954 Put zero initialized data in the bss section
1957 Common JoinedOrMissing
1958 Generate debug information in default format
1961 Common JoinedOrMissing Negative(gdwarf-)
1962 Generate debug information in COFF format
1965 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1966 Generate debug information in DWARF v2 (or later) format
1969 Common JoinedOrMissing
1970 Generate debug information in default extended format
1973 Common JoinedOrMissing Negative(gstabs+)
1974 Generate debug information in STABS format
1977 Common JoinedOrMissing Negative(gvms)
1978 Generate debug information in extended STABS format
1981 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1982 Emit DWARF additions beyond selected version
1985 Common Report RejectNegative Var(dwarf_strict,1)
1986 Don't emit DWARF additions beyond selected version
1989 Common Report Var(flag_gtoggle)
1990 Toggle debug information generation
1993 Common JoinedOrMissing Negative(gxcoff)
1994 Generate debug information in VMS format
1997 Common JoinedOrMissing Negative(gxcoff+)
1998 Generate debug information in XCOFF format
2001 Common JoinedOrMissing Negative(gcoff)
2002 Generate debug information in extended XCOFF format
2005 Driver Joined Separate
2008 Common Joined Var(plugindir_string) Init(0)
2009 -iplugindir=<dir> Set <dir> to be the default plugin directory
2012 Driver Joined Separate
2014 no-canonical-prefixes
2024 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
2025 -o <file> Place output into <file>
2028 Common Var(profile_flag)
2029 Enable function profiling
2032 Driver Var(pass_exit_codes)
2035 Common Var(pedantic)
2036 Issue warnings needed for strict compliance to the standard
2039 Common Var(flag_pedantic_errors)
2040 Like -pedantic but issue them as errors
2046 Driver Var(use_pipes)
2049 Driver JoinedOrMissing Var(print_file_name)
2051 print-libgcc-file-name
2054 print-multi-directory
2055 Driver Var(print_multi_directory)
2058 Driver Var(print_multi_lib)
2060 print-multi-os-directory
2061 Driver Var(print_multi_os_directory)
2064 Driver JoinedOrMissing Var(print_prog_name)
2067 Driver Var(print_search_dirs)
2070 Driver Var(print_sysroot)
2072 print-sysroot-headers-suffix
2073 Driver Var(print_sysroot_headers_suffix)
2076 Common Var(quiet_flag) RejectDriver
2077 Do not display functions compiled or elapsed time
2086 Driver Var(report_times)
2089 Driver JoinedOrMissing
2092 Driver Joined Separate
2096 ; C option, but driver must not handle as "-u ndef".
2099 Common Driver Var(verbose_flag)
2100 Enable verbose output
2103 Common Var(version_flag) RejectDriver
2104 Display the compiler's version
2107 Common Var(inhibit_warnings)
2111 Driver Separate Var(wrapper_string)
2114 Driver Joined Separate
2117 Common RejectNegative Negative(pie)
2118 Create a shared library
2124 Driver Separate Alias(specs=)
2137 ; Documented for Fortran, but always accepted by driver.
2146 Common RejectNegative Negative(shared)
2147 Create a position independent executable
2150 Driver Joined Separate
2152 ; This comment is to ensure we retain the blank line above.