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 }
139 Driver Alias(coverage)
145 Common Separate Alias(d)
148 Common Joined Alias(d)
151 Common Separate Alias(dumpbase)
154 Common Separate Alias(dumpdir)
157 Driver Separate Alias(e)
160 Driver Joined Alias(e)
163 Common Warning Alias(Wextra)
166 Driver Separate Alias(Xassembler)
169 Driver JoinedOrMissing Alias(Xassembler)
172 Driver Separate Alias(Xlinker)
175 Driver JoinedOrMissing Alias(Xlinker)
178 Driver Separate Alias(u)
181 Driver Joined Alias(u)
184 Common Driver Var(help_flag)
185 Display this information
188 Common Driver Report Joined
189 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
192 Driver Separate Alias(x)
195 Driver Joined Alias(x)
198 Driver Separate Alias(L)
201 Driver Joined Alias(L)
203 -no-canonical-prefixes
204 Driver Alias(no-canonical-prefixes)
206 -no-standard-libraries
207 Driver Alias(nostdlib)
216 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
219 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
222 Driver Alias(pass-exit-codes)
225 Common Alias(pedantic)
228 Common Alias(pedantic-errors)
237 Driver Separate Alias(B)
240 Driver JoinedOrMissing Alias(B)
246 Driver Separate Alias(print-file-name=)
249 Driver JoinedOrMissing Alias(print-file-name=)
251 -print-libgcc-file-name
252 Driver Alias(print-libgcc-file-name)
254 -print-multi-directory
255 Driver Alias(print-multi-directory)
258 Driver Alias(print-multi-lib)
260 -print-multi-os-directory
261 Driver Alias(print-multi-os-directory)
264 Driver Separate Alias(print-prog-name=)
267 Driver JoinedOrMissing Alias(print-prog-name=)
270 Driver Alias(print-search-dirs)
273 Driver Alias(print-sysroot)
275 -print-sysroot-headers-suffix
276 Driver Alias(print-sysroot-headers-suffix)
282 Driver Alias(save-temps)
288 Driver Separate Alias(specs=)
291 Driver Joined Alias(specs=)
297 Driver Alias(symbolic)
301 Alias for --help=target
309 ;; The driver used to convert options such as --help into forms such
310 ;; as -fhelp; the following four entries are for compatibility with
311 ;; any direct uses of those (undocumented) -f forms
313 Common Driver Alias(-help)
316 Common Driver Joined Alias(-help=)
319 Common Driver Alias(-target-help)
322 Common Driver Alias(-version)
326 --param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
329 Common Joined Alias(-param)
332 Driver Separate Alias(-sysroot=)
335 Driver JoinedOrMissing
341 Driver Joined Separate
347 Driver Joined Separate
350 Common JoinedOrMissing Optimization
351 -O<number> Set optimization level to <number>
355 Optimize for space rather than speed
359 Optimize for speed disregarding exact standards compliance
362 Driver Joined Separate
368 Driver Joined Separate
380 Common RejectNegative Warning Alias(Wextra)
381 This switch is deprecated; use -Wextra instead
384 Driver JoinedOrMissing
387 Driver JoinedOrMissing
390 Driver JoinedOrMissing
393 Common Var(warn_aggregate_return) Warning
394 Warn about returning structures, unions or arrays
397 Common Var(warn_array_bounds) Warning
398 Warn if an array is accessed out of bounds
401 Common Var(warn_attributes) Init(1) Warning
402 Warn about inappropriate attribute usage
405 Common Var(warn_cast_align) Warning
406 Warn about pointer casts which increase alignment
409 Common Var(warn_cpp) Init(1) Warning
410 Warn when a #warning directive is encountered
412 Wdeprecated-declarations
413 Common Var(warn_deprecated_decl) Init(1) Warning
414 Warn about uses of __attribute__((deprecated)) declarations
416 Wdisabled-optimization
417 Common Var(warn_disabled_optimization) Warning
418 Warn when an optimization pass is disabled
421 Common Var(warnings_are_errors)
422 Treat all warnings as errors
426 Treat specified warning as error
429 Common Var(extra_warnings) Warning
430 Print extra (possibly unwanted) warnings
433 Common Var(flag_fatal_errors)
434 Exit on the first error occurred
437 Common RejectNegative Joined UInteger
438 -Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
441 Common Var(warn_inline) Warning
442 Warn when an inlined function cannot be inlined
445 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
448 Common RejectNegative Joined UInteger Warning
449 -Wlarger-than=<number> Warn if an object is larger than <number> bytes
451 Wunsafe-loop-optimizations
452 Common Var(warn_unsafe_loop_optimizations) Warning
453 Warn if the loop cannot be optimized due to nontrivial assumptions.
456 Common Var(warn_missing_noreturn) Warning
457 Warn about functions which might be candidates for __attribute__((noreturn))
460 Common Var(warn_mudflap) Init(1) Warning
461 Warn about constructs not instrumented by -fmudflap
464 Common Var(warn_overflow) Init(1) Warning
465 Warn about overflow in arithmetic expressions
468 Common Var(warn_packed) Warning
469 Warn when the packed attribute has no effect on struct layout
472 Common Var(warn_padded) Warning
473 Warn when padding is required to align structure members
476 Common Var(warn_shadow) Warning
477 Warn when one local variable shadows another
480 Common Var(warn_stack_protect) Warning
481 Warn when not issuing stack smashing protection for some reason
485 Warn about code which might break strict aliasing rules
488 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
489 Warn about code which might break strict aliasing rules
493 Warn about optimizations that assume that signed overflow is undefined
496 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
497 Warn about optimizations that assume that signed overflow is undefined
499 Wsuggest-attribute=const
500 Common Var(warn_suggest_attribute_const) Warning
501 Warn about functions which might be candidates for __attribute__((const))
503 Wsuggest-attribute=pure
504 Common Var(warn_suggest_attribute_pure) Warning
505 Warn about functions which might be candidates for __attribute__((pure))
507 Wsuggest-attribute=noreturn
508 Common Var(warn_suggest_attribute_noreturn) Warning
509 Warn about functions which might be candidates for __attribute__((noreturn))
512 Common Var(warn_switch) Warning
513 Warn about enumerated switches, with no default, missing a case
516 Common Var(warn_switch_default) Warning
517 Warn about enumerated switches missing a \"default:\" statement
520 Common Var(warn_switch_enum) Warning
521 Warn about all enumerated switches missing a specific case
524 Common Var(warn_system_headers) Warning
525 Do not suppress warnings from system headers
528 Common Var(warn_trampolines) Warning
529 Warn whenever a trampoline is generated
532 Common Var(warn_type_limits) Init(-1) Warning
533 Warn if a comparison is always true or always false due to the limited range of the data type
536 Common Var(warn_uninitialized) Init(-1) Warning
537 Warn about uninitialized automatic variables
541 Does nothing. Preserved for backward compatibility.
544 Common Var(warn_unused) Init(0) Warning
545 Enable all -Wunused- warnings
547 Wunused-but-set-parameter
548 Common Var(warn_unused_but_set_parameter) Init(-1) Warning
549 Warn when a function parameter is only set, otherwise unused
551 Wunused-but-set-variable
552 Common Var(warn_unused_but_set_variable) Init(-1) Warning
553 Warn when a variable is only set, otherwise unused
556 Common Var(warn_unused_function) Init(-1) Warning
557 Warn when a function is unused
560 Common Var(warn_unused_label) Init(-1) Warning
561 Warn when a label is unused
564 Common Var(warn_unused_parameter) Init(-1) Warning
565 Warn when a function parameter is unused
568 Common Var(warn_unused_value) Init(-1) Warning
569 Warn when an expression value is unused
572 Common Var(warn_unused_variable) Init(-1) Warning
573 Warn when a variable is unused
576 Common Var(warn_coverage_mismatch) Init(1) Warning
577 Warn in case profiles in -fprofile-use do not match
589 Common Separate Var(aux_info_file_name)
590 -aux-info <file> Emit declaration information into <file>
593 Common Joined Alias(aux-info)
596 Common Separate RejectDriver Var(aux_base_name)
599 Common Separate RejectDriver
609 -d<letters> Enable dumps from specific passes of the compiler
612 Common Separate Var(dump_base_name)
613 -dumpbase <file> Set the file basename to be used for dumps
616 Common Separate Var(dump_dir_name)
617 -dumpdir <dir> Set the directory name to be used for dumps
629 Driver Joined Separate
631 ; The version of the C++ ABI in use. The following values are allowed:
633 ; 0: The version of the ABI believed most conformant with the C++ ABI
634 ; specification. This ABI may change as bugs are discovered and fixed.
635 ; Therefore, 0 will not necessarily indicate the same ABI in different
638 ; 1: The version of the ABI first used in G++ 3.2.
640 ; 2: The version of the ABI first used in G++ 3.4 (and current default).
642 ; 3: The version of the ABI that fixes the missing underscore
643 ; in template non-type arguments of pointer type.
645 ; 4: The version of the ABI that introduces unambiguous mangling of
648 ; Additional positive integers will be assigned as new versions of
649 ; the ABI become the default version of the ABI.
651 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
654 Common Report Var(align_functions,0) Optimization UInteger
655 Align the start of functions
658 Common RejectNegative Joined UInteger Var(align_functions)
661 Common Report Var(align_jumps,0) Optimization UInteger
662 Align labels which are only reached by jumping
665 Common RejectNegative Joined UInteger Var(align_jumps)
668 Common Report Var(align_labels,0) Optimization UInteger
672 Common RejectNegative Joined UInteger Var(align_labels)
675 Common Report Var(align_loops,0) Optimization UInteger
676 Align the start of loops
679 Common RejectNegative Joined UInteger Var(align_loops)
683 Does nothing. Preserved for backward compatibility.
687 Does nothing. Preserved for backward compatibility.
689 fargument-noalias-global
691 Does nothing. Preserved for backward compatibility.
693 fargument-noalias-anything
695 Does nothing. Preserved for backward compatibility.
697 fasynchronous-unwind-tables
698 Common Report Var(flag_asynchronous_unwind_tables) Optimization
699 Generate unwind tables that are exact at each instruction boundary
702 Common Report Var(flag_auto_inc_dec) Init(1)
703 Generate auto-inc/dec instructions
705 ; -fcheck-bounds causes gcc to generate array bounds checks.
706 ; For C, C++ and ObjC: defaults off.
707 ; For Java: defaults to on.
708 ; For Fortran: defaults to off.
710 Common Report Var(flag_bounds_check)
711 Generate code to check bounds before indexing arrays
714 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
715 Replace add, compare, branch with branch on count register
717 fbranch-probabilities
718 Common Report Var(flag_branch_probabilities) Optimization
719 Use profiling information for branch probabilities
721 fbranch-target-load-optimize
722 Common Report Var(flag_branch_target_load_optimize) Optimization
723 Perform branch target load optimization before prologue / epilogue threading
725 fbranch-target-load-optimize2
726 Common Report Var(flag_branch_target_load_optimize2) Optimization
727 Perform branch target load optimization after prologue / epilogue threading
730 Common Report Var(flag_btr_bb_exclusive) Optimization
731 Restrict target load migration not to re-use registers in any basic block
734 Common Joined RejectNegative Var(common_deferred_options) Defer
735 -fcall-saved-<register> Mark <register> as being preserved across functions
738 Common Joined RejectNegative Var(common_deferred_options) Defer
739 -fcall-used-<register> Mark <register> as being corrupted by function calls
741 ; Nonzero for -fcaller-saves: allocate values in regs that need to
742 ; be saved across function calls, if that produces overall better code.
743 ; Optional now, so people can test it.
745 Common Report Var(flag_caller_saves) Optimization
746 Save registers around function calls
749 Common Report Var(flag_check_data_deps)
750 Compare the results of several data dependence analyzers.
752 fcombine-stack-adjustments
753 Common Report Var(flag_combine_stack_adjustments) Optimization
754 Looks for opportunities to reduce stack adjustments and stack references.
757 Common Report Var(flag_no_common,0) Optimization
758 Do not put uninitialized globals in the common section
762 ; Converted by the driver to -fcompare-debug= options.
765 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
766 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
768 fcompare-debug-second
769 Common Driver RejectNegative
770 Run only the second compilation of -fcompare-debug
773 Common Var(flag_conserve_stack) Optimization
774 Do not perform optimizations increasing noticeably stack usage
777 Common Report Var(flag_cprop_registers) Optimization
778 Perform a register copy-propagation optimization pass
781 Common Report Var(flag_crossjumping) Optimization
782 Perform cross-jumping optimization
785 Common Report Var(flag_cse_follow_jumps) Optimization
786 When running CSE, follow jumps to their targets
790 Does nothing. Preserved for backward compatibility.
793 Common Report Var(flag_cx_limited_range) Optimization
794 Omit range reduction step when performing complex division
797 Common Report Var(flag_cx_fortran_rules) Optimization
798 Complex multiplication and division follow Fortran rules
801 Common Report Var(flag_data_sections) Optimization
802 Place data items into their own section
806 List all available debugging counters with their limits and counts.
809 Common RejectNegative Joined
810 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
813 Common Joined RejectNegative
814 Map one directory name to another in debug information
816 ; Nonzero for -fdefer-pop: don't pop args after each function call
817 ; instead save them up to pop many calls' args with one insns.
819 Common Report Var(flag_defer_pop) Optimization
820 Defer popping functions args from stack until later
823 Common Report Var(flag_delayed_branch) Optimization
824 Attempt to fill delay slots of branch instructions
826 fdelete-null-pointer-checks
827 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
828 Delete useless null pointer checks
830 fdiagnostics-show-location=
831 Common Joined RejectNegative
832 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
834 fdiagnostics-show-option
835 Common Var(flag_diagnostics_show_option) Init(1)
836 Amend appropriate diagnostic messages with the command line option that controls them
839 Common Joined RejectNegative Var(common_deferred_options) Defer
840 -fdump-<type> Dump various compiler internals to a file
843 Driver RejectNegative
846 Common RejectNegative Joined Var(flag_dump_final_insns)
847 -fdump-final-insns=filename Dump to filename the insns at the end of translation
850 Common RejectNegative Joined Var(flag_dump_go_spec)
851 -fdump-go-spec=filename Write all declarations to file as Go code
854 Common Report Var(flag_dump_noaddr)
855 Suppress output of addresses in debugging dumps
858 Common Report Var(flag_dump_unnumbered)
859 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
861 fdump-unnumbered-links
862 Common Report Var(flag_dump_unnumbered_links)
863 Suppress output of previous and next insn numbers in debugging dumps
866 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
867 Enable CFI tables via GAS assembler directives.
870 Common Report Var(flag_early_inlining) Init(1) Optimization
871 Perform early inlining
873 feliminate-dwarf2-dups
874 Common Report Var(flag_eliminate_dwarf2_dups)
875 Perform DWARF2 duplicate elimination
878 Common Report Var(flag_ipa_sra) Init(0) Optimization
879 Perform interprocedural reduction of aggregates
881 feliminate-unused-debug-symbols
882 Common Report Var(flag_debug_only_used_symbols)
883 Perform unused type elimination in debug info
885 feliminate-unused-debug-types
886 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
887 Perform unused type elimination in debug info
889 femit-class-debug-always
890 Common Report Var(flag_emit_class_debug_always) Init(0)
891 Do not suppress C++ class debug information.
894 Common Report Var(flag_enable_icf_debug)
895 Generate debug information to support Identical Code Folding (ICF)
898 Common Report Var(flag_exceptions) Optimization
899 Enable exception handling
901 fexpensive-optimizations
902 Common Report Var(flag_expensive_optimizations) Optimization
903 Perform a number of minor, expensive optimizations
906 Common Joined RejectNegative
907 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
913 Common Report Var(flag_finite_math_only) Optimization
914 Assume no NaNs or infinities are generated
917 Common Joined RejectNegative Var(common_deferred_options) Defer
918 -ffixed-<register> Mark <register> as being unavailable to the compiler
921 Common Report Var(flag_float_store) Optimization
922 Don't allocate floats and doubles in extended-precision registers
926 Does nothing. Preserved for backward compatibility.
929 Common Report Var(flag_forward_propagate) Optimization
930 Perform a forward propagation pass on RTL
933 Common Joined RejectNegative
934 -ffp-contract=[off|on|fast] Perform floating-point expression contraction.
936 ; Nonzero means don't put addresses of constant functions in registers.
937 ; Used for compiling the Unix kernel, where strange substitutions are
938 ; done on the assembly output.
940 Common Report Var(flag_no_function_cse,0)
941 Allow function addresses to be held in registers
944 Common Report Var(flag_function_sections)
945 Place each function into its own section
948 Common Report Var(flag_gcse) Optimization
949 Perform global common subexpression elimination
952 Common Report Var(flag_gcse_lm) Init(1) Optimization
953 Perform enhanced load motion during global common subexpression elimination
956 Common Report Var(flag_gcse_sm) Init(0) Optimization
957 Perform store motion after global common subexpression elimination
960 Common Report Var(flag_gcse_las) Init(0) Optimization
961 Perform redundant load after store elimination in global common subexpression
965 Common Report Var(flag_gcse_after_reload) Optimization
966 Perform global common subexpression elimination after register allocation
969 ; This option is not documented yet as its semantics will change.
971 Common Report Var(flag_graphite)
972 Enable in and out of Graphite representation
975 Common Report Var(flag_graphite_identity) Optimization
976 Enable Graphite Identity transformation
978 floop-parallelize-all
979 Common Report Var(flag_loop_parallelize_all) Optimization
980 Mark all loops as parallel
983 Common Report Var(flag_loop_strip_mine) Optimization
984 Enable Loop Strip Mining transformation
987 Common Report Var(flag_loop_interchange) Optimization
988 Enable Loop Interchange transformation
991 Common Report Var(flag_loop_block) Optimization
992 Enable Loop Blocking transformation
995 Common Report Var(flag_loop_flatten) Optimization
996 Enable Loop Flattening transformation
998 fstrict-volatile-bitfields
999 Common Report Var(flag_strict_volatile_bitfields) Init(-1)
1000 Force bitfield accesses to match their type width
1002 fguess-branch-probability
1003 Common Report Var(flag_guess_branch_prob) Optimization
1004 Enable guessing of branch probabilities
1006 ; Nonzero means ignore `#ident' directives. 0 means handle them.
1007 ; Generate position-independent code for executables if possible
1008 ; On SVR4 targets, it also controls whether or not to emit a
1009 ; string identifying the compiler.
1011 Common Report Var(flag_no_ident,0)
1012 Process #ident directives
1015 Common Report Var(flag_if_conversion) Optimization
1016 Perform conversion of conditional jumps to branchless equivalents
1019 Common Report Var(flag_if_conversion2) Optimization
1020 Perform conversion of conditional jumps to conditional execution
1022 ftree-loop-if-convert
1023 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
1024 Convert conditional jumps in innermost loops to branchless equivalents
1026 ftree-loop-if-convert-stores
1027 Common Report Var(flag_tree_loop_if_convert_stores) Optimization
1028 Also if-convert conditional jumps containing memory writes
1030 ; -finhibit-size-directive inhibits output of .size for ELF.
1031 ; This is used only for compiling crtstuff.c,
1032 ; and it may be extended to other effects
1033 ; needed for crtstuff.c on other systems.
1034 finhibit-size-directive
1035 Common Report Var(flag_inhibit_size_directive)
1036 Do not generate .size directives
1039 Common Report Var(flag_indirect_inlining)
1040 Perform indirect inlining
1042 ; Nonzero means that functions declared `inline' will be treated
1043 ; as `static'. Prevents generation of zillions of copies of unused
1044 ; static inline functions; instead, `inlines' are written out
1045 ; only when actually used. Used in conjunction with -g. Also
1046 ; does the right thing with #pragma interface.
1048 Common Report Var(flag_no_inline,0) Init(0)
1049 Pay attention to the \"inline\" keyword
1051 finline-small-functions
1052 Common Report Var(flag_inline_small_functions) Optimization
1053 Integrate simple functions into their callers when code size is known to not growth
1056 Common Report Var(flag_inline_functions) Optimization
1057 Integrate simple functions into their callers
1059 finline-functions-called-once
1060 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
1061 Integrate functions called once into their callers
1064 Common RejectNegative Joined Alias(finline-limit=)
1067 Common RejectNegative Joined UInteger
1068 -finline-limit=<number> Limit the size of inlined functions to <number>
1070 finstrument-functions
1071 Common Report Var(flag_instrument_function_entry_exit)
1072 Instrument function entry and exit with profiling calls
1074 finstrument-functions-exclude-function-list=
1075 Common RejectNegative Joined
1076 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
1078 finstrument-functions-exclude-file-list=
1079 Common RejectNegative Joined
1080 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
1083 Common Report Var(flag_ipa_cp) Optimization
1084 Perform Interprocedural constant propagation
1087 Common Report Var(flag_ipa_cp_clone) Optimization
1088 Perform cloning to make Interprocedural constant propagation stronger
1091 Common Report Var(flag_ipa_profile) Init(0) Optimization
1092 Perform interprocedural profile propagation
1095 Common Report Var(flag_ipa_pta) Init(0) Optimization
1096 Perform interprocedural points-to analysis
1099 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
1100 Discover pure and const functions
1103 Common Report Var(flag_ipa_reference) Init(0) Optimization
1104 Discover readonly and non addressable static variables
1107 Common Report Var(flag_ipa_matrix_reorg) Optimization
1108 Perform matrix layout flattening and transposing based
1109 on profiling information.
1112 Common Report Var(flag_ipa_struct_reorg)
1113 Perform structure layout optimizations based
1114 on profiling information.
1117 Common Joined RejectNegative
1118 -fira-algorithm=[CB|priority] Set the used IRA algorithm
1121 Common Joined RejectNegative
1122 -fira-region=[one|all|mixed] Set regions for IRA
1125 Common Report Var(flag_ira_loop_pressure)
1126 Use IRA based register pressure calculation
1127 in RTL loop optimizations.
1129 fira-share-save-slots
1130 Common Report Var(flag_ira_share_save_slots) Init(1)
1131 Share slots for saving different hard registers.
1133 fira-share-spill-slots
1134 Common Report Var(flag_ira_share_spill_slots) Init(1)
1135 Share stack slots for spilled pseudo-registers.
1138 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
1139 -fira-verbose=<number> Control IRA's level of diagnostic messages.
1142 Common Report Var(flag_ivopts) Init(1) Optimization
1143 Optimize induction variables on trees
1146 Common Var(flag_jump_tables) Init(1) Optimization
1147 Use jump tables for sufficiently large switch statements
1149 fkeep-inline-functions
1150 Common Report Var(flag_keep_inline_functions)
1151 Generate code for functions even if they are fully inlined
1154 Common Report Var(flag_keep_static_consts) Init(1)
1155 Emit static const variables even if they are not used
1158 Common Report Var(flag_leading_underscore) Init(-1)
1159 Give external symbols a leading underscore
1163 Does nothing. Preserved for backward compatibility.
1167 Enable link-time optimization.
1170 Common RejectNegative Joined Var(flag_lto)
1171 Link-time optimization with number of parallel jobs or jobserver.
1174 Common Var(flag_lto_partition_1to1)
1175 Partition functions and vars at linktime based on object files they originate from
1177 flto-partition=balanced
1178 Common Var(flag_lto_partition_balanced)
1179 Partition functions and vars at linktime into approximately same sized buckets
1182 Common Var(flag_lto_partition_none)
1183 Disable partioning and streaming
1185 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1186 flto-compression-level=
1187 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
1188 -flto-compression-level=<number> Use zlib compression level <number> for IL
1191 Common Report Var(flag_lto_report) Init(0) Optimization
1192 Report various link-time optimization statistics
1195 Common Report Var(flag_errno_math) Init(1) Optimization
1196 Set errno after built-in math functions
1199 Common Joined RejectNegative UInteger Var(flag_max_errors)
1200 -fmax-errors=<number> Maximum number of errors to report
1203 Common Report Var(mem_report)
1204 Report on permanent memory allocation
1206 ; This will attempt to merge constant section constants, if 1 only
1207 ; string constants and constants from constant pool, if 2 also constant
1209 fmerge-all-constants
1210 Common Report Var(flag_merge_constants,2) Init(1) Optimization
1211 Attempt to merge identical constants and constant variables
1214 Common Report Var(flag_merge_constants,1) Optimization
1215 Attempt to merge identical constants across compilation units
1217 fmerge-debug-strings
1218 Common Report Var(flag_merge_debug_strings) Init(1)
1219 Attempt to merge identical debug strings across compilation units
1222 Common RejectNegative Joined UInteger
1223 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
1226 Common Report Var(flag_modulo_sched) Optimization
1227 Perform SMS based modulo scheduling before the first scheduling pass
1229 fmodulo-sched-allow-regmoves
1230 Common Report Var(flag_modulo_sched_allow_regmoves)
1231 Perform SMS based modulo scheduling with register moves allowed
1233 fmove-loop-invariants
1234 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
1235 Move loop invariant computations out of loops
1238 Common RejectNegative Report Var(flag_mudflap)
1239 Add mudflap bounds-checking instrumentation for single-threaded program
1242 Common RejectNegative Report Var(flag_mudflap,2)
1243 Add mudflap bounds-checking instrumentation for multi-threaded program
1246 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
1247 Ignore read operations when inserting mudflap instrumentation
1250 Common Var(flag_dce) Init(1) Optimization
1251 Use the RTL dead code elimination pass
1254 Common Var(flag_dse) Init(1) Optimization
1255 Use the RTL dead store elimination pass
1257 freschedule-modulo-scheduled-loops
1258 Common Report Var(flag_resched_modulo_sched) Optimization
1259 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
1261 fnon-call-exceptions
1262 Common Report Var(flag_non_call_exceptions) Optimization
1263 Support synchronous non-call exceptions
1266 Common Report Var(flag_omit_frame_pointer) Optimization
1267 When possible do not generate stack frames
1269 foptimize-register-move
1270 Common Report Var(flag_regmove) Optimization
1271 Do the full register move optimization pass
1273 foptimize-sibling-calls
1274 Common Report Var(flag_optimize_sibling_calls) Optimization
1275 Optimize sibling and tail recursive calls
1278 Common Report Var(flag_partial_inlining)
1279 Perform partial inlining
1282 Common Report Var(pre_ipa_mem_report)
1283 Report on memory allocation before interprocedural optimization
1285 fpost-ipa-mem-report
1286 Common Report Var(post_ipa_mem_report)
1287 Report on memory allocation before interprocedural optimization
1290 Common Report Var(flag_pack_struct) Optimization
1291 Pack structure members together without holes
1294 Common RejectNegative Joined UInteger Optimization
1295 -fpack-struct=<number> Set initial maximum structure member alignment
1298 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
1299 Return small aggregates in memory, not registers
1302 Common Report Var(flag_peel_loops) Optimization
1303 Perform loop peeling
1306 Common Report Var(flag_no_peephole,0) Optimization
1307 Enable machine specific peephole optimizations
1310 Common Report Var(flag_peephole2) Optimization
1311 Enable an RTL peephole pass before sched2
1314 Common Report Var(flag_pic,2)
1315 Generate position-independent code if possible (large mode)
1318 Common Report Var(flag_pie,2)
1319 Generate position-independent code for executables if possible (large mode)
1322 Common Report Var(flag_pic,1)
1323 Generate position-independent code if possible (small mode)
1326 Common Report Var(flag_pie,1)
1327 Generate position-independent code for executables if possible (small mode)
1330 Common Joined RejectNegative Var(common_deferred_options) Defer
1331 Specify a plugin to load
1334 Common Joined RejectNegative Var(common_deferred_options) Defer
1335 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
1337 fpredictive-commoning
1338 Common Report Var(flag_predictive_commoning) Optimization
1339 Run predictive commoning optimization.
1341 fprefetch-loop-arrays
1342 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
1343 Generate prefetch instructions, if available, for arrays in loops
1346 Common Report Var(profile_flag)
1347 Enable basic program profiling code
1350 Common Report Var(profile_arc_flag)
1351 Insert arc-based program profiling code
1354 Common Joined RejectNegative
1355 Set the top-level directory for storing the profile data.
1356 The default is 'pwd'.
1359 Common Report Var(flag_profile_correction)
1360 Enable correction of flow inconsistent profile data input
1364 Enable common options for generating profile info for profile feedback directed optimizations
1367 Common Joined RejectNegative
1368 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1371 Common Var(flag_profile_use)
1372 Enable common options for performing profile feedback directed optimizations
1375 Common Joined RejectNegative
1376 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1379 Common Report Var(flag_profile_values)
1380 Insert code to profile values of expressions
1386 Common Joined RejectNegative
1387 -frandom-seed=<string> Make compile reproducible using <string>
1389 ; This switch causes the command line that was used to create an
1390 ; object file to be recorded into the object file. The exact format
1391 ; of this recording is target and binary file format dependent.
1392 ; It is related to the -fverbose-asm switch, but that switch only
1393 ; records information in the assembler output file as comments, so
1394 ; they never reach the object file.
1395 frecord-gcc-switches
1396 Common Report Var(flag_record_gcc_switches)
1397 Record gcc command line switches in the object file.
1400 Common Report Var(flag_pcc_struct_return,0) Optimization
1401 Return small aggregates in registers
1404 Common Report Var(flag_regmove) Optimization
1405 Enables a register move optimization
1408 Common Report Var(flag_rename_registers) Init(2) Optimization
1409 Perform a register renaming optimization pass
1412 Common Report Var(flag_reorder_blocks) Optimization
1413 Reorder basic blocks to improve code placement
1415 freorder-blocks-and-partition
1416 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1417 Reorder basic blocks and partition into hot and cold sections
1420 Common Report Var(flag_reorder_functions) Optimization
1421 Reorder functions to improve code placement
1423 frerun-cse-after-loop
1424 Common Report Var(flag_rerun_cse_after_loop) Optimization
1425 Add a common subexpression elimination pass after loop optimizations
1429 Does nothing. Preserved for backward compatibility.
1432 Common Report Var(flag_rounding_math) Optimization
1433 Disable optimizations that assume default FP rounding behavior
1436 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1437 Enable scheduling across basic blocks
1440 Common Report Var(flag_sched_pressure) Init(0) Optimization
1441 Enable register pressure sensitive insn scheduling
1444 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1445 Allow speculative motion of non-loads
1448 Common Report Var(flag_schedule_speculative_load) Optimization
1449 Allow speculative motion of some loads
1451 fsched-spec-load-dangerous
1452 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1453 Allow speculative motion of more loads
1456 Common RejectNegative Joined
1457 -fsched-verbose=<number> Set the verbosity level of the scheduler
1459 fsched2-use-superblocks
1460 Common Report Var(flag_sched2_use_superblocks) Optimization
1461 If scheduling post reload, do superblock scheduling
1465 Does nothing. Preserved for backward compatibility.
1468 Common Report Var(flag_schedule_insns) Optimization
1469 Reschedule instructions before register allocation
1472 Common Report Var(flag_schedule_insns_after_reload) Optimization
1473 Reschedule instructions after register allocation
1475 ; This flag should be on when a target implements non-trivial
1476 ; scheduling hooks, maybe saving some information for its own sake.
1477 ; On IA64, for example, this is used for correct bundling.
1478 fselective-scheduling
1479 Common Report Var(flag_selective_scheduling) Optimization
1480 Schedule instructions using selective scheduling algorithm
1482 fselective-scheduling2
1483 Common Report Var(flag_selective_scheduling2) Optimization
1484 Run selective scheduling after reload
1486 fsel-sched-pipelining
1487 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1488 Perform software pipelining of inner loops during selective scheduling
1490 fsel-sched-pipelining-outer-loops
1491 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1492 Perform software pipelining of outer loops during selective scheduling
1494 fsel-sched-reschedule-pipelined
1495 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1496 Reschedule pipelined regions without pipelining
1498 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1499 ; of stalled insns into the ready list.
1500 fsched-stalled-insns
1501 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1502 Allow premature scheduling of queued insns
1504 fsched-stalled-insns=
1505 Common RejectNegative Joined UInteger
1506 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
1508 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1509 ; be examined for a dependency on a stalled insn that is candidate for
1510 ; premature removal from the queue of stalled insns into the ready list (has
1511 ; an effect only if the flag 'sched_stalled_insns' is set).
1512 fsched-stalled-insns-dep
1513 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1514 Set dependence distance checking in premature scheduling of queued insns
1516 fsched-stalled-insns-dep=
1517 Common RejectNegative Joined UInteger
1518 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
1520 fsched-group-heuristic
1521 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1522 Enable the group heuristic in the scheduler
1524 fsched-critical-path-heuristic
1525 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1526 Enable the critical path heuristic in the scheduler
1528 fsched-spec-insn-heuristic
1529 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1530 Enable the speculative instruction heuristic in the scheduler
1532 fsched-rank-heuristic
1533 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1534 Enable the rank heuristic in the scheduler
1536 fsched-last-insn-heuristic
1537 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1538 Enable the last instruction heuristic in the scheduler
1540 fsched-dep-count-heuristic
1541 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1542 Enable the dependent count heuristic in the scheduler
1545 Common Report Var(flag_section_anchors) Optimization
1546 Access data in the same section from shared anchor points
1550 Does nothing. Preserved for backward compatibility.
1553 Common Report Var(flag_zee) Init(0)
1554 Eliminate redundant zero extensions on targets that support implicit extensions.
1557 Common Report Var(flag_show_column) Init(1)
1558 Show column numbers in diagnostics, when available. Default on
1561 Common Report Var(flag_signaling_nans) Optimization
1562 Disable optimizations observable by IEEE signaling NaNs
1565 Common Report Var(flag_signed_zeros) Init(1) Optimization
1566 Disable floating point optimizations that ignore the IEEE signedness of zero
1568 fsingle-precision-constant
1569 Common Report Var(flag_single_precision_constant) Optimization
1570 Convert floating point constants to single precision constants
1572 fsplit-ivs-in-unroller
1573 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1574 Split lifetimes of induction variables when loops are unrolled
1577 Common Report Var(flag_split_stack) Init(-1)
1578 Generate discontiguous stack frames
1581 Common Report Var(flag_split_wide_types) Optimization
1582 Split wide types into independent registers
1584 fvariable-expansion-in-unroller
1585 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1586 Apply variable expansion when loops are unrolled
1589 Common Report RejectNegative Joined
1590 -fstack-check=[no|generic|specific] Insert stack checking code into the program
1593 Common Alias(fstack-check=, specific, no)
1594 Insert stack checking code into the program. Same as -fstack-check=specific
1597 Common Var(common_deferred_options) Defer
1599 fstack-limit-register=
1600 Common RejectNegative Joined Var(common_deferred_options) Defer
1601 -fstack-limit-register=<register> Trap if the stack goes past <register>
1603 fstack-limit-symbol=
1604 Common RejectNegative Joined Var(common_deferred_options) Defer
1605 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
1608 Common Report Var(flag_stack_protect, 1)
1609 Use propolice as a stack protection method
1611 fstack-protector-all
1612 Common Report RejectNegative Var(flag_stack_protect, 2)
1613 Use a stack protection method for every function
1616 Common RejectNegative Var(flag_stack_usage)
1617 Output stack usage information on a per-function basis
1621 Does nothing. Preserved for backward compatibility.
1623 ; Nonzero if we should do (language-dependent) alias analysis.
1624 ; Typically, this analysis will assume that expressions of certain
1625 ; types do not alias expressions of certain other types. Only used
1626 ; if alias analysis (in general) is enabled.
1628 Common Report Var(flag_strict_aliasing) Optimization
1629 Assume strict aliasing rules apply
1632 Common Report Var(flag_strict_overflow)
1633 Treat signed overflow as undefined
1636 Common Report Var(flag_syntax_only)
1637 Check for syntax errors, then stop
1640 Common Report Var(flag_test_coverage)
1641 Create data files needed by \"gcov\"
1644 Common Report Var(flag_thread_jumps) Optimization
1645 Perform jump threading optimizations
1648 Common Report Var(time_report)
1649 Report the time taken by each compiler pass
1652 Common Joined RejectNegative
1653 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
1656 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1657 Reorder top level functions, variables, and asms
1660 Common Report Var(flag_tracer)
1661 Perform superblock formation via tail duplication
1663 ; Zero means that floating-point math operations cannot generate a
1664 ; (user-visible) trap. This is the case, for example, in nonstop
1665 ; IEEE 754 arithmetic.
1667 Common Report Var(flag_trapping_math) Init(1) Optimization
1668 Assume floating-point operations can trap
1671 Common Report Var(flag_trapv) Optimization
1672 Trap for signed overflow in addition, subtraction and multiplication
1675 Common Report Var(flag_tree_ccp) Optimization
1676 Enable SSA-CCP optimization on trees
1679 Common Report Var(flag_tree_bit_ccp) Optimization
1680 Enable SSA-BIT-CCP optimization on trees
1684 Does nothing. Preserved for backward compatibility.
1687 Common Report Var(flag_tree_ch) Optimization
1688 Enable loop header copying on trees
1691 Common Report Var(flag_tree_copyrename) Optimization
1692 Replace SSA temporaries with better names in copies
1695 Common Report Var(flag_tree_copy_prop) Optimization
1696 Enable copy propagation on trees
1698 ftree-store-copy-prop
1700 Does nothing. Preserved for backward compatibility.
1703 Common Report Var(flag_tree_cselim) Init(2) Optimization
1704 Transform condition stores into unconditional ones
1706 ftree-switch-conversion
1707 Common Report Var(flag_tree_switch_conversion) Optimization
1708 Perform conversions of switch initializations.
1711 Common Report Var(flag_tree_dce) Optimization
1712 Enable SSA dead code elimination optimization on trees
1714 ftree-dominator-opts
1715 Common Report Var(flag_tree_dom) Optimization
1716 Enable dominator optimizations
1719 Common Report Var(flag_tree_dse) Optimization
1720 Enable dead store elimination
1723 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1724 Enable forward propagation on trees
1727 Common Report Var(flag_tree_fre) Optimization
1728 Enable Full Redundancy Elimination (FRE) on trees
1730 ftree-loop-distribution
1731 Common Report Var(flag_tree_loop_distribution) Optimization
1732 Enable loop distribution on trees
1734 ftree-loop-distribute-patterns
1735 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1736 Enable loop distribution for patterns transformed into a library call
1739 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1740 Enable loop invariant motion on trees
1743 Common Report Var(flag_tree_loop_linear) Optimization
1744 Enable linear loop transforms on trees
1747 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1748 Create canonical induction variables in loops
1751 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1752 Enable loop optimizations on tree level
1754 ftree-parallelize-loops=
1755 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
1756 Enable automatic parallelization of loops
1759 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1760 Enable hoisting loads from conditional pointers.
1763 Common Report Var(flag_tree_pre) Optimization
1764 Enable SSA-PRE optimization on trees
1767 Common Report Var(flag_tree_pta) Init(1) Optimization
1768 Perform function-local points-to analysis on trees.
1771 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1772 Enable reassociation on tree level
1776 Does nothing. Preserved for backward compatibility.
1779 Common Report Var(flag_tree_sink) Optimization
1780 Enable SSA code sinking on trees
1783 Common Report Var(flag_tree_sra) Optimization
1784 Perform scalar replacement of aggregates
1787 Common Report Var(flag_tree_ter) Optimization
1788 Replace temporary expressions in the SSA->normal pass
1791 Common Report Var(flag_tree_live_range_split) Optimization
1792 Perform live range splitting during the SSA->normal pass
1795 Common Report Var(flag_tree_vrp) Init(0) Optimization
1796 Perform Value Range Propagation on trees
1799 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1800 Compile whole compilation unit at a time
1803 Common Report Var(flag_unroll_loops) Optimization
1804 Perform loop unrolling when iteration count is known
1807 Common Report Var(flag_unroll_all_loops) Optimization
1808 Perform loop unrolling for all loops
1810 ; Nonzero means that loop optimizer may assume that the induction variables
1811 ; that control loops do not overflow and that the loops with nontrivial
1812 ; exit condition are not infinite
1813 funsafe-loop-optimizations
1814 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1815 Allow loop optimizations to assume that the loops behave in normal way
1818 Common Report Var(flag_associative_math)
1819 Allow optimization for floating-point arithmetic which may change the
1820 result of the operation due to rounding.
1823 Common Report Var(flag_reciprocal_math)
1824 Same as -fassociative-math for expressions which include division.
1826 ; Nonzero means that unsafe floating-point math optimizations are allowed
1827 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
1828 ; are allowed to assume that their arguments and results are "normal"
1829 ; (e.g., nonnegative for SQRT).
1830 funsafe-math-optimizations
1831 Common Report Var(flag_unsafe_math_optimizations) Optimization
1832 Allow math optimizations that may violate IEEE or ISO standards
1835 Common Report Var(flag_unswitch_loops) Optimization
1836 Perform loop unswitching
1839 Common Report Var(flag_unwind_tables) Optimization
1840 Just generate unwind tables for exception handling
1845 ; Positive if we should track variables, negative if we should run
1846 ; the var-tracking pass only to discard debug annotations, zero if
1847 ; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it
1848 ; will be set according to optimize, debug_info_level and debug_hooks
1849 ; in process_options ().
1851 Common Report Var(flag_var_tracking) Init(2) Optimization
1852 Perform variable tracking
1854 ; Positive if we should track variables at assignments, negative if
1855 ; we should run the var-tracking pass only to discard debug
1856 ; annotations. When flag_var_tracking_assignments ==
1857 ; AUTODETECT_VALUE it will be set according to flag_var_tracking.
1858 fvar-tracking-assignments
1859 Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
1860 Perform variable tracking by annotating assignments
1862 ; Nonzero if we should toggle flag_var_tracking_assignments after
1863 ; processing options and computing its default. */
1864 fvar-tracking-assignments-toggle
1865 Common Report Var(flag_var_tracking_assignments_toggle) Optimization
1866 Toggle -fvar-tracking-assignments
1868 fvar-tracking-uninit
1869 Common Report Var(flag_var_tracking_uninit) Optimization
1870 Perform variable tracking and also tag variables that are uninitialized
1873 Common Report Var(flag_tree_vectorize) Optimization
1874 Enable loop vectorization on trees
1877 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1878 Enable basic block vectorization (SLP) on trees
1881 Common Report Var(flag_vect_cost_model) Optimization
1882 Enable use of cost model in vectorization
1884 ftree-vect-loop-version
1885 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1886 Enable loop versioning when doing loop vectorization on trees
1888 ftree-vectorizer-verbose=
1889 Common RejectNegative Joined
1890 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
1893 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1894 Enable copy propagation of scalar-evolution information.
1896 ; -fverbose-asm causes extra commentary information to be produced in
1897 ; the generated assembly code (to make it more readable). This option
1898 ; is generally only of use to those who actually need to read the
1899 ; generated assembly code (perhaps while debugging the compiler itself).
1900 ; -fno-verbose-asm, the default, causes the extra information
1901 ; to not be added and is useful when comparing two assembler files.
1903 Common Report Var(flag_verbose_asm)
1904 Add extra commentary to assembler output
1907 Common Joined RejectNegative
1908 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1912 Common Report Var(flag_value_profile_transformations) Optimization
1913 Use expression value profiles in optimizations
1916 Common Report Var(flag_web) Init(2) Optimization
1917 Construct webs and split unrelated uses of single variable
1919 ftree-builtin-call-dce
1920 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1921 Enable conditional dead code elimination for builtin calls
1924 Common Report Var(flag_whole_program) Init(0) Optimization
1925 Perform whole program optimizations
1928 Common Report Var(flag_wrapv) Optimization
1929 Assume signed arithmetic overflow wraps around
1931 fzero-initialized-in-bss
1932 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1933 Put zero initialized data in the bss section
1936 Common JoinedOrMissing
1937 Generate debug information in default format
1940 Common JoinedOrMissing Negative(gdwarf-)
1941 Generate debug information in COFF format
1944 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1945 Generate debug information in DWARF v2 (or later) format
1948 Common JoinedOrMissing
1949 Generate debug information in default extended format
1952 Common JoinedOrMissing Negative(gstabs+)
1953 Generate debug information in STABS format
1956 Common JoinedOrMissing Negative(gvms)
1957 Generate debug information in extended STABS format
1960 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1961 Emit DWARF additions beyond selected version
1964 Common Report RejectNegative Var(dwarf_strict,1)
1965 Don't emit DWARF additions beyond selected version
1968 Common Report Var(flag_gtoggle)
1969 Toggle debug information generation
1972 Common JoinedOrMissing Negative(gxcoff)
1973 Generate debug information in VMS format
1976 Common JoinedOrMissing Negative(gxcoff+)
1977 Generate debug information in XCOFF format
1980 Common JoinedOrMissing Negative(gcoff)
1981 Generate debug information in extended XCOFF format
1984 Driver Joined Separate
1987 Common Joined Var(plugindir_string) Init(0)
1988 -iplugindir=<dir> Set <dir> to be the default plugin directory
1991 Driver Joined Separate
1993 no-canonical-prefixes
2003 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
2004 -o <file> Place output into <file>
2007 Common Var(profile_flag)
2008 Enable function profiling
2011 Driver Var(pass_exit_codes)
2014 Common Var(pedantic)
2015 Issue warnings needed for strict compliance to the standard
2018 Common Var(flag_pedantic_errors)
2019 Like -pedantic but issue them as errors
2025 Driver Var(use_pipes)
2028 Driver JoinedOrMissing Var(print_file_name)
2030 print-libgcc-file-name
2033 print-multi-directory
2034 Driver Var(print_multi_directory)
2037 Driver Var(print_multi_lib)
2039 print-multi-os-directory
2040 Driver Var(print_multi_os_directory)
2043 Driver JoinedOrMissing Var(print_prog_name)
2046 Driver Var(print_search_dirs)
2049 Driver Var(print_sysroot)
2051 print-sysroot-headers-suffix
2052 Driver Var(print_sysroot_headers_suffix)
2055 Common Var(quiet_flag) RejectDriver
2056 Do not display functions compiled or elapsed time
2065 Driver Var(report_times)
2068 Driver JoinedOrMissing
2071 Driver Joined Separate
2075 ; C option, but driver must not handle as "-u ndef".
2078 Common Driver Var(verbose_flag)
2079 Enable verbose output
2082 Common Var(version_flag) RejectDriver
2083 Display the compiler's version
2086 Common Var(inhibit_warnings)
2090 Driver Separate Var(wrapper_string)
2093 Driver Joined Separate
2096 Common RejectNegative Negative(pie)
2097 Create a shared library
2103 Driver Separate Alias(specs=)
2116 ; Documented for Fortran, but always accepted by driver.
2125 Common RejectNegative Negative(shared)
2126 Create a position independent executable
2129 Driver Joined Separate
2131 ; This comment is to ensure we retain the blank line above.