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
126 Driver Alias(coverage)
132 Common Separate Alias(d)
135 Common Joined Alias(d)
138 Common Separate Alias(dumpbase)
141 Common Separate Alias(dumpdir)
144 Driver Separate Alias(e)
147 Driver Joined Alias(e)
150 Common Warning Alias(Wextra)
153 Driver Separate Alias(Xassembler)
156 Driver JoinedOrMissing Alias(Xassembler)
159 Driver Separate Alias(Xlinker)
162 Driver JoinedOrMissing Alias(Xlinker)
165 Driver Separate Alias(u)
168 Driver Joined Alias(u)
171 Common Driver Var(help_flag)
172 Display this information
175 Common Driver Report Joined
176 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
179 Driver Separate Alias(x)
182 Driver Joined Alias(x)
185 Driver Separate Alias(L)
188 Driver Joined Alias(L)
190 -no-canonical-prefixes
191 Driver Alias(no-canonical-prefixes)
193 -no-standard-libraries
194 Driver Alias(nostdlib)
203 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
206 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
209 Driver Alias(pass-exit-codes)
212 Common Alias(pedantic)
215 Common Alias(pedantic-errors)
224 Driver Separate Alias(B)
227 Driver JoinedOrMissing Alias(B)
233 Driver Separate Alias(print-file-name=)
236 Driver JoinedOrMissing Alias(print-file-name=)
238 -print-libgcc-file-name
239 Driver Alias(print-libgcc-file-name)
241 -print-multi-directory
242 Driver Alias(print-multi-directory)
245 Driver Alias(print-multi-lib)
247 -print-multi-os-directory
248 Driver Alias(print-multi-os-directory)
251 Driver Separate Alias(print-prog-name=)
254 Driver JoinedOrMissing Alias(print-prog-name=)
257 Driver Alias(print-search-dirs)
260 Driver Alias(print-sysroot)
262 -print-sysroot-headers-suffix
263 Driver Alias(print-sysroot-headers-suffix)
269 Driver Alias(save-temps)
275 Driver Separate Alias(specs=)
278 Driver Joined Alias(specs=)
284 Driver Alias(symbolic)
288 Alias for --help=target
296 ;; The driver used to convert options such as --help into forms such
297 ;; as -fhelp; the following four entries are for compatibility with
298 ;; any direct uses of those (undocumented) -f forms
300 Common Driver Alias(-help)
303 Common Driver Joined Alias(-help=)
306 Common Driver Alias(-target-help)
309 Common Driver Alias(-version)
313 --param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
316 Common Joined Alias(-param)
319 Driver Separate Alias(-sysroot=)
322 Driver JoinedOrMissing
328 Driver Joined Separate
334 Driver Joined Separate
337 Common JoinedOrMissing Optimization
338 -O<number> Set optimization level to <number>
342 Optimize for space rather than speed
346 Optimize for speed disregarding exact standards compliance
349 Driver Joined Separate
355 Driver Joined Separate
367 Common RejectNegative Warning Alias(Wextra)
368 This switch is deprecated; use -Wextra instead
371 Driver JoinedOrMissing
374 Driver JoinedOrMissing
377 Driver JoinedOrMissing
380 Common Var(warn_aggregate_return) Warning
381 Warn about returning structures, unions or arrays
384 Common Var(warn_array_bounds) Warning
385 Warn if an array is accessed out of bounds
388 Common Var(warn_attributes) Init(1) Warning
389 Warn about inappropriate attribute usage
392 Common Var(warn_cast_align) Warning
393 Warn about pointer casts which increase alignment
396 Common Var(warn_cpp) Init(1) Warning
397 Warn when a #warning directive is encountered
399 Wdeprecated-declarations
400 Common Var(warn_deprecated_decl) Init(1) Warning
401 Warn about uses of __attribute__((deprecated)) declarations
403 Wdisabled-optimization
404 Common Var(warn_disabled_optimization) Warning
405 Warn when an optimization pass is disabled
408 Common Var(warnings_are_errors)
409 Treat all warnings as errors
413 Treat specified warning as error
416 Common Var(extra_warnings) Warning
417 Print extra (possibly unwanted) warnings
420 Common Var(flag_fatal_errors)
421 Exit on the first error occurred
424 Common RejectNegative Joined UInteger
425 -Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
428 Common Var(warn_inline) Warning
429 Warn when an inlined function cannot be inlined
432 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
435 Common RejectNegative Joined UInteger Warning
436 -Wlarger-than=<number> Warn if an object is larger than <number> bytes
438 Wunsafe-loop-optimizations
439 Common Var(warn_unsafe_loop_optimizations) Warning
440 Warn if the loop cannot be optimized due to nontrivial assumptions.
443 Common Var(warn_missing_noreturn) Warning
444 Warn about functions which might be candidates for __attribute__((noreturn))
447 Common Var(warn_mudflap) Init(1) Warning
448 Warn about constructs not instrumented by -fmudflap
451 Common Var(warn_overflow) Init(1) Warning
452 Warn about overflow in arithmetic expressions
455 Common Var(warn_packed) Warning
456 Warn when the packed attribute has no effect on struct layout
459 Common Var(warn_padded) Warning
460 Warn when padding is required to align structure members
463 Common Var(warn_shadow) Warning
464 Warn when one local variable shadows another
467 Common Var(warn_stack_protect) Warning
468 Warn when not issuing stack smashing protection for some reason
472 Warn about code which might break strict aliasing rules
475 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
476 Warn about code which might break strict aliasing rules
480 Warn about optimizations that assume that signed overflow is undefined
483 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
484 Warn about optimizations that assume that signed overflow is undefined
486 Wsuggest-attribute=const
487 Common Var(warn_suggest_attribute_const) Warning
488 Warn about functions which might be candidates for __attribute__((const))
490 Wsuggest-attribute=pure
491 Common Var(warn_suggest_attribute_pure) Warning
492 Warn about functions which might be candidates for __attribute__((pure))
494 Wsuggest-attribute=noreturn
495 Common Var(warn_suggest_attribute_noreturn) Warning
496 Warn about functions which might be candidates for __attribute__((noreturn))
499 Common Var(warn_switch) Warning
500 Warn about enumerated switches, with no default, missing a case
503 Common Var(warn_switch_default) Warning
504 Warn about enumerated switches missing a \"default:\" statement
507 Common Var(warn_switch_enum) Warning
508 Warn about all enumerated switches missing a specific case
511 Common Var(warn_system_headers) Warning
512 Do not suppress warnings from system headers
515 Common Var(warn_trampolines) Warning
516 Warn whenever a trampoline is generated
519 Common Var(warn_type_limits) Init(-1) Warning
520 Warn if a comparison is always true or always false due to the limited range of the data type
523 Common Var(warn_uninitialized) Init(-1) Warning
524 Warn about uninitialized automatic variables
528 Does nothing. Preserved for backward compatibility.
531 Common Var(warn_unused) Init(0) Warning
532 Enable all -Wunused- warnings
534 Wunused-but-set-parameter
535 Common Var(warn_unused_but_set_parameter) Init(-1) Warning
536 Warn when a function parameter is only set, otherwise unused
538 Wunused-but-set-variable
539 Common Var(warn_unused_but_set_variable) Init(-1) Warning
540 Warn when a variable is only set, otherwise unused
543 Common Var(warn_unused_function) Init(-1) Warning
544 Warn when a function is unused
547 Common Var(warn_unused_label) Init(-1) Warning
548 Warn when a label is unused
551 Common Var(warn_unused_parameter) Init(-1) Warning
552 Warn when a function parameter is unused
555 Common Var(warn_unused_value) Init(-1) Warning
556 Warn when an expression value is unused
559 Common Var(warn_unused_variable) Init(-1) Warning
560 Warn when a variable is unused
563 Common Var(warn_coverage_mismatch) Init(1) Warning
564 Warn in case profiles in -fprofile-use do not match
576 Common Separate Var(aux_info_file_name)
577 -aux-info <file> Emit declaration information into <file>
580 Common Joined Alias(aux-info)
583 Common Separate RejectDriver Var(aux_base_name)
586 Common Separate RejectDriver
596 -d<letters> Enable dumps from specific passes of the compiler
599 Common Separate Var(dump_base_name)
600 -dumpbase <file> Set the file basename to be used for dumps
603 Common Separate Var(dump_dir_name)
604 -dumpdir <dir> Set the directory name to be used for dumps
616 Driver Joined Separate
618 ; The version of the C++ ABI in use. The following values are allowed:
620 ; 0: The version of the ABI believed most conformant with the C++ ABI
621 ; specification. This ABI may change as bugs are discovered and fixed.
622 ; Therefore, 0 will not necessarily indicate the same ABI in different
625 ; 1: The version of the ABI first used in G++ 3.2.
627 ; 2: The version of the ABI first used in G++ 3.4 (and current default).
629 ; 3: The version of the ABI that fixes the missing underscore
630 ; in template non-type arguments of pointer type.
632 ; 4: The version of the ABI that introduces unambiguous mangling of
635 ; Additional positive integers will be assigned as new versions of
636 ; the ABI become the default version of the ABI.
638 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
641 Common Report Var(align_functions,0) Optimization UInteger
642 Align the start of functions
645 Common RejectNegative Joined UInteger Var(align_functions)
648 Common Report Var(align_jumps,0) Optimization UInteger
649 Align labels which are only reached by jumping
652 Common RejectNegative Joined UInteger Var(align_jumps)
655 Common Report Var(align_labels,0) Optimization UInteger
659 Common RejectNegative Joined UInteger Var(align_labels)
662 Common Report Var(align_loops,0) Optimization UInteger
663 Align the start of loops
666 Common RejectNegative Joined UInteger Var(align_loops)
670 Does nothing. Preserved for backward compatibility.
674 Does nothing. Preserved for backward compatibility.
676 fargument-noalias-global
678 Does nothing. Preserved for backward compatibility.
680 fargument-noalias-anything
682 Does nothing. Preserved for backward compatibility.
684 fasynchronous-unwind-tables
685 Common Report Var(flag_asynchronous_unwind_tables) Optimization
686 Generate unwind tables that are exact at each instruction boundary
689 Common Report Var(flag_auto_inc_dec) Init(1)
690 Generate auto-inc/dec instructions
692 ; -fcheck-bounds causes gcc to generate array bounds checks.
693 ; For C, C++ and ObjC: defaults off.
694 ; For Java: defaults to on.
695 ; For Fortran: defaults to off.
697 Common Report Var(flag_bounds_check)
698 Generate code to check bounds before indexing arrays
701 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
702 Replace add, compare, branch with branch on count register
704 fbranch-probabilities
705 Common Report Var(flag_branch_probabilities) Optimization
706 Use profiling information for branch probabilities
708 fbranch-target-load-optimize
709 Common Report Var(flag_branch_target_load_optimize) Optimization
710 Perform branch target load optimization before prologue / epilogue threading
712 fbranch-target-load-optimize2
713 Common Report Var(flag_branch_target_load_optimize2) Optimization
714 Perform branch target load optimization after prologue / epilogue threading
717 Common Report Var(flag_btr_bb_exclusive) Optimization
718 Restrict target load migration not to re-use registers in any basic block
721 Common Joined RejectNegative Var(common_deferred_options) Defer
722 -fcall-saved-<register> Mark <register> as being preserved across functions
725 Common Joined RejectNegative Var(common_deferred_options) Defer
726 -fcall-used-<register> Mark <register> as being corrupted by function calls
728 ; Nonzero for -fcaller-saves: allocate values in regs that need to
729 ; be saved across function calls, if that produces overall better code.
730 ; Optional now, so people can test it.
732 Common Report Var(flag_caller_saves) Optimization
733 Save registers around function calls
736 Common Report Var(flag_check_data_deps)
737 Compare the results of several data dependence analyzers.
739 fcombine-stack-adjustments
740 Common Report Var(flag_combine_stack_adjustments) Optimization
741 Looks for opportunities to reduce stack adjustments and stack references.
744 Common Report Var(flag_no_common,0) Optimization
745 Do not put uninitialized globals in the common section
749 ; Converted by the driver to -fcompare-debug= options.
752 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
753 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
755 fcompare-debug-second
756 Common Driver RejectNegative
757 Run only the second compilation of -fcompare-debug
760 Common Var(flag_conserve_stack) Optimization
761 Do not perform optimizations increasing noticeably stack usage
764 Common Report Var(flag_cprop_registers) Optimization
765 Perform a register copy-propagation optimization pass
768 Common Report Var(flag_crossjumping) Optimization
769 Perform cross-jumping optimization
772 Common Report Var(flag_cse_follow_jumps) Optimization
773 When running CSE, follow jumps to their targets
777 Does nothing. Preserved for backward compatibility.
780 Common Report Var(flag_cx_limited_range) Optimization
781 Omit range reduction step when performing complex division
784 Common Report Var(flag_cx_fortran_rules) Optimization
785 Complex multiplication and division follow Fortran rules
788 Common Report Var(flag_data_sections) Optimization
789 Place data items into their own section
793 List all available debugging counters with their limits and counts.
796 Common RejectNegative Joined
797 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
800 Common Joined RejectNegative
801 Map one directory name to another in debug information
803 ; Nonzero for -fdefer-pop: don't pop args after each function call
804 ; instead save them up to pop many calls' args with one insns.
806 Common Report Var(flag_defer_pop) Optimization
807 Defer popping functions args from stack until later
810 Common Report Var(flag_delayed_branch) Optimization
811 Attempt to fill delay slots of branch instructions
813 fdelete-null-pointer-checks
814 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
815 Delete useless null pointer checks
817 fdiagnostics-show-location=
818 Common Joined RejectNegative
819 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
821 fdiagnostics-show-option
822 Common Var(flag_diagnostics_show_option) Init(1)
823 Amend appropriate diagnostic messages with the command line option that controls them
826 Common Joined RejectNegative Var(common_deferred_options) Defer
827 -fdump-<type> Dump various compiler internals to a file
830 Driver RejectNegative
833 Common RejectNegative Joined Var(flag_dump_final_insns)
834 -fdump-final-insns=filename Dump to filename the insns at the end of translation
837 Common RejectNegative Joined Var(flag_dump_go_spec)
838 -fdump-go-spec=filename Write all declarations to file as Go code
841 Common Report Var(flag_dump_noaddr)
842 Suppress output of addresses in debugging dumps
845 Common Report Var(flag_dump_unnumbered)
846 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
848 fdump-unnumbered-links
849 Common Report Var(flag_dump_unnumbered_links)
850 Suppress output of previous and next insn numbers in debugging dumps
853 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
854 Enable CFI tables via GAS assembler directives.
857 Common Report Var(flag_early_inlining) Init(1) Optimization
858 Perform early inlining
860 feliminate-dwarf2-dups
861 Common Report Var(flag_eliminate_dwarf2_dups)
862 Perform DWARF2 duplicate elimination
865 Common Report Var(flag_ipa_sra) Init(0) Optimization
866 Perform interprocedural reduction of aggregates
868 feliminate-unused-debug-symbols
869 Common Report Var(flag_debug_only_used_symbols)
870 Perform unused type elimination in debug info
872 feliminate-unused-debug-types
873 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
874 Perform unused type elimination in debug info
876 femit-class-debug-always
877 Common Report Var(flag_emit_class_debug_always) Init(0)
878 Do not suppress C++ class debug information.
881 Common Report Var(flag_enable_icf_debug)
882 Generate debug information to support Identical Code Folding (ICF)
885 Common Report Var(flag_exceptions) Optimization
886 Enable exception handling
888 fexpensive-optimizations
889 Common Report Var(flag_expensive_optimizations) Optimization
890 Perform a number of minor, expensive optimizations
893 Common Joined RejectNegative
894 -fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
900 Common Report Var(flag_finite_math_only) Optimization
901 Assume no NaNs or infinities are generated
904 Common Joined RejectNegative Var(common_deferred_options) Defer
905 -ffixed-<register> Mark <register> as being unavailable to the compiler
908 Common Report Var(flag_float_store) Optimization
909 Don't allocate floats and doubles in extended-precision registers
913 Does nothing. Preserved for backward compatibility.
916 Common Report Var(flag_forward_propagate) Optimization
917 Perform a forward propagation pass on RTL
920 Common Joined RejectNegative
921 -ffp-contract=[off|on|fast] Perform floating-point expression contraction.
923 ; Nonzero means don't put addresses of constant functions in registers.
924 ; Used for compiling the Unix kernel, where strange substitutions are
925 ; done on the assembly output.
927 Common Report Var(flag_no_function_cse,0)
928 Allow function addresses to be held in registers
931 Common Report Var(flag_function_sections)
932 Place each function into its own section
935 Common Report Var(flag_gcse) Optimization
936 Perform global common subexpression elimination
939 Common Report Var(flag_gcse_lm) Init(1) Optimization
940 Perform enhanced load motion during global common subexpression elimination
943 Common Report Var(flag_gcse_sm) Init(0) Optimization
944 Perform store motion after global common subexpression elimination
947 Common Report Var(flag_gcse_las) Init(0) Optimization
948 Perform redundant load after store elimination in global common subexpression
952 Common Report Var(flag_gcse_after_reload) Optimization
953 Perform global common subexpression elimination after register allocation
956 ; This option is not documented yet as its semantics will change.
958 Common Report Var(flag_graphite)
959 Enable in and out of Graphite representation
962 Common Report Var(flag_graphite_identity) Optimization
963 Enable Graphite Identity transformation
965 floop-parallelize-all
966 Common Report Var(flag_loop_parallelize_all) Optimization
967 Mark all loops as parallel
970 Common Report Var(flag_loop_strip_mine) Optimization
971 Enable Loop Strip Mining transformation
974 Common Report Var(flag_loop_interchange) Optimization
975 Enable Loop Interchange transformation
978 Common Report Var(flag_loop_block) Optimization
979 Enable Loop Blocking transformation
982 Common Report Var(flag_loop_flatten) Optimization
983 Enable Loop Flattening transformation
985 fstrict-volatile-bitfields
986 Common Report Var(flag_strict_volatile_bitfields) Init(-1)
987 Force bitfield accesses to match their type width
989 fguess-branch-probability
990 Common Report Var(flag_guess_branch_prob) Optimization
991 Enable guessing of branch probabilities
993 ; Nonzero means ignore `#ident' directives. 0 means handle them.
994 ; Generate position-independent code for executables if possible
995 ; On SVR4 targets, it also controls whether or not to emit a
996 ; string identifying the compiler.
998 Common Report Var(flag_no_ident,0)
999 Process #ident directives
1002 Common Report Var(flag_if_conversion) Optimization
1003 Perform conversion of conditional jumps to branchless equivalents
1006 Common Report Var(flag_if_conversion2) Optimization
1007 Perform conversion of conditional jumps to conditional execution
1009 ftree-loop-if-convert
1010 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
1011 Convert conditional jumps in innermost loops to branchless equivalents
1013 ftree-loop-if-convert-stores
1014 Common Report Var(flag_tree_loop_if_convert_stores) Optimization
1015 Also if-convert conditional jumps containing memory writes
1017 ; -finhibit-size-directive inhibits output of .size for ELF.
1018 ; This is used only for compiling crtstuff.c,
1019 ; and it may be extended to other effects
1020 ; needed for crtstuff.c on other systems.
1021 finhibit-size-directive
1022 Common Report Var(flag_inhibit_size_directive)
1023 Do not generate .size directives
1026 Common Report Var(flag_indirect_inlining)
1027 Perform indirect inlining
1029 ; Nonzero means that functions declared `inline' will be treated
1030 ; as `static'. Prevents generation of zillions of copies of unused
1031 ; static inline functions; instead, `inlines' are written out
1032 ; only when actually used. Used in conjunction with -g. Also
1033 ; does the right thing with #pragma interface.
1035 Common Report Var(flag_no_inline,0) Init(0)
1036 Pay attention to the \"inline\" keyword
1038 finline-small-functions
1039 Common Report Var(flag_inline_small_functions) Optimization
1040 Integrate simple functions into their callers when code size is known to not growth
1043 Common Report Var(flag_inline_functions) Optimization
1044 Integrate simple functions into their callers
1046 finline-functions-called-once
1047 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
1048 Integrate functions called once into their callers
1051 Common RejectNegative Joined Alias(finline-limit=)
1054 Common RejectNegative Joined UInteger
1055 -finline-limit=<number> Limit the size of inlined functions to <number>
1057 finstrument-functions
1058 Common Report Var(flag_instrument_function_entry_exit)
1059 Instrument function entry and exit with profiling calls
1061 finstrument-functions-exclude-function-list=
1062 Common RejectNegative Joined
1063 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
1065 finstrument-functions-exclude-file-list=
1066 Common RejectNegative Joined
1067 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
1070 Common Report Var(flag_ipa_cp) Optimization
1071 Perform Interprocedural constant propagation
1074 Common Report Var(flag_ipa_cp_clone) Optimization
1075 Perform cloning to make Interprocedural constant propagation stronger
1078 Common Report Var(flag_ipa_profile) Init(0) Optimization
1079 Perform interprocedural profile propagation
1082 Common Report Var(flag_ipa_pta) Init(0) Optimization
1083 Perform interprocedural points-to analysis
1086 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
1087 Discover pure and const functions
1090 Common Report Var(flag_ipa_reference) Init(0) Optimization
1091 Discover readonly and non addressable static variables
1094 Common Report Var(flag_ipa_matrix_reorg) Optimization
1095 Perform matrix layout flattening and transposing based
1096 on profiling information.
1099 Common Report Var(flag_ipa_struct_reorg)
1100 Perform structure layout optimizations based
1101 on profiling information.
1104 Common Joined RejectNegative
1105 -fira-algorithm=[CB|priority] Set the used IRA algorithm
1108 Common Joined RejectNegative
1109 -fira-region=[one|all|mixed] Set regions for IRA
1112 Common Report Var(flag_ira_loop_pressure)
1113 Use IRA based register pressure calculation
1114 in RTL loop optimizations.
1116 fira-share-save-slots
1117 Common Report Var(flag_ira_share_save_slots) Init(1)
1118 Share slots for saving different hard registers.
1120 fira-share-spill-slots
1121 Common Report Var(flag_ira_share_spill_slots) Init(1)
1122 Share stack slots for spilled pseudo-registers.
1125 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
1126 -fira-verbose=<number> Control IRA's level of diagnostic messages.
1129 Common Report Var(flag_ivopts) Init(1) Optimization
1130 Optimize induction variables on trees
1133 Common Var(flag_jump_tables) Init(1) Optimization
1134 Use jump tables for sufficiently large switch statements
1136 fkeep-inline-functions
1137 Common Report Var(flag_keep_inline_functions)
1138 Generate code for functions even if they are fully inlined
1141 Common Report Var(flag_keep_static_consts) Init(1)
1142 Emit static const variables even if they are not used
1145 Common Report Var(flag_leading_underscore) Init(-1)
1146 Give external symbols a leading underscore
1150 Does nothing. Preserved for backward compatibility.
1154 Enable link-time optimization.
1157 Common RejectNegative Joined Var(flag_lto)
1158 Link-time optimization with number of parallel jobs or jobserver.
1161 Common Var(flag_lto_partition_1to1)
1162 Partition functions and vars at linktime based on object files they originate from
1164 flto-partition=balanced
1165 Common Var(flag_lto_partition_balanced)
1166 Partition functions and vars at linktime into approximately same sized buckets
1169 Common Var(flag_lto_partition_none)
1170 Disable partioning and streaming
1172 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1173 flto-compression-level=
1174 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
1175 -flto-compression-level=<number> Use zlib compression level <number> for IL
1178 Common Report Var(flag_lto_report) Init(0) Optimization
1179 Report various link-time optimization statistics
1182 Common Report Var(flag_errno_math) Init(1) Optimization
1183 Set errno after built-in math functions
1186 Common Joined RejectNegative UInteger Var(flag_max_errors)
1187 -fmax-errors=<number> Maximum number of errors to report
1190 Common Report Var(mem_report)
1191 Report on permanent memory allocation
1193 ; This will attempt to merge constant section constants, if 1 only
1194 ; string constants and constants from constant pool, if 2 also constant
1196 fmerge-all-constants
1197 Common Report Var(flag_merge_constants,2) Init(1) Optimization
1198 Attempt to merge identical constants and constant variables
1201 Common Report Var(flag_merge_constants,1) Optimization
1202 Attempt to merge identical constants across compilation units
1204 fmerge-debug-strings
1205 Common Report Var(flag_merge_debug_strings) Init(1)
1206 Attempt to merge identical debug strings across compilation units
1209 Common RejectNegative Joined UInteger
1210 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
1213 Common Report Var(flag_modulo_sched) Optimization
1214 Perform SMS based modulo scheduling before the first scheduling pass
1216 fmodulo-sched-allow-regmoves
1217 Common Report Var(flag_modulo_sched_allow_regmoves)
1218 Perform SMS based modulo scheduling with register moves allowed
1220 fmove-loop-invariants
1221 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
1222 Move loop invariant computations out of loops
1225 Common RejectNegative Report Var(flag_mudflap)
1226 Add mudflap bounds-checking instrumentation for single-threaded program
1229 Common RejectNegative Report Var(flag_mudflap,2)
1230 Add mudflap bounds-checking instrumentation for multi-threaded program
1233 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
1234 Ignore read operations when inserting mudflap instrumentation
1237 Common Var(flag_dce) Init(1) Optimization
1238 Use the RTL dead code elimination pass
1241 Common Var(flag_dse) Init(1) Optimization
1242 Use the RTL dead store elimination pass
1244 freschedule-modulo-scheduled-loops
1245 Common Report Var(flag_resched_modulo_sched) Optimization
1246 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
1248 fnon-call-exceptions
1249 Common Report Var(flag_non_call_exceptions) Optimization
1250 Support synchronous non-call exceptions
1253 Common Report Var(flag_omit_frame_pointer) Optimization
1254 When possible do not generate stack frames
1256 foptimize-register-move
1257 Common Report Var(flag_regmove) Optimization
1258 Do the full register move optimization pass
1260 foptimize-sibling-calls
1261 Common Report Var(flag_optimize_sibling_calls) Optimization
1262 Optimize sibling and tail recursive calls
1265 Common Report Var(flag_partial_inlining)
1266 Perform partial inlining
1269 Common Report Var(pre_ipa_mem_report)
1270 Report on memory allocation before interprocedural optimization
1272 fpost-ipa-mem-report
1273 Common Report Var(post_ipa_mem_report)
1274 Report on memory allocation before interprocedural optimization
1277 Common Report Var(flag_pack_struct) Optimization
1278 Pack structure members together without holes
1281 Common RejectNegative Joined UInteger Optimization
1282 -fpack-struct=<number> Set initial maximum structure member alignment
1285 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
1286 Return small aggregates in memory, not registers
1289 Common Report Var(flag_peel_loops) Optimization
1290 Perform loop peeling
1293 Common Report Var(flag_no_peephole,0) Optimization
1294 Enable machine specific peephole optimizations
1297 Common Report Var(flag_peephole2) Optimization
1298 Enable an RTL peephole pass before sched2
1301 Common Report Var(flag_pic,2)
1302 Generate position-independent code if possible (large mode)
1305 Common Report Var(flag_pie,2)
1306 Generate position-independent code for executables if possible (large mode)
1309 Common Report Var(flag_pic,1)
1310 Generate position-independent code if possible (small mode)
1313 Common Report Var(flag_pie,1)
1314 Generate position-independent code for executables if possible (small mode)
1317 Common Joined RejectNegative Var(common_deferred_options) Defer
1318 Specify a plugin to load
1321 Common Joined RejectNegative Var(common_deferred_options) Defer
1322 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
1324 fpredictive-commoning
1325 Common Report Var(flag_predictive_commoning) Optimization
1326 Run predictive commoning optimization.
1328 fprefetch-loop-arrays
1329 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
1330 Generate prefetch instructions, if available, for arrays in loops
1333 Common Report Var(profile_flag)
1334 Enable basic program profiling code
1337 Common Report Var(profile_arc_flag)
1338 Insert arc-based program profiling code
1341 Common Joined RejectNegative
1342 Set the top-level directory for storing the profile data.
1343 The default is 'pwd'.
1346 Common Report Var(flag_profile_correction)
1347 Enable correction of flow inconsistent profile data input
1351 Enable common options for generating profile info for profile feedback directed optimizations
1354 Common Joined RejectNegative
1355 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1358 Common Var(flag_profile_use)
1359 Enable common options for performing profile feedback directed optimizations
1362 Common Joined RejectNegative
1363 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1366 Common Report Var(flag_profile_values)
1367 Insert code to profile values of expressions
1373 Common Joined RejectNegative
1374 -frandom-seed=<string> Make compile reproducible using <string>
1376 ; This switch causes the command line that was used to create an
1377 ; object file to be recorded into the object file. The exact format
1378 ; of this recording is target and binary file format dependent.
1379 ; It is related to the -fverbose-asm switch, but that switch only
1380 ; records information in the assembler output file as comments, so
1381 ; they never reach the object file.
1382 frecord-gcc-switches
1383 Common Report Var(flag_record_gcc_switches)
1384 Record gcc command line switches in the object file.
1387 Common Report Var(flag_pcc_struct_return,0) Optimization
1388 Return small aggregates in registers
1391 Common Report Var(flag_regmove) Optimization
1392 Enables a register move optimization
1395 Common Report Var(flag_rename_registers) Init(2) Optimization
1396 Perform a register renaming optimization pass
1399 Common Report Var(flag_reorder_blocks) Optimization
1400 Reorder basic blocks to improve code placement
1402 freorder-blocks-and-partition
1403 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1404 Reorder basic blocks and partition into hot and cold sections
1407 Common Report Var(flag_reorder_functions) Optimization
1408 Reorder functions to improve code placement
1410 frerun-cse-after-loop
1411 Common Report Var(flag_rerun_cse_after_loop) Optimization
1412 Add a common subexpression elimination pass after loop optimizations
1416 Does nothing. Preserved for backward compatibility.
1419 Common Report Var(flag_rounding_math) Optimization
1420 Disable optimizations that assume default FP rounding behavior
1423 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1424 Enable scheduling across basic blocks
1427 Common Report Var(flag_sched_pressure) Init(0) Optimization
1428 Enable register pressure sensitive insn scheduling
1431 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1432 Allow speculative motion of non-loads
1435 Common Report Var(flag_schedule_speculative_load) Optimization
1436 Allow speculative motion of some loads
1438 fsched-spec-load-dangerous
1439 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1440 Allow speculative motion of more loads
1443 Common RejectNegative Joined
1444 -fsched-verbose=<number> Set the verbosity level of the scheduler
1446 fsched2-use-superblocks
1447 Common Report Var(flag_sched2_use_superblocks) Optimization
1448 If scheduling post reload, do superblock scheduling
1452 Does nothing. Preserved for backward compatibility.
1455 Common Report Var(flag_schedule_insns) Optimization
1456 Reschedule instructions before register allocation
1459 Common Report Var(flag_schedule_insns_after_reload) Optimization
1460 Reschedule instructions after register allocation
1462 ; This flag should be on when a target implements non-trivial
1463 ; scheduling hooks, maybe saving some information for its own sake.
1464 ; On IA64, for example, this is used for correct bundling.
1465 fselective-scheduling
1466 Common Report Var(flag_selective_scheduling) Optimization
1467 Schedule instructions using selective scheduling algorithm
1469 fselective-scheduling2
1470 Common Report Var(flag_selective_scheduling2) Optimization
1471 Run selective scheduling after reload
1473 fsel-sched-pipelining
1474 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1475 Perform software pipelining of inner loops during selective scheduling
1477 fsel-sched-pipelining-outer-loops
1478 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1479 Perform software pipelining of outer loops during selective scheduling
1481 fsel-sched-reschedule-pipelined
1482 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1483 Reschedule pipelined regions without pipelining
1485 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1486 ; of stalled insns into the ready list.
1487 fsched-stalled-insns
1488 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1489 Allow premature scheduling of queued insns
1491 fsched-stalled-insns=
1492 Common RejectNegative Joined UInteger
1493 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
1495 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1496 ; be examined for a dependency on a stalled insn that is candidate for
1497 ; premature removal from the queue of stalled insns into the ready list (has
1498 ; an effect only if the flag 'sched_stalled_insns' is set).
1499 fsched-stalled-insns-dep
1500 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1501 Set dependence distance checking in premature scheduling of queued insns
1503 fsched-stalled-insns-dep=
1504 Common RejectNegative Joined UInteger
1505 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
1507 fsched-group-heuristic
1508 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1509 Enable the group heuristic in the scheduler
1511 fsched-critical-path-heuristic
1512 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1513 Enable the critical path heuristic in the scheduler
1515 fsched-spec-insn-heuristic
1516 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1517 Enable the speculative instruction heuristic in the scheduler
1519 fsched-rank-heuristic
1520 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1521 Enable the rank heuristic in the scheduler
1523 fsched-last-insn-heuristic
1524 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1525 Enable the last instruction heuristic in the scheduler
1527 fsched-dep-count-heuristic
1528 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1529 Enable the dependent count heuristic in the scheduler
1532 Common Report Var(flag_section_anchors) Optimization
1533 Access data in the same section from shared anchor points
1537 Does nothing. Preserved for backward compatibility.
1540 Common Report Var(flag_zee) Init(0)
1541 Eliminate redundant zero extensions on targets that support implicit extensions.
1544 Common Report Var(flag_show_column) Init(1)
1545 Show column numbers in diagnostics, when available. Default on
1548 Common Report Var(flag_signaling_nans) Optimization
1549 Disable optimizations observable by IEEE signaling NaNs
1552 Common Report Var(flag_signed_zeros) Init(1) Optimization
1553 Disable floating point optimizations that ignore the IEEE signedness of zero
1555 fsingle-precision-constant
1556 Common Report Var(flag_single_precision_constant) Optimization
1557 Convert floating point constants to single precision constants
1559 fsplit-ivs-in-unroller
1560 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1561 Split lifetimes of induction variables when loops are unrolled
1564 Common Report Var(flag_split_stack) Init(-1)
1565 Generate discontiguous stack frames
1568 Common Report Var(flag_split_wide_types) Optimization
1569 Split wide types into independent registers
1571 fvariable-expansion-in-unroller
1572 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1573 Apply variable expansion when loops are unrolled
1576 Common Report RejectNegative Joined
1577 -fstack-check=[no|generic|specific] Insert stack checking code into the program
1580 Common Alias(fstack-check=, specific, no)
1581 Insert stack checking code into the program. Same as -fstack-check=specific
1584 Common Var(common_deferred_options) Defer
1586 fstack-limit-register=
1587 Common RejectNegative Joined Var(common_deferred_options) Defer
1588 -fstack-limit-register=<register> Trap if the stack goes past <register>
1590 fstack-limit-symbol=
1591 Common RejectNegative Joined Var(common_deferred_options) Defer
1592 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
1595 Common Report Var(flag_stack_protect, 1)
1596 Use propolice as a stack protection method
1598 fstack-protector-all
1599 Common Report RejectNegative Var(flag_stack_protect, 2)
1600 Use a stack protection method for every function
1603 Common RejectNegative Var(flag_stack_usage)
1604 Output stack usage information on a per-function basis
1608 Does nothing. Preserved for backward compatibility.
1610 ; Nonzero if we should do (language-dependent) alias analysis.
1611 ; Typically, this analysis will assume that expressions of certain
1612 ; types do not alias expressions of certain other types. Only used
1613 ; if alias analysis (in general) is enabled.
1615 Common Report Var(flag_strict_aliasing) Optimization
1616 Assume strict aliasing rules apply
1619 Common Report Var(flag_strict_overflow)
1620 Treat signed overflow as undefined
1623 Common Report Var(flag_syntax_only)
1624 Check for syntax errors, then stop
1627 Common Report Var(flag_test_coverage)
1628 Create data files needed by \"gcov\"
1631 Common Report Var(flag_thread_jumps) Optimization
1632 Perform jump threading optimizations
1635 Common Report Var(time_report)
1636 Report the time taken by each compiler pass
1639 Common Joined RejectNegative
1640 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
1643 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1644 Reorder top level functions, variables, and asms
1647 Common Report Var(flag_tracer)
1648 Perform superblock formation via tail duplication
1650 ; Zero means that floating-point math operations cannot generate a
1651 ; (user-visible) trap. This is the case, for example, in nonstop
1652 ; IEEE 754 arithmetic.
1654 Common Report Var(flag_trapping_math) Init(1) Optimization
1655 Assume floating-point operations can trap
1658 Common Report Var(flag_trapv) Optimization
1659 Trap for signed overflow in addition, subtraction and multiplication
1662 Common Report Var(flag_tree_ccp) Optimization
1663 Enable SSA-CCP optimization on trees
1666 Common Report Var(flag_tree_bit_ccp) Optimization
1667 Enable SSA-BIT-CCP optimization on trees
1671 Does nothing. Preserved for backward compatibility.
1674 Common Report Var(flag_tree_ch) Optimization
1675 Enable loop header copying on trees
1678 Common Report Var(flag_tree_copyrename) Optimization
1679 Replace SSA temporaries with better names in copies
1682 Common Report Var(flag_tree_copy_prop) Optimization
1683 Enable copy propagation on trees
1685 ftree-store-copy-prop
1687 Does nothing. Preserved for backward compatibility.
1690 Common Report Var(flag_tree_cselim) Init(2) Optimization
1691 Transform condition stores into unconditional ones
1693 ftree-switch-conversion
1694 Common Report Var(flag_tree_switch_conversion) Optimization
1695 Perform conversions of switch initializations.
1698 Common Report Var(flag_tree_dce) Optimization
1699 Enable SSA dead code elimination optimization on trees
1701 ftree-dominator-opts
1702 Common Report Var(flag_tree_dom) Optimization
1703 Enable dominator optimizations
1706 Common Report Var(flag_tree_dse) Optimization
1707 Enable dead store elimination
1710 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1711 Enable forward propagation on trees
1714 Common Report Var(flag_tree_fre) Optimization
1715 Enable Full Redundancy Elimination (FRE) on trees
1717 ftree-loop-distribution
1718 Common Report Var(flag_tree_loop_distribution) Optimization
1719 Enable loop distribution on trees
1721 ftree-loop-distribute-patterns
1722 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1723 Enable loop distribution for patterns transformed into a library call
1726 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1727 Enable loop invariant motion on trees
1730 Common Report Var(flag_tree_loop_linear) Optimization
1731 Enable linear loop transforms on trees
1734 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1735 Create canonical induction variables in loops
1738 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1739 Enable loop optimizations on tree level
1741 ftree-parallelize-loops=
1742 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
1743 Enable automatic parallelization of loops
1746 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1747 Enable hoisting loads from conditional pointers.
1750 Common Report Var(flag_tree_pre) Optimization
1751 Enable SSA-PRE optimization on trees
1754 Common Report Var(flag_tree_pta) Init(1) Optimization
1755 Perform function-local points-to analysis on trees.
1758 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1759 Enable reassociation on tree level
1763 Does nothing. Preserved for backward compatibility.
1766 Common Report Var(flag_tree_sink) Optimization
1767 Enable SSA code sinking on trees
1770 Common Report Var(flag_tree_sra) Optimization
1771 Perform scalar replacement of aggregates
1774 Common Report Var(flag_tree_ter) Optimization
1775 Replace temporary expressions in the SSA->normal pass
1778 Common Report Var(flag_tree_live_range_split) Optimization
1779 Perform live range splitting during the SSA->normal pass
1782 Common Report Var(flag_tree_vrp) Init(0) Optimization
1783 Perform Value Range Propagation on trees
1786 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1787 Compile whole compilation unit at a time
1790 Common Report Var(flag_unroll_loops) Optimization
1791 Perform loop unrolling when iteration count is known
1794 Common Report Var(flag_unroll_all_loops) Optimization
1795 Perform loop unrolling for all loops
1797 ; Nonzero means that loop optimizer may assume that the induction variables
1798 ; that control loops do not overflow and that the loops with nontrivial
1799 ; exit condition are not infinite
1800 funsafe-loop-optimizations
1801 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1802 Allow loop optimizations to assume that the loops behave in normal way
1805 Common Report Var(flag_associative_math)
1806 Allow optimization for floating-point arithmetic which may change the
1807 result of the operation due to rounding.
1810 Common Report Var(flag_reciprocal_math)
1811 Same as -fassociative-math for expressions which include division.
1813 ; Nonzero means that unsafe floating-point math optimizations are allowed
1814 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
1815 ; are allowed to assume that their arguments and results are "normal"
1816 ; (e.g., nonnegative for SQRT).
1817 funsafe-math-optimizations
1818 Common Report Var(flag_unsafe_math_optimizations) Optimization
1819 Allow math optimizations that may violate IEEE or ISO standards
1822 Common Report Var(flag_unswitch_loops) Optimization
1823 Perform loop unswitching
1826 Common Report Var(flag_unwind_tables) Optimization
1827 Just generate unwind tables for exception handling
1832 ; Positive if we should track variables, negative if we should run
1833 ; the var-tracking pass only to discard debug annotations, zero if
1834 ; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it
1835 ; will be set according to optimize, debug_info_level and debug_hooks
1836 ; in process_options ().
1838 Common Report Var(flag_var_tracking) Init(2) Optimization
1839 Perform variable tracking
1841 ; Positive if we should track variables at assignments, negative if
1842 ; we should run the var-tracking pass only to discard debug
1843 ; annotations. When flag_var_tracking_assignments ==
1844 ; AUTODETECT_VALUE it will be set according to flag_var_tracking.
1845 fvar-tracking-assignments
1846 Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
1847 Perform variable tracking by annotating assignments
1849 ; Nonzero if we should toggle flag_var_tracking_assignments after
1850 ; processing options and computing its default. */
1851 fvar-tracking-assignments-toggle
1852 Common Report Var(flag_var_tracking_assignments_toggle) Optimization
1853 Toggle -fvar-tracking-assignments
1855 fvar-tracking-uninit
1856 Common Report Var(flag_var_tracking_uninit) Optimization
1857 Perform variable tracking and also tag variables that are uninitialized
1860 Common Report Var(flag_tree_vectorize) Optimization
1861 Enable loop vectorization on trees
1864 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1865 Enable basic block vectorization (SLP) on trees
1868 Common Report Var(flag_vect_cost_model) Optimization
1869 Enable use of cost model in vectorization
1871 ftree-vect-loop-version
1872 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1873 Enable loop versioning when doing loop vectorization on trees
1875 ftree-vectorizer-verbose=
1876 Common RejectNegative Joined
1877 -ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
1880 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1881 Enable copy propagation of scalar-evolution information.
1883 ; -fverbose-asm causes extra commentary information to be produced in
1884 ; the generated assembly code (to make it more readable). This option
1885 ; is generally only of use to those who actually need to read the
1886 ; generated assembly code (perhaps while debugging the compiler itself).
1887 ; -fno-verbose-asm, the default, causes the extra information
1888 ; to not be added and is useful when comparing two assembler files.
1890 Common Report Var(flag_verbose_asm)
1891 Add extra commentary to assembler output
1894 Common Joined RejectNegative
1895 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
1899 Common Report Var(flag_value_profile_transformations) Optimization
1900 Use expression value profiles in optimizations
1903 Common Report Var(flag_web) Init(2) Optimization
1904 Construct webs and split unrelated uses of single variable
1906 ftree-builtin-call-dce
1907 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1908 Enable conditional dead code elimination for builtin calls
1911 Common Report Var(flag_whole_program) Init(0) Optimization
1912 Perform whole program optimizations
1915 Common Report Var(flag_wrapv) Optimization
1916 Assume signed arithmetic overflow wraps around
1918 fzero-initialized-in-bss
1919 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1920 Put zero initialized data in the bss section
1923 Common JoinedOrMissing
1924 Generate debug information in default format
1927 Common JoinedOrMissing Negative(gdwarf-)
1928 Generate debug information in COFF format
1931 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1932 Generate debug information in DWARF v2 (or later) format
1935 Common JoinedOrMissing
1936 Generate debug information in default extended format
1939 Common JoinedOrMissing Negative(gstabs+)
1940 Generate debug information in STABS format
1943 Common JoinedOrMissing Negative(gvms)
1944 Generate debug information in extended STABS format
1947 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1948 Emit DWARF additions beyond selected version
1951 Common Report RejectNegative Var(dwarf_strict,1)
1952 Don't emit DWARF additions beyond selected version
1955 Common Report Var(flag_gtoggle)
1956 Toggle debug information generation
1959 Common JoinedOrMissing Negative(gxcoff)
1960 Generate debug information in VMS format
1963 Common JoinedOrMissing Negative(gxcoff+)
1964 Generate debug information in XCOFF format
1967 Common JoinedOrMissing Negative(gcoff)
1968 Generate debug information in extended XCOFF format
1971 Driver Joined Separate
1974 Common Joined Var(plugindir_string) Init(0)
1975 -iplugindir=<dir> Set <dir> to be the default plugin directory
1978 Driver Joined Separate
1980 no-canonical-prefixes
1990 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
1991 -o <file> Place output into <file>
1994 Common Var(profile_flag)
1995 Enable function profiling
1998 Driver Var(pass_exit_codes)
2001 Common Var(pedantic)
2002 Issue warnings needed for strict compliance to the standard
2005 Common Var(flag_pedantic_errors)
2006 Like -pedantic but issue them as errors
2012 Driver Var(use_pipes)
2015 Driver JoinedOrMissing Var(print_file_name)
2017 print-libgcc-file-name
2020 print-multi-directory
2021 Driver Var(print_multi_directory)
2024 Driver Var(print_multi_lib)
2026 print-multi-os-directory
2027 Driver Var(print_multi_os_directory)
2030 Driver JoinedOrMissing Var(print_prog_name)
2033 Driver Var(print_search_dirs)
2036 Driver Var(print_sysroot)
2038 print-sysroot-headers-suffix
2039 Driver Var(print_sysroot_headers_suffix)
2042 Common Var(quiet_flag) RejectDriver
2043 Do not display functions compiled or elapsed time
2052 Driver Var(report_times)
2055 Driver JoinedOrMissing
2058 Driver Joined Separate
2062 ; C option, but driver must not handle as "-u ndef".
2065 Common Driver Var(verbose_flag)
2066 Enable verbose output
2069 Common Var(version_flag) RejectDriver
2070 Display the compiler's version
2073 Common Var(inhibit_warnings)
2077 Driver Separate Var(wrapper_string)
2080 Driver Joined Separate
2083 Common RejectNegative Negative(pie)
2084 Create a shared library
2090 Driver Separate Alias(specs=)
2103 ; Documented for Fortran, but always accepted by driver.
2112 Common RejectNegative Negative(shared)
2113 Create a position independent executable
2116 Driver Joined Separate
2118 ; This comment is to ensure we retain the blank line above.