1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003-2021 Free Software Foundation, Inc.
5 ; This file is part of GCC.
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
12 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING3. If not see
19 ; <http://www.gnu.org/licenses/>.
21 ; See the GCC internals manual (options.texi) for a description of this file's format.
23 ; Please try to keep this file in ASCII collating order.
37 ; Not used directly to control optimizations, only to save -Ofast
38 ; setting for "optimize" attributes.
42 ; True if this is the lto front end. This is used to disable gimple
43 ; generation and lowering passes that are normally run on the output
44 ; of a front end. These passes must be bypassed for lto since they
45 ; have already been done before the gimple was written.
49 ; This variable is set to non-0 only by LTO front-end. 1 indicates that
50 ; the output produced will be used for incremental linking (thus weak symbols
51 ; can still be bound) and 2 indicates that the IL is going to be linked and
52 ; and output to LTO object file.
54 enum incremental_link flag_incremental_link = INCREMENTAL_LINK_NONE
56 ; 0 means straightforward implementation of complex divide acceptable.
57 ; 1 means wide ranges of inputs must work for complex divide.
58 ; 2 means C99-like requirements for complex multiply and divide.
60 int flag_complex_method = 1
63 int flag_default_complex_method = 1
65 ; Language specific warning pass for unused results.
67 bool flag_warn_unused_result = false
69 ; Nonzero if we should write GIMPLE bytecode for link-time optimization.
73 ; Nonzero if we should write GIMPLE bytecode for offload compilation.
75 int flag_generate_offload = 0
77 ; Nonzero means we should be saving declaration info into a .X file.
79 int flag_gen_aux_info = 0
81 ; Nonzero if we are compiling code for a shared library, zero for
86 ; These two are really VEC(char_p,heap) *.
89 void *flag_instrument_functions_exclude_functions
92 void *flag_instrument_functions_exclude_files
94 ; Generic structs (e.g. templates not explicitly specialized)
95 ; may not have a compilation unit associated with them, and so
96 ; may need to be treated differently from ordinary structs.
98 ; Structs only handled by reference (indirectly), will also usually
99 ; not need as much debugging information.
102 enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
105 enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
107 ; True if we should exit after parsing options.
109 bool exit_after_options
111 ; Type(s) of debugging information we are producing (if any). See
112 ; flag-types.h for the definitions of the different possible types of
113 ; debugging information.
115 uint32_t write_symbols = NO_DEBUG
117 ; Level of debugging information we are producing. See flag-types.h
118 ; for the definitions of the different possible levels.
120 enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
122 ; Nonzero means use GNU-only extensions in the generated symbolic
123 ; debugging information. Currently, this only has an effect when
124 ; write_symbols is set to DBX_DEBUG or XCOFF_DEBUG.
126 bool use_gnu_debug_info_extensions
128 ; Level of CTF debugging information we are producing. See flag-types.h
129 ; for the definitions of the different possible levels.
131 enum ctf_debug_info_levels ctf_debug_info_level = CTFINFO_LEVEL_NONE
133 ; Original value of maximum field alignment in bytes, specified via
134 ; -fpack-struct=<value>.
136 unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
138 ; Type of stack check.
140 enum stack_check_type flag_stack_check = NO_STACK_CHECK
142 ; True if stack usage information needs to be computed.
144 bool flag_stack_usage_info = false
146 ; -dA causes debug commentary information to be produced in
147 ; the generated assembly code (to make it more readable). This option
148 ; is generally only of use to those who actually need to read the
149 ; generated assembly code (perhaps while debugging the compiler itself).
150 ; Currently, this switch is only used by dwarf2out.c; however, it is intended
151 ; to be a catchall for printing debug information in the assembler file.
155 ; Balance between GNAT encodings and standard DWARF to emit.
157 enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT
159 ; -dP causes the rtl to be emitted as a comment in assembly.
161 int flag_dump_rtl_in_asm
163 ; Whether -da was passed (used only in handle_common_deferred_options).
165 bool flag_dump_all_passed
167 ; Other flags saying which kinds of debugging dump have been requested.
170 int rtl_dump_and_exit
173 int flag_print_asm_name
175 ; Name of top-level original source file (what was input to cpp).
176 ; This comes from the #-command at the beginning of the actual input.
177 ; If there isn't any there, then this is the cc1 input file name.
179 const char *main_input_filename
181 ; Pointer to base name in main_input_filename, with directories and a
182 ; single final extension removed, and the length of this base
186 const char *main_input_basename
189 int main_input_baselength
191 ; The base name used for auxiliary output files.
192 ; dump_base_name minus dump_base_ext.
195 const char *aux_base_name
197 ; Which options have been printed by --help.
201 ; Which enums have been printed by --help. 0 = not printed, no
202 ; relevant options seen, 1 = relevant option seen, not yet printed, 2
205 char *help_enum_printed
207 ; The number of columns for --help output.
209 unsigned int help_columns
211 ; Whether this options structure has been through finish_options
213 bool flag_opts_finished
215 ; What the sanitizer should instrument
217 unsigned int flag_sanitize
219 ; What sanitizers should recover from errors
221 unsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS | SANITIZE_KERNEL_HWADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN)
223 ; What the coverage sanitizers should instrument
225 unsigned int flag_sanitize_coverage
227 ; Flag whether a prefix has been added to dump_base_name
229 bool dump_base_name_prefixed = false
231 ; What subset of registers should be zeroed on function return
233 unsigned int flag_zero_call_used_regs
245 Common Driver Joined Undocumented
246 Provide bash completion for options starting with provided string.
249 Driver Alias(coverage)
255 Common Separate Alias(d)
258 Common Joined Alias(d)
261 Driver Common Separate Alias(dumpbase)
264 Driver Common Separate Alias(dumpbase-ext)
267 Driver Common Separate Alias(dumpdir)
270 Driver Separate Alias(e)
273 Driver Joined Alias(e)
276 Common Warning Alias(Wextra)
279 Driver Separate Alias(Xassembler)
282 Driver JoinedOrMissing Alias(Xassembler)
285 Driver Separate Alias(Xlinker)
288 Driver JoinedOrMissing Alias(Xlinker)
291 Driver Separate Alias(u)
294 Driver Joined Alias(u)
297 Common Driver Var(help_flag)
298 Display this information.
302 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params.
305 Driver Separate Alias(x)
308 Driver Joined Alias(x)
311 Driver Separate Alias(L)
314 Driver Joined Alias(L)
316 -no-canonical-prefixes
317 Driver Alias(no-canonical-prefixes)
319 -no-standard-libraries
320 Driver Alias(nostdlib)
323 Driver Var(no_sysroot_suffix)
332 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
335 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
338 Driver Alias(pass-exit-codes)
341 Common Alias(Wpedantic)
344 Common Alias(pedantic-errors)
350 Driver Alias(static-pie)
356 Driver Separate Alias(B)
359 Driver JoinedOrMissing Alias(B)
365 Driver Separate Alias(print-file-name=)
368 Driver JoinedOrMissing Alias(print-file-name=)
370 -print-libgcc-file-name
371 Driver Alias(print-libgcc-file-name)
373 -print-multi-directory
374 Driver Alias(print-multi-directory)
377 Driver Alias(print-multi-lib)
379 -print-multi-os-directory
380 Driver Alias(print-multi-os-directory)
383 Driver Alias(print-multiarch)
386 Driver Separate Alias(print-prog-name=)
389 Driver JoinedOrMissing Alias(print-prog-name=)
392 Driver Alias(print-search-dirs)
395 Driver Alias(print-sysroot)
397 -print-sysroot-headers-suffix
398 Driver Alias(print-sysroot-headers-suffix)
404 Driver Alias(save-temps)
410 Driver Separate Alias(specs=)
413 Driver Joined Alias(specs=)
419 Driver Alias(symbolic)
423 Alias for --help=target.
431 ;; The driver used to convert options such as --help into forms such
432 ;; as -fhelp; the following four entries are for compatibility with
433 ;; any direct uses of those (undocumented) -f forms
435 Common Driver Alias(-help)
438 Common Driver Joined Alias(-help=)
441 Common Driver Alias(-target-help)
444 Common Driver Alias(-version)
447 Driver Separate Alias(-sysroot=)
450 Driver JoinedOrMissing
456 Driver Joined Separate
462 Driver Joined Separate
468 Common JoinedOrMissing Optimization
469 -O<number> Set optimization level to <number>.
473 Optimize for space rather than speed.
477 Optimize for speed disregarding exact standards compliance.
481 Optimize for debugging experience rather than speed or size.
493 Driver Joined Separate
499 Driver Joined Separate
520 Common RejectNegative Warning Alias(Wextra)
521 This switch is deprecated; use -Wextra instead.
524 Driver JoinedOrMissing RejectNegative
527 Driver JoinedOrMissing RejectNegative
530 Driver JoinedOrMissing RejectNegative
533 Common Var(warn_aggregate_return) Warning
534 Warn about returning structures, unions or arrays.
536 Waggressive-loop-optimizations
537 Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
538 Warn if a loop with constant number of iterations triggers undefined behavior.
541 Common Var(warn_array_bounds) Warning
542 Warn if an array is accessed out of bounds.
545 Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2)
546 Warn if an array is accessed out of bounds.
549 Common Var(warn_attributes) Init(1) Warning
550 Warn about inappropriate attribute usage.
553 Common Alias(Wattribute_alias=, 1, 0) Warning
554 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
557 Common Joined RejectNegative UInteger Var(warn_attribute_alias) Init(1) Warning IntegerRange(0, 2)
558 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
561 Common Var(warn_cannot_profile) Init(1) Warning
562 Warn when profiling instrumentation was requested, but could not be applied to
566 Common Var(warn_cast_align) Warning
567 Warn about pointer casts which increase alignment.
570 Common Var(warn_cast_align,2) Warning
571 Warn about pointer casts which increase alignment.
574 Common Var(warn_cpp) Init(1) Warning
575 Warn when a #warning directive is encountered.
578 Common Var(warn_attribute_warning) Init(1) Warning
579 Warn about uses of __attribute__((warning)) declarations.
582 Common Var(warn_deprecated) Init(1) Warning
583 Warn if a deprecated compiler feature, class, method, or field is used.
585 Wdeprecated-declarations
586 Common Var(warn_deprecated_decl) Init(1) Warning
587 Warn about uses of __attribute__((deprecated)) declarations.
589 Wdisabled-optimization
590 Common Var(warn_disabled_optimization) Warning
591 Warn when an optimization pass is disabled.
594 Common Var(warnings_are_errors)
595 Treat all warnings as errors.
599 Treat specified warning as error.
602 Common Var(extra_warnings) Warning
603 Print extra (possibly unwanted) warnings.
606 Common Var(flag_fatal_errors)
607 Exit on the first error occurred.
610 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_frame_larger_than_size) Init(HOST_WIDE_INT_MAX)
611 -Wframe-larger-than=<byte-size> Warn if a function's stack frame requires in excess of <byte-size>.
613 Wno-frame-larger-than
614 Common Alias(Wframe-larger-than=,18446744073709551615EiB,none) Warning
615 Disable -Wframe-larger-than= warning. Equivalent to -Wframe-larger-than=<SIZE_MAX> or larger.
618 Common Var(warn_free_nonheap_object) Init(1) Warning
619 Warn when attempting to free a non-heap object.
622 Common Ignore Warning
623 Does nothing. Preserved for backward compatibility.
625 Wimplicit-fallthrough
626 Common Alias(Wimplicit-fallthrough=,3,0) Warning
628 Wimplicit-fallthrough=
629 Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5)
630 Warn when a switch case falls through.
633 Common Var(warn_inline) Warning Optimization
634 Warn when an inlined function cannot be inlined.
636 Winvalid-memory-model
637 Common Var(warn_invalid_memory_model) Init(1) Warning
638 Warn when an atomic memory model parameter is known to be outside the valid range.
641 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
644 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_larger_than_size) Init(HOST_WIDE_INT_MAX)
645 -Wlarger-than=<byte-size> Warn if an object's size exceeds <byte-size>.
648 Common Alias(Wlarger-than=,18446744073709551615EiB,none) Warning
649 Disable -Wlarger-than= warning. Equivalent to -Wlarger-than=<SIZE_MAX> or larger.
652 Var(warn_nonnull_compare) Warning
653 Warn if comparing pointer parameter with nonnull attribute with NULL.
656 Common Var(warn_null_dereference) Warning
657 Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
659 Wunsafe-loop-optimizations
660 Common Ignore Warning
661 Does nothing. Preserved for backward compatibility.
664 Common Warning Alias(Wsuggest-attribute=noreturn)
667 Common Var(warn_odr_violations) Init(1) Warning
668 Warn about some C++ One Definition Rule violations during link time optimization.
671 Common Var(warn_overflow) Init(1) Warning
672 Warn about overflow in arithmetic expressions.
675 Common Var(warn_lto_type_mismatch) Init(1) Warning
676 During link time optimization warn about mismatched types of global declarations.
679 Common Var(warn_packed) Warning
680 Warn when the packed attribute has no effect on struct layout.
683 Common Var(warn_padded) Warning
684 Warn when padding is required to align structure members.
687 Common Var(pedantic) Init(0) Warning
688 Issue warnings needed for strict compliance to the standard.
691 Common Var(warn_return_local_addr) Init(1) Warning
692 Warn about returning a pointer/reference to a local or temporary variable.
695 Common Var(warn_shadow) Warning
696 Warn when one variable shadows another. Same as -Wshadow=global.
699 Common Warning Alias(Wshadow)
700 Warn when one variable shadows another (globally).
703 Common Var(warn_shadow_local) Warning EnabledBy(Wshadow)
704 Warn when one local variable shadows another local variable or parameter.
707 Common Warning Undocumented Alias(Wshadow=local)
709 Wshadow=compatible-local
710 Common Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local)
711 Warn when one local variable shadows another local variable or parameter of compatible type.
713 Wshadow-compatible-local
714 Common Warning Undocumented Alias(Wshadow=compatible-local)
717 Common Var(warn_stack_protect) Warning
718 Warn when not issuing stack smashing protection for some reason.
721 Common Joined RejectNegative Host_Wide_Int ByteSize Var(warn_stack_usage) Warning Init(HOST_WIDE_INT_MAX)
722 -Wstack-usage=<byte-size> Warn if stack usage might exceed <byte-size>.
725 Common Alias(Wstack-usage=,18446744073709551615EiB,none) Warning
726 Disable Wstack-usage= warning. Equivalent to Wstack-usage=<SIZE_MAX> or larger.
730 Warn about code which might break strict aliasing rules.
733 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
734 Warn about code which might break strict aliasing rules.
738 Warn about optimizations that assume that signed overflow is undefined.
741 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
742 Warn about optimizations that assume that signed overflow is undefined.
744 Wsuggest-attribute=cold
745 Common Var(warn_suggest_attribute_cold) Warning
746 Warn about functions which might be candidates for __attribute__((cold)).
748 Wsuggest-attribute=const
749 Common Var(warn_suggest_attribute_const) Warning
750 Warn about functions which might be candidates for __attribute__((const)).
752 Wsuggest-attribute=pure
753 Common Var(warn_suggest_attribute_pure) Warning
754 Warn about functions which might be candidates for __attribute__((pure)).
756 Wsuggest-attribute=noreturn
757 Common Var(warn_suggest_attribute_noreturn) Warning
758 Warn about functions which might be candidates for __attribute__((noreturn)).
760 Wsuggest-attribute=malloc
761 Common Var(warn_suggest_attribute_malloc) Warning
762 Warn about functions which might be candidates for __attribute__((malloc)).
765 Common Var(warn_suggest_final_types) Warning
766 Warn about C++ polymorphic types where adding final keyword would improve code quality.
768 Wsuggest-final-methods
769 Common Var(warn_suggest_final_methods) Warning
770 Warn about C++ virtual methods where adding final keyword would improve code quality.
773 Common Var(warn_switch_unreachable) Warning Init(1)
774 Warn about statements between switch's controlling expression and the first
778 Common Var(warn_system_headers) Warning
779 Do not suppress warnings from system headers.
782 Common Var(warn_trampolines) Warning
783 Warn whenever a trampoline is generated.
786 Common Var(warn_type_limits) Warning EnabledBy(Wextra)
787 Warn if a comparison is always true or always false due to the limited range of the data type.
790 Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
791 Warn about uninitialized automatic variables.
794 Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
795 Warn about maybe uninitialized automatic variables.
798 Common Ignore Warning
799 Does nothing. Preserved for backward compatibility.
802 Common Var(warn_unused) Init(0) Warning
803 Enable all -Wunused- warnings.
805 Wunused-but-set-parameter
806 Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
807 Warn when a function parameter is only set, otherwise unused.
809 Wunused-but-set-variable
810 Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
811 Warn when a variable is only set, otherwise unused.
814 Common Var(warn_unused_function) Warning EnabledBy(Wunused)
815 Warn when a function is unused.
818 Common Var(warn_unused_label) Warning EnabledBy(Wunused)
819 Warn when a label is unused.
822 Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
823 Warn when a function parameter is unused.
826 Common Var(warn_unused_value) Warning EnabledBy(Wunused)
827 Warn when an expression value is unused.
830 Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
831 Warn when a variable is unused.
834 Common Var(warn_coverage_mismatch) Init(1) Warning
835 Warn in case profiles in -fprofile-use do not match.
837 Wcoverage-invalid-line-number
838 Common Var(warn_coverage_invalid_linenum) Init(1) Warning
839 Warn in case a function ends earlier than it begins due to an invalid linenum macros.
842 Common Var(warn_missing_profile) Init(1) Warning
843 Warn in case profiles in -fprofile-use do not exist.
845 Wvector-operation-performance
846 Common Var(warn_vector_operation_performance) Warning
847 Warn when a vector operation is compiled outside the SIMD.
850 Common Var(warn_tsan) Init(1) Warning
851 Warn about unsupported features in ThreadSanitizer.
866 Common Separate Var(aux_info_file_name)
867 -aux-info <file> Emit declaration information into <file>.
870 Common Joined Alias(aux-info)
880 -d<letters> Enable dumps from specific passes of the compiler.
883 Driver Common Separate Var(dump_base_name)
884 -dumpbase <file> Set the file basename to be used for dumps.
887 Driver Common Separate Var(dump_base_ext)
888 -dumpbase-ext .<ext> Drop a trailing .<ext> from the dump basename to name auxiliary output files.
891 Driver Common Separate Var(dump_dir_name)
892 -dumpdir <dir> Set the directory name to be used for dumps.
907 Driver Joined Separate
909 ; This option has historically been passed down to the linker by an
910 ; accident of a %{e*} spec, so ensure it continues to be passed down
911 ; as a single option. The supported option for this purpose is
912 ; -rdynamic. See PR 47390.
916 ; The version of the C++ ABI in use. The following values are allowed:
918 ; 0: The version of the ABI believed most conformant with the C++ ABI
919 ; specification. This ABI may change as bugs are discovered and fixed.
920 ; Therefore, 0 will not necessarily indicate the same ABI in different
923 ; 1: The version of the ABI first used in G++ 3.2. No longer selectable.
925 ; 2: The version of the ABI first used in G++ 3.4, and the default
928 ; 3: The version of the ABI that fixes the missing underscore
929 ; in template non-type arguments of pointer type.
931 ; 4: The version of the ABI that introduces unambiguous mangling of
932 ; vector types. First selectable in G++ 4.5.
934 ; 5: The version of the ABI that ignores attribute const/noreturn
935 ; in function pointer mangling, and corrects mangling of decltype and
936 ; function parameters used in other parameters and the return type.
937 ; First selectable in G++ 4.6.
939 ; 6: The version of the ABI that doesn't promote scoped enums to int and
940 ; changes the mangling of template argument packs, const/static_cast,
941 ; prefix ++ and --, and a class scope function used as a template
943 ; First selectable in G++ 4.7.
945 ; 7: The version of the ABI that treats nullptr_t as a builtin type and
946 ; corrects the mangling of lambdas in default argument scope.
947 ; First selectable in G++ 4.8.
949 ; 8: The version of the ABI that corrects the substitution behavior of
950 ; function types with function-cv-qualifiers.
951 ; First selectable in G++ 4.9 and default in G++ 5.
953 ; 9: The version of the ABI that corrects the alignment of nullptr_t.
954 ; First selectable and default in G++ 5.2.
956 ; 10: The version of the ABI that mangles attributes that affect type
957 ; identity, such as ia32 calling convention attributes (stdcall, etc.)
958 ; Default in G++ 6 (set in c_common_post_options).
960 ; 11: The version of the ABI that corrects mangling of sizeof... expressions
961 ; and introduces new inheriting constructor handling.
964 ; 12: Corrects the calling convention for classes with only deleted copy/move
965 ; constructors and changes passing/returning of empty records.
966 ; Default in G++ 8.1.
968 ; 13: Fixes the accidental change in 12 to the calling convention for classes
969 ; with deleted copy constructor and trivial move constructor.
970 ; Default in G++ 8.2.
972 ; 14: Corrects the mangling of nullptr expression.
975 ; 15: Corrects G++ 10 ABI tag regression [PR98481].
976 ; Available, but not default, in G++ 10.3.
978 ; 16: Changes the mangling of __alignof__ to be distinct from that of alignof.
979 ; Adds missing 'on' in mangling of operator names in some cases.
982 ; Additional positive integers will be assigned as new versions of
983 ; the ABI become the default version of the ABI.
985 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
986 The version of the C++ ABI in use.
988 faggressive-loop-optimizations
989 Common Var(flag_aggressive_loop_optimizations) Optimization Init(1)
990 Aggressively optimize loops using language constraints.
993 Common Var(flag_align_functions) Optimization
994 Align the start of functions.
997 Common RejectNegative Joined Var(str_align_functions) Optimization
999 flimit-function-alignment
1000 Common Var(flag_limit_function_alignment) Optimization Init(0)
1003 Common Var(flag_align_jumps) Optimization
1004 Align labels which are only reached by jumping.
1007 Common RejectNegative Joined Var(str_align_jumps) Optimization
1010 Common Var(flag_align_labels) Optimization
1014 Common RejectNegative Joined Var(str_align_labels) Optimization
1017 Common Var(flag_align_loops) Optimization
1018 Align the start of loops.
1021 Common RejectNegative Joined Var(str_align_loops) Optimization
1023 fallow-store-data-races
1024 Common Var(flag_store_data_races) Optimization
1025 Allow the compiler to introduce new data races on stores.
1028 Common Var(flag_analyzer)
1029 Enable static analysis pass.
1033 Does nothing. Preserved for backward compatibility.
1037 Does nothing. Preserved for backward compatibility.
1039 fargument-noalias-global
1041 Does nothing. Preserved for backward compatibility.
1043 fargument-noalias-anything
1045 Does nothing. Preserved for backward compatibility.
1048 Common Driver Joined
1049 Select what to sanitize.
1052 Common Joined RejectNegative Enum(sanitize_coverage)
1053 Select type of coverage sanitization.
1056 Name(sanitize_coverage) Type(int)
1059 Enum(sanitize_coverage) String(trace-pc) Value(SANITIZE_COV_TRACE_PC)
1062 Enum(sanitize_coverage) String(trace-cmp) Value(SANITIZE_COV_TRACE_CMP)
1064 fasan-shadow-offset=
1065 Common Joined RejectNegative Var(common_deferred_options) Defer
1066 -fasan-shadow-offset=<number> Use custom shadow memory offset.
1069 Common Joined RejectNegative Var(common_deferred_options) Defer
1070 -fsanitize-sections=<sec1,sec2,...> Sanitize global variables
1071 in user-defined sections.
1075 After diagnosing undefined behavior attempt to continue execution.
1079 This switch is deprecated; use -fsanitize-recover= instead.
1081 fsanitize-address-use-after-scope
1082 Common Driver Var(flag_sanitize_address_use_after_scope) Init(0)
1084 fsanitize-undefined-trap-on-error
1085 Common Driver Var(flag_sanitize_undefined_trap_on_error) Init(0)
1086 Use trap instead of a library function for undefined behavior sanitization.
1088 fasynchronous-unwind-tables
1089 Common Var(flag_asynchronous_unwind_tables) Optimization
1090 Generate unwind tables that are exact at each instruction boundary.
1093 Common Var(flag_auto_inc_dec) Init(1) Optimization
1094 Generate auto-inc/dec instructions.
1097 Common Var(flag_auto_profile)
1098 Use sample profile information for call graph node weights. The default
1099 profile file is fbdata.afdo in 'pwd'.
1102 Common Joined RejectNegative Var(auto_profile_file)
1103 Use sample profile information for call graph node weights. The profile
1104 file is specified in the argument.
1106 ; -fcheck-bounds causes gcc to generate array bounds checks.
1107 ; For C, C++ and ObjC: defaults off.
1108 ; For Java: defaults to on.
1109 ; For Fortran: defaults to off.
1111 Common Var(flag_bounds_check)
1112 Generate code to check bounds before indexing arrays.
1115 Common Var(flag_branch_on_count_reg) Optimization
1116 Replace add, compare, branch with branch on count register.
1118 fbranch-probabilities
1119 Common Var(flag_branch_probabilities) Optimization
1120 Use profiling information for branch probabilities.
1122 fbranch-target-load-optimize
1124 Does nothing. Preserved for backward compatibility.
1126 fbranch-target-load-optimize2
1128 Does nothing. Preserved for backward compatibility.
1132 Does nothing. Preserved for backward compatibility.
1135 Common RejectNegative Var(flag_callgraph_info) Init(NO_CALLGRAPH_INFO);
1136 Output callgraph information on a per-file basis.
1139 Common RejectNegative Joined
1140 Output callgraph information on a per-file basis with decorations.
1143 Common Joined RejectNegative Var(common_deferred_options) Defer
1144 -fcall-saved-<register> Mark <register> as being preserved across functions.
1147 Common Joined RejectNegative Var(common_deferred_options) Defer
1148 -fcall-used-<register> Mark <register> as being corrupted by function calls.
1150 ; Nonzero for -fcaller-saves: allocate values in regs that need to
1151 ; be saved across function calls, if that produces overall better code.
1152 ; Optional now, so people can test it.
1154 Common Var(flag_caller_saves) Optimization
1155 Save registers around function calls.
1159 This switch is deprecated; do not use.
1162 Common Var(flag_check_new)
1163 Check the return value of new in C++.
1166 Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0)
1167 Perform internal consistency checkings.
1170 Common Joined RejectNegative UInteger Var(flag_checking)
1171 Perform internal consistency checkings.
1174 Common Var(flag_code_hoisting) Optimization
1175 Enable code hoisting.
1177 fcombine-stack-adjustments
1178 Common Var(flag_combine_stack_adjustments) Optimization
1179 Looks for opportunities to reduce stack adjustments and stack references.
1182 Common Var(flag_no_common,0) Init(1)
1183 Put uninitialized globals in the common section.
1187 ; Converted by the driver to -fcompare-debug= options.
1190 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
1191 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump.
1193 fcompare-debug-second
1194 Common Driver RejectNegative Var(flag_compare_debug)
1195 Run only the second compilation of -fcompare-debug.
1198 Common Var(flag_compare_elim_after_reload) Optimization
1199 Perform comparison elimination after register allocation has finished.
1202 Common Var(flag_conserve_stack) Optimization
1203 Do not perform optimizations increasing noticeably stack usage.
1206 Common Var(flag_cprop_registers) Optimization
1207 Perform a register copy-propagation optimization pass.
1210 Common Var(flag_crossjumping) Optimization
1211 Perform cross-jumping optimization.
1214 Common Var(flag_cse_follow_jumps) Optimization
1215 When running CSE, follow jumps to their targets.
1219 Does nothing. Preserved for backward compatibility.
1222 Common Var(flag_cx_limited_range) Optimization SetByCombined
1223 Omit range reduction step when performing complex division.
1226 Common Var(flag_cx_fortran_rules) Optimization
1227 Complex multiplication and division follow Fortran rules.
1230 Common Var(flag_data_sections)
1231 Place data items into their own section.
1234 Common Var(flag_dbg_cnt_list)
1235 List all available debugging counters with their limits and counts.
1238 Common RejectNegative Joined Var(common_deferred_options) Defer
1239 -fdbg-cnt=<counter>[:<lower_limit1>-]<upper_limit1>[:<lower_limit2>-<upper_limit2>:...][,<counter>:...] Set the debug counter limit.
1242 Common Joined RejectNegative Var(common_deferred_options) Defer
1243 -fdebug-prefix-map=<old>=<new> Map one directory name to another in debug information.
1246 Common Joined RejectNegative Var(common_deferred_options) Defer
1247 -ffile-prefix-map=<old>=<new> Map one directory name to another in compilation result.
1249 fdebug-types-section
1250 Common Var(flag_debug_types_section) Init(0)
1251 Output .debug_types section when using DWARF v4 debuginfo.
1253 ; Nonzero for -fdefer-pop: don't pop args after each function call
1254 ; instead save them up to pop many calls' args with one insns.
1256 Common Var(flag_defer_pop) Optimization
1257 Defer popping functions args from stack until later.
1260 Common Var(flag_delayed_branch) Optimization
1261 Attempt to fill delay slots of branch instructions.
1263 fdelete-dead-exceptions
1264 Common Var(flag_delete_dead_exceptions) Init(0) Optimization
1265 Delete dead instructions that may throw exceptions.
1267 fdelete-null-pointer-checks
1268 Common Var(flag_delete_null_pointer_checks) Init(-1) Optimization
1269 Delete useless null pointer checks.
1271 fdevirtualize-at-ltrans
1272 Common Var(flag_ltrans_devirtualize)
1273 Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
1275 fdevirtualize-speculatively
1276 Common Var(flag_devirtualize_speculatively) Optimization
1277 Perform speculative devirtualization.
1280 Common Var(flag_devirtualize) Optimization
1281 Try to convert virtual calls to direct ones.
1283 fdiagnostics-show-location=
1284 Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
1285 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics.
1287 ; Required for these enum values.
1292 Name(diagnostic_prefixing_rule) Type(int)
1295 Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
1298 Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
1300 fdiagnostics-show-caret
1301 Common Var(flag_diagnostics_show_caret) Init(1)
1302 Show the source line with a caret indicating the column.
1304 fdiagnostics-show-labels
1305 Common Var(flag_diagnostics_show_labels) Init(1)
1306 Show labels annotating ranges of source code when showing source.
1308 fdiagnostics-show-line-numbers
1309 Common Var(flag_diagnostics_show_line_numbers) Init(1)
1310 Show line numbers in the left margin when showing source.
1313 Common Alias(fdiagnostics-color=,always,never)
1317 Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
1318 -fdiagnostics-color=[never|always|auto] Colorize diagnostics.
1320 ; Required for these enum values.
1325 Name(diagnostic_color_rule) Type(int)
1328 Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
1331 Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
1334 Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
1337 Driver Common Joined RejectNegative Var(flag_diagnostics_show_urls) Enum(diagnostic_url_rule) Init(DIAGNOSTICS_URL_AUTO)
1338 -fdiagnostics-urls=[never|always|auto] Embed URLs in diagnostics.
1340 ; Required for these enum values.
1345 Name(diagnostic_url_rule) Type(int)
1348 Enum(diagnostic_url_rule) String(never) Value(DIAGNOSTICS_URL_NO)
1351 Enum(diagnostic_url_rule) String(always) Value(DIAGNOSTICS_URL_YES)
1354 Enum(diagnostic_url_rule) String(auto) Value(DIAGNOSTICS_URL_AUTO)
1356 fdiagnostics-column-unit=
1357 Common Joined RejectNegative Enum(diagnostics_column_unit)
1358 -fdiagnostics-column-unit=[display|byte] Select whether column numbers are output as display columns (default) or raw bytes.
1360 fdiagnostics-column-origin=
1361 Common Joined RejectNegative UInteger
1362 -fdiagnostics-column-origin=<number> Set the number of the first column. The default is 1-based as per GNU style, but some utilities may expect 0-based, for example.
1364 fdiagnostics-format=
1365 Common Joined RejectNegative Enum(diagnostics_output_format)
1366 -fdiagnostics-format=[text|json] Select output format.
1368 ; Required for these enum values.
1373 Name(diagnostics_column_unit) Type(int)
1376 Enum(diagnostics_column_unit) String(display) Value(DIAGNOSTICS_COLUMN_UNIT_DISPLAY)
1379 Enum(diagnostics_column_unit) String(byte) Value(DIAGNOSTICS_COLUMN_UNIT_BYTE)
1382 Name(diagnostics_output_format) Type(int)
1385 Enum(diagnostics_output_format) String(text) Value(DIAGNOSTICS_OUTPUT_FORMAT_TEXT)
1388 Enum(diagnostics_output_format) String(json) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON)
1390 fdiagnostics-parseable-fixits
1391 Common Var(flag_diagnostics_parseable_fixits)
1392 Print fix-it hints in machine-readable form.
1394 fdiagnostics-generate-patch
1395 Common Var(flag_diagnostics_generate_patch)
1396 Print fix-it hints to stderr in unified diff format.
1398 fdiagnostics-show-option
1399 Common Var(flag_diagnostics_show_option) Init(1)
1400 Amend appropriate diagnostic messages with the command line option that controls them.
1402 fdiagnostics-show-cwe
1403 Common Var(flag_diagnostics_show_cwe) Init(1)
1404 Print CWE identifiers for diagnostic messages, where available.
1406 fdiagnostics-path-format=
1407 Common Joined RejectNegative Var(flag_diagnostics_path_format) Enum(diagnostic_path_format) Init(DPF_INLINE_EVENTS)
1408 Specify how to print any control-flow path associated with a diagnostic.
1410 fdiagnostics-plain-output
1411 Driver Common RejectNegative
1412 Turn off any diagnostics features that complicate the output, such as line numbers, color, and warning URLs.
1415 Common Joined RejectNegative UInteger
1416 -ftabstop=<number> Distance between tab stops for column reporting.
1419 Name(diagnostic_path_format) Type(int)
1422 Enum(diagnostic_path_format) String(none) Value(DPF_NONE)
1425 Enum(diagnostic_path_format) String(separate-events) Value(DPF_SEPARATE_EVENTS)
1428 Enum(diagnostic_path_format) String(inline-events) Value(DPF_INLINE_EVENTS)
1430 fdiagnostics-show-path-depths
1431 Common Var(flag_diagnostics_show_path_depths) Init(0)
1432 Show stack depths of events in paths.
1434 fdiagnostics-minimum-margin-width=
1435 Common Joined UInteger Var(diagnostics_minimum_margin_width) Init(6)
1436 Set minimum width of left margin of source code when showing source.
1439 Common Joined RejectNegative Var(common_deferred_options) Defer
1440 -fdisable-[tree|rtl|ipa]-<pass>=range1+range2 Disable an optimization pass.
1443 Common Joined RejectNegative Var(common_deferred_options) Defer
1444 -fenable-[tree|rtl|ipa]-<pass>=range1+range2 Enable an optimization pass.
1447 Common Joined RejectNegative Var(common_deferred_options) Defer
1448 -fdump-<type> Dump various compiler internals to a file.
1451 Driver RejectNegative
1454 Common RejectNegative Joined Var(flag_dump_final_insns)
1455 -fdump-final-insns=filename Dump to filename the insns at the end of translation.
1458 Common RejectNegative Joined Var(flag_dump_go_spec)
1459 -fdump-go-spec=filename Write all declarations to file as Go code.
1462 Common Var(flag_dump_noaddr)
1463 Suppress output of addresses in debugging dumps.
1466 Common Driver Var(flag_report_bug)
1467 Collect and dump debug information into temporary file if ICE in C/C++
1470 fdump-internal-locations
1471 Common Var(flag_dump_locations) Init(0)
1472 Dump detailed information on GCC's internal representation of source code locations.
1475 Common Var(flag_dump_passes) Init(0)
1476 Dump optimization passes.
1479 Common Var(flag_dump_unnumbered)
1480 Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
1482 fdump-unnumbered-links
1483 Common Var(flag_dump_unnumbered_links)
1484 Suppress output of previous and next insn numbers in debugging dumps.
1487 Common Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1488 Enable CFI tables via GAS assembler directives.
1491 Common Var(flag_early_inlining) Init(1) Optimization
1492 Perform early inlining.
1494 feliminate-dwarf2-dups
1496 Does nothing. Preserved for backward compatibility.
1499 Common Var(flag_ipa_sra) Init(0) Optimization
1500 Perform interprocedural reduction of aggregates.
1502 feliminate-unused-debug-symbols
1503 Common Var(flag_debug_only_used_symbols) Init(1)
1504 Perform unused symbol elimination in debug info.
1506 feliminate-unused-debug-types
1507 Common Var(flag_eliminate_unused_debug_types) Init(1)
1508 Perform unused type elimination in debug info.
1510 femit-class-debug-always
1511 Common Var(flag_emit_class_debug_always) Init(0)
1512 Do not suppress C++ class debug information.
1515 Common Var(flag_exceptions) Optimization EnabledBy(fnon-call-exceptions)
1516 Enable exception handling.
1518 fexpensive-optimizations
1519 Common Var(flag_expensive_optimizations) Optimization
1520 Perform a number of minor, expensive optimizations.
1523 Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision) Init(EXCESS_PRECISION_DEFAULT) Optimization SetByCombined
1524 -fexcess-precision=[fast|standard|16] Specify handling of excess floating-point precision.
1527 Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1530 Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1533 Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1536 Enum(excess_precision) String(16) Value(EXCESS_PRECISION_FLOAT16)
1538 ; Whether we permit the extended set of values for FLT_EVAL_METHOD
1539 ; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11.
1540 fpermitted-flt-eval-methods=
1541 Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT)
1542 -fpermitted-flt-eval-methods=[c11|ts-18661] Specify which values of FLT_EVAL_METHOD are permitted.
1545 Name(permitted_flt_eval_methods) Type(enum permitted_flt_eval_methods) UnknownError(unknown specification for the set of FLT_EVAL_METHOD values to permit %qs)
1548 Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11)
1551 Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
1557 Common Var(flag_fat_lto_objects)
1558 Output lto objects containing both the intermediate language and binary output.
1561 Common Var(flag_finite_math_only) Optimization SetByCombined
1562 Assume no NaNs or infinities are generated.
1565 Common Var(flag_finite_loops) Optimization Init(0)
1566 Assume that loops with an exit will terminate and not loop indefinitely.
1569 Common Joined RejectNegative Var(common_deferred_options) Defer
1570 -ffixed-<register> Mark <register> as being unavailable to the compiler.
1573 Common Var(flag_float_store) Optimization
1574 Don't allocate floats and doubles in extended-precision registers.
1578 Does nothing. Preserved for backward compatibility.
1581 Common Var(flag_forward_propagate) Optimization
1582 Perform a forward propagation pass on RTL.
1585 Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
1586 -ffp-contract=[off|on|fast] Perform floating-point expression contraction.
1589 Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1592 Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1594 ; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1596 Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1599 Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1601 ffp-int-builtin-inexact
1602 Common Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1603 Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1605 ; Nonzero means don't put addresses of constant functions in registers.
1606 ; Used for compiling the Unix kernel, where strange substitutions are
1607 ; done on the assembly output.
1609 Common Var(flag_no_function_cse,0) Optimization
1610 Allow function addresses to be held in registers.
1613 Common Var(flag_function_sections)
1614 Place each function into its own section.
1617 Common Var(flag_gcse) Optimization
1618 Perform global common subexpression elimination.
1621 Common Var(flag_gcse_lm) Init(1) Optimization
1622 Perform enhanced load motion during global common subexpression elimination.
1625 Common Var(flag_gcse_sm) Init(0) Optimization
1626 Perform store motion after global common subexpression elimination.
1629 Common Var(flag_gcse_las) Init(0) Optimization
1630 Perform redundant load after store elimination in global common subexpression
1634 Common Var(flag_gcse_after_reload) Optimization
1635 Perform global common subexpression elimination after register allocation has
1639 Name(dwarf_gnat_encodings) Type(int)
1642 Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1645 Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1648 Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1651 Common Enum(dwarf_gnat_encodings) Joined RejectNegative Undocumented Var(gnat_encodings)
1652 -fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information.
1654 ; This option is not documented yet as its semantics will change.
1656 Common Var(flag_graphite) Optimization
1657 Enable in and out of Graphite representation.
1660 Common Var(flag_graphite_identity) Optimization
1661 Enable Graphite Identity transformation.
1663 fhoist-adjacent-loads
1664 Common Var(flag_hoist_adjacent_loads) Optimization
1665 Enable hoisting adjacent loads to encourage generating conditional move
1669 Common Undocumented Var(flag_keep_gc_roots_live) Optimization
1670 ; Always keep a pointer to a live memory block
1673 Common Var(flag_large_source_files) Init(0)
1674 Improve GCC's ability to track column numbers in large source files,
1675 at the expense of slower compilation.
1677 floop-parallelize-all
1678 Common Var(flag_loop_parallelize_all) Optimization
1679 Mark all loops as parallel.
1682 Common Alias(floop-nest-optimize)
1683 Enable loop nest transforms. Same as -floop-nest-optimize.
1686 Common Var(flag_loop_interchange) Optimization
1687 Enable loop interchange on trees.
1690 Common Alias(floop-nest-optimize)
1691 Enable loop nest transforms. Same as -floop-nest-optimize.
1693 floop-unroll-and-jam
1694 Common Var(flag_unroll_jam) Optimization
1695 Perform unroll-and-jam on loops.
1699 Enable support for GNU transactional memory.
1702 Common Var(flag_gnu_unique) Init(1)
1703 Use STB_GNU_UNIQUE if supported by the assembler.
1707 Does nothing. Preserved for backward compatibility.
1710 Common Var(flag_loop_nest_optimize) Optimization
1711 Enable the loop nest optimizer.
1713 fstrict-volatile-bitfields
1714 Common Var(flag_strict_volatile_bitfields) Init(-1) Optimization
1715 Force bitfield accesses to match their type width.
1718 Common Var(flag_store_merging) Optimization
1719 Merge adjacent stores.
1721 fguess-branch-probability
1722 Common Var(flag_guess_branch_prob) Optimization
1723 Enable guessing of branch probabilities.
1725 ; Nonzero means ignore `#ident' directives. 0 means handle them.
1726 ; Generate position-independent code for executables if possible
1727 ; On SVR4 targets, it also controls whether or not to emit a
1728 ; string identifying the compiler.
1730 Common Var(flag_no_ident,0)
1731 Process #ident directives.
1734 Common Var(flag_if_conversion) Optimization
1735 Perform conversion of conditional jumps to branchless equivalents.
1738 Common Var(flag_if_conversion2) Optimization
1739 Perform conversion of conditional jumps to conditional execution.
1742 Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
1743 -fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
1746 Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1749 Enum(stack_reuse_level) String(all) Value(SR_ALL)
1752 Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1755 Enum(stack_reuse_level) String(none) Value(SR_NONE)
1757 ftree-loop-if-convert
1758 Common Var(flag_tree_loop_if_convert) Init(-1) Optimization
1759 Convert conditional jumps in innermost loops to branchless equivalents.
1761 ftree-loop-if-convert-stores
1763 Does nothing. Preserved for backward compatibility.
1765 ; -finhibit-size-directive inhibits output of .size for ELF.
1766 ; This is used only for compiling crtstuff.c,
1767 ; and it may be extended to other effects
1768 ; needed for crtstuff.c on other systems.
1769 finhibit-size-directive
1770 Common Var(flag_inhibit_size_directive)
1771 Do not generate .size directives.
1774 Common Var(flag_indirect_inlining) Optimization
1775 Perform indirect inlining.
1777 ; General flag to enable inlining. Specifying -fno-inline will disable
1778 ; all inlining apart from always-inline functions.
1780 Common Var(flag_no_inline,0) Init(0) Optimization
1781 Enable inlining of function declared \"inline\", disabling disables all inlining.
1783 finline-small-functions
1784 Common Var(flag_inline_small_functions) Optimization
1785 Integrate functions into their callers when code size is known not to grow.
1788 Common Var(flag_inline_functions) Optimization
1789 Integrate functions not declared \"inline\" into their callers when profitable.
1791 finline-functions-called-once
1792 Common Var(flag_inline_functions_called_once) Optimization
1793 Integrate functions only required by their single caller.
1796 Common RejectNegative Joined Alias(finline-limit=)
1799 Common RejectNegative Joined UInteger
1800 -finline-limit=<number> Limit the size of inlined functions to <number>.
1803 Common Var(flag_inline_atomics) Init(1) Optimization
1804 Inline __atomic operations when a lock free instruction sequence is available.
1807 Common RejectNegative Alias(fcf-protection=,full)
1810 Common Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
1811 -fcf-protection=[full|branch|return|none|check] Instrument functions with checks to verify jump/call/return control-flow transfer
1812 instructions have valid targets.
1815 Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
1818 Enum(cf_protection_level) String(full) Value(CF_FULL)
1821 Enum(cf_protection_level) String(branch) Value(CF_BRANCH)
1824 Enum(cf_protection_level) String(return) Value(CF_RETURN)
1827 Enum(cf_protection_level) String(check) Value(CF_CHECK)
1830 Enum(cf_protection_level) String(none) Value(CF_NONE)
1832 finstrument-functions
1833 Common Var(flag_instrument_function_entry_exit)
1834 Instrument function entry and exit with profiling calls.
1836 finstrument-functions-exclude-function-list=
1837 Common RejectNegative Joined
1838 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions.
1840 finstrument-functions-exclude-file-list=
1841 Common RejectNegative Joined
1842 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files.
1845 Common Var(flag_ipa_cp) Optimization
1846 Perform interprocedural constant propagation.
1849 Common Var(flag_ipa_cp_clone) Optimization
1850 Perform cloning to make Interprocedural constant propagation stronger.
1854 Does nothing. Preserved for backward compatibility.
1857 Common Var(flag_ipa_bit_cp) Optimization
1858 Perform interprocedural bitwise constant propagation.
1861 Common Var(flag_ipa_modref) Optimization
1862 Perform interprocedural modref analysis.
1865 Common Var(flag_ipa_profile) Init(0) Optimization
1866 Perform interprocedural profile propagation.
1869 Common Var(flag_ipa_pta) Init(0) Optimization
1870 Perform interprocedural points-to analysis.
1873 Common Var(flag_ipa_pure_const) Init(0) Optimization
1874 Discover pure and const functions.
1877 Common Var(flag_ipa_icf) Optimization
1878 Perform Identical Code Folding for functions and read-only variables.
1881 Common Var(flag_ipa_icf_functions) Optimization
1882 Perform Identical Code Folding for functions.
1885 Common Var(flag_ipa_icf_variables) Optimization
1886 Perform Identical Code Folding for variables.
1889 Common Var(flag_ipa_reference) Init(0) Optimization
1890 Discover read-only and non addressable static variables.
1892 fipa-reference-addressable
1893 Common Var(flag_ipa_reference_addressable) Init(0) Optimization
1894 Discover read-only, write-only and non-addressable static variables.
1896 fipa-stack-alignment
1897 Common Var(flag_ipa_stack_alignment) Init(1) Optimization
1898 Reduce stack alignment on call sites if possible.
1902 Does nothing. Preserved for backward compatibility.
1906 Does nothing. Preserved for backward compatibility.
1909 Common Var(flag_ipa_vrp) Optimization
1910 Perform IPA Value Range Propagation.
1913 Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
1914 -fira-algorithm=[CB|priority] Set the used IRA algorithm.
1917 Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1920 Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1923 Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1926 Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_ONE) Optimization
1927 -fira-region=[one|all|mixed] Set regions for IRA.
1930 Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1933 Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1936 Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1939 Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1942 Common Var(flag_ira_hoist_pressure) Init(1) Optimization
1943 Use IRA based register pressure calculation
1944 in RTL hoist optimizations.
1947 Common Var(flag_ira_loop_pressure) Optimization
1948 Use IRA based register pressure calculation
1949 in RTL loop optimizations.
1951 fira-share-save-slots
1952 Common Var(flag_ira_share_save_slots) Init(1) Optimization
1953 Share slots for saving different hard registers.
1955 fira-share-spill-slots
1956 Common Var(flag_ira_share_spill_slots) Init(1) Optimization
1957 Share stack slots for spilled pseudo-registers.
1960 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
1961 -fira-verbose=<number> Control IRA's level of diagnostic messages.
1964 Common Var(flag_ivopts) Init(1) Optimization
1965 Optimize induction variables on trees.
1968 Common Var(flag_jump_tables) Init(1) Optimization
1969 Use jump tables for sufficiently large switch statements.
1972 Common Var(flag_bit_tests) Init(1) Optimization
1973 Use bit tests for sufficiently large switch statements.
1975 fkeep-inline-functions
1976 Common Var(flag_keep_inline_functions)
1977 Generate code for functions even if they are fully inlined.
1979 fkeep-static-functions
1980 Common Var(flag_keep_static_functions)
1981 Generate code for static functions even if they are never called.
1984 Common Var(flag_keep_static_consts) Init(1)
1985 Emit static const variables even if they are not used.
1988 Common Var(flag_leading_underscore) Init(-1)
1989 Give external symbols a leading underscore.
1993 Does nothing. Preserved for backward compatibility.
1996 Common Var(flag_lra_remat) Optimization
1997 Do CFG-sensitive rematerialization in LRA.
2001 Enable link-time optimization.
2004 Common RejectNegative Joined Var(flag_lto)
2005 Link-time optimization with number of parallel jobs or jobserver.
2008 Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
2011 Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
2014 Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
2017 Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
2020 Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
2023 Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
2026 Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
2027 Specify the algorithm to partition symbols and vars at linktime.
2029 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
2030 flto-compression-level=
2031 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 19)
2032 -flto-compression-level=<number> Use zlib/zstd compression level <number> for IL.
2034 flto-odr-type-merging
2036 Does nothing. Preserved for backward compatibility.
2039 Common Var(flag_lto_report) Init(0)
2040 Report various link-time optimization statistics.
2043 Common Var(flag_lto_report_wpa) Init(0)
2044 Report various link-time optimization statistics for WPA only.
2047 Common Var(flag_errno_math) Init(1) Optimization SetByCombined
2048 Set errno after built-in math functions.
2051 Common Joined RejectNegative UInteger Var(flag_max_errors)
2052 -fmax-errors=<number> Maximum number of errors to report.
2055 Common Var(mem_report)
2056 Report on permanent memory allocation.
2059 Common Var(mem_report_wpa)
2060 Report on permanent memory allocation in WPA only.
2062 ; This will attempt to merge constant section constants, if 1 only
2063 ; string constants and constants from constant pool, if 2 also constant
2065 fmerge-all-constants
2066 Common Var(flag_merge_constants,2) Init(1)
2067 Attempt to merge identical constants and constant variables.
2070 Common Var(flag_merge_constants,1)
2071 Attempt to merge identical constants across compilation units.
2073 fmerge-debug-strings
2074 Common Var(flag_merge_debug_strings) Init(1)
2075 Attempt to merge identical debug strings across compilation units.
2078 Common RejectNegative Joined UInteger
2079 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping.
2082 Common Var(flag_modulo_sched) Optimization
2083 Perform SMS based modulo scheduling before the first scheduling pass.
2085 fmodulo-sched-allow-regmoves
2086 Common Var(flag_modulo_sched_allow_regmoves) Optimization
2087 Perform SMS based modulo scheduling with register moves allowed.
2089 fmove-loop-invariants
2090 Common Var(flag_move_loop_invariants) Optimization
2091 Move loop invariant computations out of loops.
2094 Common Var(flag_move_loop_stores) Optimization
2095 Move stores out of loops.
2098 Common Var(flag_dce) Init(1) Optimization
2099 Use the RTL dead code elimination pass.
2102 Common Var(flag_dse) Init(0) Optimization
2103 Use the RTL dead store elimination pass.
2105 freschedule-modulo-scheduled-loops
2106 Common Var(flag_resched_modulo_sched) Optimization
2107 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
2109 fnon-call-exceptions
2110 Common Var(flag_non_call_exceptions) Optimization
2111 Support synchronous non-call exceptions.
2114 Driver Joined MissingArgError(targets missing after %qs)
2117 Common Driver Joined MissingArgError(options or targets=options missing after %qs)
2118 -foffload-options=<targets>=<options> Specify options for the offloading targets.
2121 Common Joined RejectNegative Enum(offload_abi)
2122 -foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler.
2125 Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
2128 Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
2131 Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
2134 Common Var(flag_omit_frame_pointer) Optimization
2135 When possible do not generate stack frames.
2138 Common Var(flag_opt_info) Optimization
2139 Enable all optimization info dumps on stderr.
2142 Common Joined RejectNegative Var(common_deferred_options) Defer
2143 -fopt-info[-<type>=filename] Dump compiler optimization details.
2145 fsave-optimization-record
2146 Common Var(flag_save_optimization_record) Optimization
2147 Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
2149 foptimize-register-move
2151 Does nothing. Preserved for backward compatibility.
2153 foptimize-sibling-calls
2154 Common Var(flag_optimize_sibling_calls) Optimization
2155 Optimize sibling and tail recursive calls.
2158 Common Var(flag_partial_inlining) Optimization
2159 Perform partial inlining.
2162 Common Var(pre_ipa_mem_report)
2163 Report on memory allocation before interprocedural optimization.
2165 fpost-ipa-mem-report
2166 Common Var(post_ipa_mem_report)
2167 Report on memory allocation before interprocedural optimization.
2170 Common Var(flag_pack_struct) Optimization
2171 Pack structure members together without holes.
2174 Common RejectNegative Joined UInteger Optimization
2175 -fpack-struct=<number> Set initial maximum structure member alignment.
2178 Common Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
2179 Return small aggregates in memory, not registers.
2182 Common Var(flag_peel_loops) Optimization
2183 Perform loop peeling.
2186 Common Var(flag_no_peephole,0) Optimization
2187 Enable machine specific peephole optimizations.
2190 Common Var(flag_peephole2) Optimization
2191 Enable an RTL peephole pass before sched2.
2194 Common Var(flag_pic,2) Negative(fPIE) Init(-1)
2195 Generate position-independent code if possible (large mode).
2198 Common Var(flag_pie,2) Negative(fpic) Init(-1)
2199 Generate position-independent code for executables if possible (large mode).
2202 Common Var(flag_pic,1) Negative(fpie) Init(-1)
2203 Generate position-independent code if possible (small mode).
2206 Common Var(flag_pie,1) Negative(fPIC) Init(-1)
2207 Generate position-independent code for executables if possible (small mode).
2210 Common Var(flag_plt) Init(1) Optimization
2211 Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
2214 Common Joined RejectNegative Var(common_deferred_options) Defer
2215 Specify a plugin to load.
2218 Common Joined RejectNegative Var(common_deferred_options) Defer
2219 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>.
2221 fpredictive-commoning
2222 Common Var(flag_predictive_commoning) Optimization
2223 Run predictive commoning optimization.
2225 fprefetch-loop-arrays
2226 Common Var(flag_prefetch_loop_arrays) Init(-1) Optimization
2227 Generate prefetch instructions, if available, for arrays in loops.
2230 Common Var(profile_flag)
2231 Enable basic program profiling code.
2234 Common Var(profile_abs_path_flag)
2235 Generate absolute source path names for gcov.
2238 Common Var(profile_arc_flag)
2239 Insert arc-based program profiling code.
2242 Common Joined RejectNegative Var(profile_data_prefix)
2243 Set the top-level directory for storing the profile data.
2244 The default is 'pwd'.
2247 Common Joined RejectNegative Var(profile_note_location)
2248 Select the name for storing the profile note file.
2251 Common Var(flag_profile_correction)
2252 Enable correction of flow inconsistent profile data input.
2255 Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
2256 -fprofile-update=[single|atomic|prefer-atomic] Set the profile update method.
2258 fprofile-filter-files=
2259 Common Joined RejectNegative Var(flag_profile_filter_files)
2260 Instrument only functions from files whose name matches any of the regular expressions (separated by semi-colons).
2262 fprofile-exclude-files=
2263 Common Joined RejectNegative Var(flag_profile_exclude_files)
2264 Instrument only functions from files whose name does not match any of the regular expressions (separated by semi-colons).
2267 Name(profile_reproducibility) Type(enum profile_reproducibility) UnknownError(unknown profile reproducibility method %qs)
2270 Enum(profile_reproducibility) String(serial) Value(PROFILE_REPRODUCIBILITY_SERIAL)
2273 Enum(profile_reproducibility) String(parallel-runs) Value(PROFILE_REPRODUCIBILITY_PARALLEL_RUNS)
2276 Enum(profile_reproducibility) String(multithreaded) Value(PROFILE_REPRODUCIBILITY_MULTITHREADED)
2278 fprofile-reproducible=
2279 Common Joined RejectNegative Var(flag_profile_reproducible) Enum(profile_reproducibility) Init(PROFILE_REPRODUCIBILITY_SERIAL)
2280 -fprofile-reproducible=[serial|parallel-runs|multithreaded] Control level of reproducibility of profile gathered by -fprofile-generate.
2283 Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
2286 Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
2289 Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
2292 Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC)
2294 fprofile-prefix-path=
2295 Common Joined RejectNegative Var(profile_prefix_path)
2296 Remove prefix from absolute path before mangling name for -fprofile-generate= and -fprofile-use=.
2300 Enable common options for generating profile info for profile feedback directed optimizations.
2303 Common Joined RejectNegative
2304 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
2306 fprofile-info-section
2307 Common RejectNegative
2308 Register the profile information in the .gcov_info section instead of using a constructor/destructor.
2310 fprofile-info-section=
2311 Common Joined RejectNegative Var(profile_info_section)
2312 Register the profile information in the specified section instead of using a constructor/destructor.
2314 fprofile-partial-training
2315 Common Var(flag_profile_partial_training) Optimization
2316 Do not assume that functions never executed during the train run are cold.
2319 Common Var(flag_profile_use)
2320 Enable common options for performing profile feedback directed optimizations.
2323 Common Joined RejectNegative
2324 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
2327 Common Var(flag_profile_values)
2328 Insert code to profile values of expressions.
2331 Common Var(profile_report)
2332 Report on consistency of profile.
2334 fprofile-reorder-functions
2335 Common Var(flag_profile_reorder_functions) Optimization
2336 Enable function reordering that improves code placement.
2338 fpatchable-function-entry=
2339 Common Var(flag_patchable_function_entry) Joined Optimization
2340 Insert NOP instructions at each function entry.
2343 Common Var(common_deferred_options) Defer
2346 Common Joined RejectNegative Var(common_deferred_options) Defer
2347 -frandom-seed=<string> Make compile reproducible using <string>.
2349 ; This switch causes the command line that was used to create an
2350 ; object file to be recorded into the object file. The exact format
2351 ; of this recording is target and binary file format dependent.
2352 ; It is related to the -fverbose-asm switch, but that switch only
2353 ; records information in the assembler output file as comments, so
2354 ; they never reach the object file.
2355 frecord-gcc-switches
2356 Common Var(flag_record_gcc_switches)
2357 Record gcc command line switches in the object file.
2360 Common Var(flag_pcc_struct_return,0) Optimization
2361 Return small aggregates in registers.
2365 Does nothing. Preserved for backward compatibility.
2368 Common Var(flag_lifetime_dse,2) Init(2) Optimization
2369 Tell DSE that the storage for a C++ object is dead when the constructor
2370 starts and when the destructor finishes.
2373 Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
2376 Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
2379 Common Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization
2380 -flive-patching=[inline-only-static|inline-clone] Control IPA
2381 optimizations to provide a safe compilation for live-patching. At the same
2382 time, provides multiple-level control on the enabled IPA optimizations.
2385 Name(live_patching_level) Type(enum live_patching_level) UnknownError(unknown Live-Patching Level %qs)
2388 Enum(live_patching_level) String(inline-only-static) Value(LIVE_PATCHING_INLINE_ONLY_STATIC)
2391 Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE)
2394 Common Var(flag_allocation_dce) Init(1) Optimization
2395 Tell DCE to remove unused C++ allocations.
2397 flive-range-shrinkage
2398 Common Var(flag_live_range_shrinkage) Init(0) Optimization
2399 Relief of register pressure through live range shrinkage.
2402 Common Var(flag_rename_registers) Optimization EnabledBy(funroll-loops)
2403 Perform a register renaming optimization pass.
2406 Common Var(flag_schedule_fusion) Init(2) Optimization
2407 Perform a target dependent instruction fusion optimization pass.
2410 Common Var(flag_reorder_blocks) Optimization
2411 Reorder basic blocks to improve code placement.
2413 freorder-blocks-algorithm=
2414 Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
2415 -freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
2418 Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2421 Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2424 Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
2426 freorder-blocks-and-partition
2427 Common Var(flag_reorder_blocks_and_partition) Optimization
2428 Reorder basic blocks and partition into hot and cold sections.
2431 Common Var(flag_reorder_functions) Optimization
2432 Reorder functions to improve code placement.
2434 frerun-cse-after-loop
2435 Common Var(flag_rerun_cse_after_loop) Optimization
2436 Add a common subexpression elimination pass after loop optimizations.
2440 Does nothing. Preserved for backward compatibility.
2443 Common Var(flag_rounding_math) Optimization SetByCombined
2444 Disable optimizations that assume default FP rounding behavior.
2447 Common Var(flag_schedule_interblock) Init(1) Optimization
2448 Enable scheduling across basic blocks.
2451 Common Var(flag_sched_pressure) Init(0) Optimization
2452 Enable register pressure sensitive insn scheduling.
2455 Common Var(flag_schedule_speculative) Init(1) Optimization
2456 Allow speculative motion of non-loads.
2459 Common Var(flag_schedule_speculative_load) Optimization
2460 Allow speculative motion of some loads.
2462 fsched-spec-load-dangerous
2463 Common Var(flag_schedule_speculative_load_dangerous) Optimization
2464 Allow speculative motion of more loads.
2467 Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
2468 -fsched-verbose=<number> Set the verbosity level of the scheduler.
2470 fsched2-use-superblocks
2471 Common Var(flag_sched2_use_superblocks) Optimization
2472 If scheduling post reload, do superblock scheduling.
2476 Does nothing. Preserved for backward compatibility.
2479 Common Var(flag_schedule_insns) Optimization
2480 Reschedule instructions before register allocation.
2483 Common Var(flag_schedule_insns_after_reload) Optimization
2484 Reschedule instructions after register allocation.
2486 ; This flag should be on when a target implements non-trivial
2487 ; scheduling hooks, maybe saving some information for its own sake.
2488 ; On IA64, for example, this is used for correct bundling.
2489 fselective-scheduling
2490 Common Var(flag_selective_scheduling) Optimization
2491 Schedule instructions using selective scheduling algorithm.
2493 fselective-scheduling2
2494 Common Var(flag_selective_scheduling2) Optimization
2495 Run selective scheduling after reload.
2498 Common Undocumented Joined Var(flag_self_test)
2499 Run self-tests, using the given path to locate test files.
2501 fsel-sched-pipelining
2502 Common Var(flag_sel_sched_pipelining) Init(0) Optimization
2503 Perform software pipelining of inner loops during selective scheduling.
2505 fsel-sched-pipelining-outer-loops
2506 Common Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
2507 Perform software pipelining of outer loops during selective scheduling.
2509 fsel-sched-reschedule-pipelined
2510 Common Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
2511 Reschedule pipelined regions without pipelining.
2513 fsemantic-interposition
2514 Common Var(flag_semantic_interposition) Init(1)
2515 Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
2517 ; sched_stalled_insns means that insns can be moved prematurely from the queue
2518 ; of stalled insns into the ready list.
2519 fsched-stalled-insns
2520 Common Var(flag_sched_stalled_insns) Optimization UInteger
2521 Allow premature scheduling of queued insns.
2523 fsched-stalled-insns=
2524 Common RejectNegative Joined UInteger Optimization
2525 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled.
2527 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
2528 ; be examined for a dependency on a stalled insn that is candidate for
2529 ; premature removal from the queue of stalled insns into the ready list (has
2530 ; an effect only if the flag 'sched_stalled_insns' is set).
2531 fsched-stalled-insns-dep
2532 Common Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
2533 Set dependence distance checking in premature scheduling of queued insns.
2535 fsched-stalled-insns-dep=
2536 Common RejectNegative Joined UInteger Optimization
2537 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns.
2539 fsched-group-heuristic
2540 Common Var(flag_sched_group_heuristic) Init(1) Optimization
2541 Enable the group heuristic in the scheduler.
2543 fsched-critical-path-heuristic
2544 Common Var(flag_sched_critical_path_heuristic) Init(1) Optimization
2545 Enable the critical path heuristic in the scheduler.
2547 fsched-spec-insn-heuristic
2548 Common Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
2549 Enable the speculative instruction heuristic in the scheduler.
2551 fsched-rank-heuristic
2552 Common Var(flag_sched_rank_heuristic) Init(1) Optimization
2553 Enable the rank heuristic in the scheduler.
2555 fsched-last-insn-heuristic
2556 Common Var(flag_sched_last_insn_heuristic) Init(1) Optimization
2557 Enable the last instruction heuristic in the scheduler.
2559 fsched-dep-count-heuristic
2560 Common Var(flag_sched_dep_count_heuristic) Init(1) Optimization
2561 Enable the dependent count heuristic in the scheduler.
2564 Common Var(flag_section_anchors) Optimization
2565 Access data in the same section from shared anchor points.
2569 Does nothing. Preserved for backward compatibility.
2573 Does nothing. Preserved for backward compatibility.
2576 Common Var(flag_ree) Init(0) Optimization
2577 Turn on Redundant Extensions Elimination pass.
2580 Common Var(flag_show_column) Init(1)
2581 Show column numbers in diagnostics, when available. Default on.
2584 Common Var(flag_shrink_wrap) Optimization
2585 Emit function prologues only before parts of the function that need it,
2586 rather than at the top of the function.
2588 fshrink-wrap-separate
2589 Common Var(flag_shrink_wrap_separate) Init(1) Optimization
2590 Shrink-wrap parts of the prologue and epilogue separately.
2593 Common Var(flag_signaling_nans) Optimization SetByCombined
2594 Disable optimizations observable by IEEE signaling NaNs.
2597 Common Var(flag_signed_zeros) Init(1) Optimization SetByCombined
2598 Disable floating point optimizations that ignore the IEEE signedness of zero.
2600 fsingle-precision-constant
2601 Common Var(flag_single_precision_constant) Optimization
2602 Convert floating point constants to single precision constants.
2604 fsplit-ivs-in-unroller
2605 Common Var(flag_split_ivs_in_unroller) Init(1) Optimization
2606 Split lifetimes of induction variables when loops are unrolled.
2609 Common Var(flag_split_stack) Init(-1)
2610 Generate discontiguous stack frames.
2613 Common Var(flag_split_wide_types) Optimization
2614 Split wide types into independent registers.
2616 fsplit-wide-types-early
2617 Common Var(flag_split_wide_types_early) Optimization
2618 Split wide types into independent registers earlier.
2621 Common Var(flag_ssa_backprop) Init(1) Optimization
2622 Enable backward propagation of use properties at the SSA level.
2625 Common Var(flag_ssa_phiopt) Optimization
2626 Optimize conditional patterns using SSA PHI nodes.
2629 Common Var(flag_stdarg_opt) Init(1) Optimization
2630 Optimize amount of stdarg registers saved to stack at start of function.
2632 fvariable-expansion-in-unroller
2633 Common Var(flag_variable_expansion_in_unroller) Optimization
2634 Apply variable expansion when loops are unrolled.
2637 Common RejectNegative Joined Optimization
2638 -fstack-check=[no|generic|specific] Insert stack checking code into the program.
2641 Common Alias(fstack-check=, specific, no)
2642 Insert stack checking code into the program. Same as -fstack-check=specific.
2644 fstack-clash-protection
2645 Common Var(flag_stack_clash_protection) Optimization
2646 Insert code to probe each page of stack space as it is allocated to protect
2647 from stack-clash style attacks.
2650 Common Var(common_deferred_options) Defer
2652 fstack-limit-register=
2653 Common RejectNegative Joined Var(common_deferred_options) Defer
2654 -fstack-limit-register=<register> Trap if the stack goes past <register>.
2656 fstack-limit-symbol=
2657 Common RejectNegative Joined Var(common_deferred_options) Defer
2658 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.
2661 Common Var(flag_stack_protect, 1) Init(-1) Optimization
2662 Use propolice as a stack protection method.
2664 fstack-protector-all
2665 Common RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
2666 Use a stack protection method for every function.
2668 fstack-protector-strong
2669 Common RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
2670 Use a smart stack protection method for certain functions.
2672 fstack-protector-explicit
2673 Common RejectNegative Var(flag_stack_protect, 4) Optimization
2674 Use stack protection method only for functions with the stack_protect attribute.
2677 Common RejectNegative Var(flag_stack_usage)
2678 Output stack usage information on a per-function basis.
2682 Does nothing. Preserved for backward compatibility.
2684 ; Nonzero if we should do (language-dependent) alias analysis.
2685 ; Typically, this analysis will assume that expressions of certain
2686 ; types do not alias expressions of certain other types. Only used
2687 ; if alias analysis (in general) is enabled.
2689 Common Var(flag_strict_aliasing) Optimization
2690 Assume strict aliasing rules apply.
2694 Treat signed overflow as undefined. Negated as -fwrapv -fwrapv-pointer.
2697 Common Var(flag_sync_libcalls) Init(1)
2698 Implement __atomic operations via libcalls to legacy __sync functions.
2701 Common Var(flag_syntax_only)
2702 Check for syntax errors, then stop.
2705 Common Var(flag_test_coverage)
2706 Create data files needed by \"gcov\".
2709 Common Var(flag_thread_jumps) Optimization
2710 Perform jump threading optimizations.
2713 Common Var(time_report)
2714 Report the time taken by each compiler pass.
2716 ftime-report-details
2717 Common Var(time_report_details)
2718 Record times taken by sub-phases separately.
2721 Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
2722 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model.
2725 Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2728 Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2731 Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2734 Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2737 Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2740 Common Var(flag_toplevel_reorder) Init(2) Optimization
2741 Reorder top level functions, variables, and asms.
2744 Common Var(flag_tracer) Optimization
2745 Perform superblock formation via tail duplication.
2748 Common Var(flag_trampolines) Init(0)
2749 For targets that normally need trampolines for nested functions, always
2750 generate them instead of using descriptors.
2752 ; Zero means that floating-point math operations cannot generate a
2753 ; (user-visible) trap. This is the case, for example, in nonstop
2754 ; IEEE 754 arithmetic.
2756 Common Var(flag_trapping_math) Init(1) Optimization SetByCombined
2757 Assume floating-point operations can trap.
2760 Common Var(flag_trapv) Optimization
2761 Trap for signed overflow in addition, subtraction and multiplication.
2764 Common Var(flag_tree_ccp) Optimization
2765 Enable SSA-CCP optimization on trees.
2768 Common Var(flag_tree_bit_ccp) Optimization
2769 Enable SSA-BIT-CCP optimization on trees.
2773 Does nothing. Preserved for backward compatibility.
2776 Common Var(flag_tree_ch) Optimization
2777 Enable loop header copying on trees.
2779 ftree-coalesce-inlined-vars
2780 Common Ignore RejectNegative
2781 Does nothing. Preserved for backward compatibility.
2784 Common Var(flag_tree_coalesce_vars) Optimization
2785 Enable SSA coalescing of user variables.
2789 Does nothing. Preserved for backward compatibility.
2792 Common Var(flag_tree_copy_prop) Optimization
2793 Enable copy propagation on trees.
2795 ftree-store-copy-prop
2797 Does nothing. Preserved for backward compatibility.
2800 Common Var(flag_tree_cselim) Optimization
2801 Transform condition stores into unconditional ones.
2803 ftree-switch-conversion
2804 Common Var(flag_tree_switch_conversion) Optimization
2805 Perform conversions of switch initializations.
2808 Common Var(flag_tree_dce) Optimization
2809 Enable SSA dead code elimination optimization on trees.
2811 ftree-dominator-opts
2812 Common Var(flag_tree_dom) Optimization
2813 Enable dominator optimizations.
2816 Common Var(flag_tree_tail_merge) Optimization
2817 Enable tail merging on trees.
2820 Common Var(flag_tree_dse) Optimization
2821 Enable dead store elimination.
2824 Common Var(flag_tree_forwprop) Init(1) Optimization
2825 Enable forward propagation on trees.
2828 Common Var(flag_tree_fre) Optimization
2829 Enable Full Redundancy Elimination (FRE) on trees.
2832 Common Var(flag_optimize_strlen) Optimization
2833 Enable string length optimizations on trees.
2835 fisolate-erroneous-paths-dereference
2836 Common Var(flag_isolate_erroneous_paths_dereference) Optimization
2837 Detect paths that trigger erroneous or undefined behavior due to
2838 dereferencing a null pointer. Isolate those paths from the main control
2839 flow and turn the statement with erroneous or undefined behavior into a trap.
2841 fisolate-erroneous-paths-attribute
2842 Common Var(flag_isolate_erroneous_paths_attribute) Optimization
2843 Detect paths that trigger erroneous or undefined behavior due to a null value
2844 being used in a way forbidden by a returns_nonnull or nonnull
2845 attribute. Isolate those paths from the main control flow and turn the
2846 statement with erroneous or undefined behavior into a trap.
2848 ftree-loop-distribution
2849 Common Var(flag_tree_loop_distribution) Optimization
2850 Enable loop distribution on trees.
2852 ftree-loop-distribute-patterns
2853 Common Var(flag_tree_loop_distribute_patterns) Optimization
2854 Enable loop distribution for patterns transformed into a library call.
2857 Common Var(flag_tree_loop_im) Init(1) Optimization
2858 Enable loop invariant motion on trees.
2861 Common Alias(floop-nest-optimize)
2862 Enable loop nest transforms. Same as -floop-nest-optimize.
2865 Common Var(flag_tree_loop_ivcanon) Init(1) Optimization
2866 Create canonical induction variables in loops.
2869 Common Var(flag_tree_loop_optimize) Init(1) Optimization
2870 Enable loop optimizations on tree level.
2872 ftree-parallelize-loops=
2873 Common Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
2874 -ftree-parallelize-loops=<number> Enable automatic parallelization of loops.
2877 Common Var(flag_tree_phiprop) Init(1) Optimization
2878 Enable hoisting loads from conditional pointers.
2881 Common Var(flag_tree_pre) Optimization
2882 Enable SSA-PRE optimization on trees.
2885 Common Var(flag_tree_partial_pre) Optimization
2886 In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
2889 Common Var(flag_tree_pta) Optimization
2890 Perform function-local points-to analysis on trees.
2893 Common Var(flag_tree_reassoc) Init(1) Optimization
2894 Enable reassociation on tree level.
2898 Does nothing. Preserved for backward compatibility.
2901 Common Var(flag_tree_sink) Optimization
2902 Enable SSA code sinking on trees.
2905 Common Var(flag_tree_slsr) Optimization
2906 Perform straight-line strength reduction.
2909 Common Var(flag_tree_sra) Optimization
2910 Perform scalar replacement of aggregates.
2913 Common Var(flag_tree_ter) Optimization
2914 Replace temporary expressions in the SSA->normal pass.
2917 Common Var(flag_tree_live_range_split) Optimization
2918 Perform live range splitting during the SSA->normal pass.
2921 Common Var(flag_tree_vrp) Init(0) Optimization
2922 Perform Value Range Propagation on trees.
2925 Common Var(flag_split_paths) Init(0) Optimization
2926 Split paths leading to loop backedges.
2928 funconstrained-commons
2929 Common Var(flag_unconstrained_commons) Optimization
2930 Assume common declarations may be overridden with ones with a larger
2934 Common Var(flag_unit_at_a_time) Init(1)
2935 Compile whole compilation unit at a time.
2938 Common Var(flag_unroll_loops) Optimization EnabledBy(funroll-all-loops)
2939 Perform loop unrolling when iteration count is known.
2942 Common Var(flag_unroll_all_loops) Optimization
2943 Perform loop unrolling for all loops.
2945 funroll-completely-grow-size
2946 Undocumented Var(flag_cunroll_grow_size) Optimization
2947 ; Internal undocumented flag, allow size growth during complete unrolling
2949 ; Nonzero means that loop optimizer may assume that the induction variables
2950 ; that control loops do not overflow and that the loops with nontrivial
2951 ; exit condition are not infinite
2952 funsafe-loop-optimizations
2954 Does nothing. Preserved for backward compatibility.
2957 Common Var(flag_associative_math) SetByCombined Optimization
2958 Allow optimization for floating-point arithmetic which may change the
2959 result of the operation due to rounding.
2962 Common Var(flag_reciprocal_math) SetByCombined Optimization
2963 Same as -fassociative-math for expressions which include division.
2965 ; Nonzero means that unsafe floating-point math optimizations are allowed
2966 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
2967 ; are allowed to assume that their arguments and results are "normal"
2968 ; (e.g., nonnegative for SQRT).
2969 funsafe-math-optimizations
2970 Common Var(flag_unsafe_math_optimizations) Optimization SetByCombined
2971 Allow math optimizations that may violate IEEE or ISO standards.
2974 Common Var(flag_unswitch_loops) Optimization
2975 Perform loop unswitching.
2978 Common Var(flag_split_loops) Optimization
2979 Perform loop splitting.
2981 fversion-loops-for-strides
2982 Common Var(flag_version_loops_for_strides) Optimization
2983 Version loops based on whether indices have a stride of one.
2986 Common Var(flag_unwind_tables) Optimization
2987 Just generate unwind tables for exception handling.
2990 Common Driver Negative(fuse-ld=gold)
2991 Use the bfd linker instead of the default linker.
2994 Common Driver Negative(fuse-ld=bfd)
2995 Use the gold linker instead of the default linker.
2998 Common Driver Negative(fuse-ld=lld)
2999 Use the lld LLVM linker instead of the default linker.
3002 Common Undocumented Var(flag_use_linker_plugin)
3004 ; Positive if we should track variables, negative if we should run
3005 ; the var-tracking pass only to discard debug annotations, zero if
3006 ; we're not to run it.
3008 Common Var(flag_var_tracking) PerFunction EnabledBy(fvar-tracking-uninit)
3009 Perform variable tracking.
3011 ; Positive if we should track variables at assignments, negative if
3012 ; we should run the var-tracking pass only to discard debug
3014 fvar-tracking-assignments
3015 Common Var(flag_var_tracking_assignments) PerFunction
3016 Perform variable tracking by annotating assignments.
3018 ; Nonzero if we should toggle flag_var_tracking_assignments after
3019 ; processing options and computing its default. */
3020 fvar-tracking-assignments-toggle
3021 Common Var(flag_var_tracking_assignments_toggle) PerFunction
3022 Toggle -fvar-tracking-assignments.
3024 ; Positive if we should track uninitialized variables, negative if
3025 ; we should run the var-tracking pass only to discard debug
3027 fvar-tracking-uninit
3028 Common Var(flag_var_tracking_uninit) PerFunction
3029 Perform variable tracking and also tag variables that are uninitialized.
3031 ; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
3033 Common Var(flag_tree_vectorize) Optimization
3034 Enable vectorization on trees.
3036 ftree-vectorizer-verbose=
3037 Common Joined RejectNegative Ignore
3038 Does nothing. Preserved for backward compatibility.
3040 ftree-loop-vectorize
3041 Common Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
3042 Enable loop vectorization on trees.
3045 Common Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
3046 Enable basic block vectorization (SLP) on trees.
3049 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
3050 -fvect-cost-model=[unlimited|dynamic|cheap|very-cheap] Specifies the cost model for vectorization.
3053 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
3054 -fsimd-cost-model=[unlimited|dynamic|cheap|very-cheap] Specifies the vectorization cost model for code marked with a simd directive.
3057 Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
3060 Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
3063 Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
3066 Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
3069 Enum(vect_cost_model) String(very-cheap) Value(VECT_COST_MODEL_VERY_CHEAP)
3072 Common Alias(fvect-cost-model=,dynamic,unlimited)
3073 Enables the dynamic vectorizer cost model. Preserved for backward compatibility.
3075 ftree-vect-loop-version
3077 Does nothing. Preserved for backward compatibility.
3080 Common Var(flag_tree_scev_cprop) Init(1) Optimization
3081 Enable copy propagation of scalar-evolution information.
3083 ftrivial-auto-var-init=
3084 Common Joined RejectNegative Enum(auto_init_type) Var(flag_auto_var_init) Init(AUTO_INIT_UNINITIALIZED) Optimization
3085 -ftrivial-auto-var-init=[uninitialized|pattern|zero] Add initializations to automatic variables.
3088 Name(auto_init_type) Type(enum auto_init_type) UnknownError(unrecognized automatic variable initialization type %qs)
3091 Enum(auto_init_type) String(uninitialized) Value(AUTO_INIT_UNINITIALIZED)
3094 Enum(auto_init_type) String(pattern) Value(AUTO_INIT_PATTERN)
3097 Enum(auto_init_type) String(zero) Value(AUTO_INIT_ZERO)
3099 ; -fverbose-asm causes extra commentary information to be produced in
3100 ; the generated assembly code (to make it more readable). This option
3101 ; is generally only of use to those who actually need to read the
3102 ; generated assembly code (perhaps while debugging the compiler itself).
3103 ; -fno-verbose-asm, the default, causes the extra information
3104 ; to not be added and is useful when comparing two assembler files.
3106 Common Var(flag_verbose_asm)
3107 Add extra commentary to assembler output.
3110 Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
3111 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility.
3114 Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
3117 Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
3120 Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
3123 Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
3126 Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
3129 Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
3130 Validate vtable pointers before using them.
3133 Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
3136 Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
3139 Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
3142 Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
3145 Common Var(flag_vtv_counts)
3146 Output vtable verification counters.
3149 Common Var(flag_vtv_debug)
3150 Output vtable verification pointer sets information.
3153 Common Var(flag_value_profile_transformations) Optimization
3154 Use expression value profiles in optimizations.
3157 Common Var(flag_web) Optimization EnabledBy(funroll-loops)
3158 Construct webs and split unrelated uses of single variable.
3160 ftree-builtin-call-dce
3161 Common Var(flag_tree_builtin_call_dce) Init(0) Optimization
3162 Enable conditional dead code elimination for builtin calls.
3165 Common Var(flag_whole_program) Init(0)
3166 Perform whole program optimizations.
3169 Common Var(flag_wrapv_pointer) Optimization
3170 Assume pointer overflow wraps around.
3173 Common Var(flag_wrapv) Optimization
3174 Assume signed arithmetic overflow wraps around.
3176 fzero-initialized-in-bss
3177 Common Var(flag_zero_initialized_in_bss) Init(1)
3178 Put zero initialized data in the bss section.
3180 fzero-call-used-regs=
3181 Common RejectNegative Joined
3182 Clear call-used registers upon function return.
3185 Common Driver RejectNegative JoinedOrMissing
3186 Generate debug information in default format.
3189 Common Driver Var(dwarf2out_as_loc_support)
3190 Assume assembler support for (DWARF2+) .loc directives.
3193 Common Driver Var(dwarf2out_as_locview_support)
3194 Assume assembler support for view in (DWARF2+) .loc directives.
3197 Common Driver WarnRemoved
3198 Does nothing. Preserved for backward compatibility.
3201 Common Driver WarnRemoved
3202 Does nothing. Preserved for backward compatibility.
3205 Common Driver WarnRemoved
3206 Does nothing. Preserved for backward compatibility.
3209 Common Driver WarnRemoved
3210 Does nothing. Preserved for backward compatibility.
3213 Common Driver Var(debug_column_info,1) Init(1)
3214 Record DW_AT_decl_column and DW_AT_call_column in DWARF.
3216 ; The CTF generation process feeds off DWARF dies. This option implicitly
3217 ; updates the debug_info_level to DINFO_LEVEL_NORMAL.
3219 Common Driver RejectNegative JoinedOrMissing
3220 Generate CTF debug information at default level.
3223 Common Driver RejectNegative JoinedOrMissing
3224 Generate BTF debug information at default level.
3227 Common Driver JoinedOrMissing Negative(gdwarf-)
3228 Generate debug information in default version of DWARF format.
3231 Common Driver Joined UInteger Var(dwarf_version) Init(5) Negative(gstabs)
3232 Generate debug information in DWARF v2 (or later) format.
3235 Common Driver Var(dwarf_offset_size,4) Init(4) RejectNegative
3236 Use 32-bit DWARF format when emitting DWARF debug information.
3239 Common Driver Var(dwarf_offset_size,8) RejectNegative
3240 Use 64-bit DWARF format when emitting DWARF debug information.
3243 Common Driver JoinedOrMissing
3244 Generate debug information in default extended format.
3247 Common Driver Var(debug_inline_points)
3248 Generate extended entry point information for inlined functions.
3250 ginternal-reset-location-views
3251 Common Driver Var(debug_internal_reset_location_views) Init(2)
3252 Compute locview reset points based on insn length estimates.
3255 RejectNegative Joined Undocumented
3256 ; Catch the gno- prefix, so it doesn't backtrack to g<level>.
3259 Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
3260 Don't generate DWARF pubnames and pubtypes sections.
3263 Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
3264 Generate DWARF pubnames and pubtypes sections.
3267 Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
3268 Generate DWARF pubnames and pubtypes sections with GNU extensions.
3270 grecord-gcc-switches
3271 Common Driver Var(dwarf_record_gcc_switches) Init(1)
3272 Record gcc command line switches in DWARF DW_AT_producer.
3275 Common Driver Var(dwarf_split_debug_info) Init(0)
3276 Generate debug information in separate .dwo files.
3279 Common Driver JoinedOrMissing Negative(gstabs+)
3280 Generate debug information in STABS format.
3283 Common Driver JoinedOrMissing Negative(gvms)
3284 Generate debug information in extended STABS format.
3286 gstatement-frontiers
3287 Common Driver Var(debug_nonbind_markers_p)
3288 Emit progressive recommended breakpoint locations.
3291 Common Driver Var(dwarf_strict) Init(0)
3292 Don't emit DWARF additions beyond selected version.
3295 Common Driver Var(flag_describe_dies) Init(0)
3296 Add description attributes to some DWARF DIEs that have no name attribute.
3299 Common Driver Var(flag_gtoggle)
3300 Toggle debug information generation.
3302 gvariable-location-views
3303 Common Driver Var(debug_variable_location_views, 1)
3304 Augment variable location lists with progressive views.
3306 gvariable-location-views=incompat5
3307 Common Driver RejectNegative Var(debug_variable_location_views, -1) Init(2)
3310 Common Driver JoinedOrMissing Negative(gxcoff)
3311 Generate debug information in VMS format.
3314 Common Driver JoinedOrMissing Negative(gxcoff+)
3315 Generate debug information in XCOFF format.
3318 Common Driver JoinedOrMissing Negative(gdwarf)
3319 Generate debug information in extended XCOFF format.
3322 Name(compressed_debug_sections) Type(int)
3324 ; Since -gz= is completely handled in specs, the values aren't used and we
3325 ; assign arbitrary constants.
3327 Enum(compressed_debug_sections) String(none) Value(0)
3330 Enum(compressed_debug_sections) String(zlib) Value(1)
3333 Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
3337 Generate compressed debug sections.
3340 Common Driver RejectNegative Joined Enum(compressed_debug_sections)
3341 -gz=<format> Generate compressed debug sections in format <format>.
3344 Driver Joined Separate
3347 Common Joined Var(plugindir_string) Init(0)
3348 -iplugindir=<dir> Set <dir> to be the default plugin directory.
3351 Common Joined Separate RejectDriver Var(imultiarch) Init(0)
3352 -imultiarch <dir> Set <dir> to be the multiarch include subdirectory.
3355 Driver Joined Separate
3360 no-canonical-prefixes
3376 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
3377 -o <file> Place output into <file>.
3380 Common Var(profile_flag)
3381 Enable function profiling.
3384 Driver Var(pass_exit_codes)
3387 Common Alias(Wpedantic)
3390 Common Var(flag_pedantic_errors)
3391 Like -pedantic but issue them as errors.
3397 Driver Var(use_pipes)
3400 Driver JoinedOrMissing Var(print_file_name)
3402 print-libgcc-file-name
3405 print-multi-directory
3406 Driver Var(print_multi_directory)
3409 Driver Var(print_multi_lib)
3411 print-multi-os-directory
3412 Driver Var(print_multi_os_directory)
3415 Driver Var(print_multiarch)
3418 Driver JoinedOrMissing Var(print_prog_name)
3421 Driver Var(print_search_dirs)
3424 Driver Var(print_sysroot)
3426 print-sysroot-headers-suffix
3427 Driver Var(print_sysroot_headers_suffix)
3430 Common Var(quiet_flag) RejectDriver
3431 Do not display functions compiled or elapsed time.
3449 Driver Var(report_times)
3452 Driver JoinedOrMissing
3455 Driver Joined Separate
3459 ; C option, but driver must not handle as "-u ndef".
3462 Common Driver Var(verbose_flag)
3463 Enable verbose output.
3466 Common Var(version_flag) RejectDriver
3467 Display the compiler's version.
3470 Common Var(inhibit_warnings)
3474 Driver Separate Var(wrapper_string)
3477 Driver Joined Separate
3480 Driver RejectNegative Negative(static-pie)
3481 Create a shared library.
3487 Driver Separate Alias(specs=)
3500 ; Documented for Fortran, but always accepted by driver.
3507 ; Documented for Go, but always accepted by driver.
3528 Driver RejectNegative Negative(shared)
3529 Don't create a dynamically linked position independent executable.
3532 Driver RejectNegative Negative(no-pie)
3533 Create a dynamically linked position independent executable.
3536 Driver RejectNegative Negative(pie)
3537 Create a static position independent executable.
3540 Driver Joined Separate
3543 Common Var(flag_ipa_ra) Optimization
3544 Use caller save register across calls if possible.
3546 ; This comment is to ensure we retain the blank line above.