1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003-2022 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 three are really VEC(char_p,heap) *.
89 void *flag_instrument_functions_exclude_functions
92 void *flag_instrument_functions_exclude_files
95 void *flag_ignored_attributes
97 ; Generic structs (e.g. templates not explicitly specialized)
98 ; may not have a compilation unit associated with them, and so
99 ; may need to be treated differently from ordinary structs.
101 ; Structs only handled by reference (indirectly), will also usually
102 ; not need as much debugging information.
105 enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
108 enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
110 ; True if we should exit after parsing options.
112 bool exit_after_options
114 ; Type(s) of debugging information we are producing (if any). See
115 ; flag-types.h for the definitions of the different possible types of
116 ; debugging information.
118 uint32_t write_symbols = NO_DEBUG
120 ; Level of debugging information we are producing. See flag-types.h
121 ; for the definitions of the different possible levels.
123 enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
125 ; Nonzero means use GNU-only extensions in the generated symbolic
126 ; debugging information. Currently, this only has an effect when
127 ; write_symbols is set to DBX_DEBUG or XCOFF_DEBUG.
129 bool use_gnu_debug_info_extensions
131 ; Level of CTF debugging information we are producing. See flag-types.h
132 ; for the definitions of the different possible levels.
134 enum ctf_debug_info_levels ctf_debug_info_level = CTFINFO_LEVEL_NONE
136 ; Original value of maximum field alignment in bytes, specified via
137 ; -fpack-struct=<value>.
139 unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
141 ; Type of stack check.
143 enum stack_check_type flag_stack_check = NO_STACK_CHECK
145 ; True if stack usage information needs to be computed.
147 bool flag_stack_usage_info = false
149 ; -dA causes debug commentary information to be produced in
150 ; the generated assembly code (to make it more readable). This option
151 ; is generally only of use to those who actually need to read the
152 ; generated assembly code (perhaps while debugging the compiler itself).
153 ; Currently, this switch is only used by dwarf2out.cc; however, it is intended
154 ; to be a catchall for printing debug information in the assembler file.
158 ; Balance between GNAT encodings and standard DWARF to emit.
160 enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT
162 ; -dP causes the rtl to be emitted as a comment in assembly.
164 int flag_dump_rtl_in_asm
166 ; Whether -da was passed (used only in handle_common_deferred_options).
168 bool flag_dump_all_passed
170 ; Other flags saying which kinds of debugging dump have been requested.
173 int rtl_dump_and_exit
176 int flag_print_asm_name
178 ; Name of top-level original source file (what was input to cpp).
179 ; This comes from the #-command at the beginning of the actual input.
180 ; If there isn't any there, then this is the cc1 input file name.
182 const char *main_input_filename
184 ; Pointer to base name in main_input_filename, with directories and a
185 ; single final extension removed, and the length of this base
189 const char *main_input_basename
192 int main_input_baselength
194 ; The base name used for auxiliary output files.
195 ; dump_base_name minus dump_base_ext.
198 const char *aux_base_name
200 ; Which options have been printed by --help.
204 ; Which enums have been printed by --help. 0 = not printed, no
205 ; relevant options seen, 1 = relevant option seen, not yet printed, 2
208 char *help_enum_printed
210 ; The number of columns for --help output.
212 unsigned int help_columns
214 ; Whether this options structure has been through finish_options
216 bool flag_opts_finished
218 ; What the sanitizer should instrument
220 unsigned int flag_sanitize
222 ; What sanitizers should recover from errors
224 unsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS | SANITIZE_KERNEL_HWADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN)
226 ; What sanitizers should use __builtin_trap () instead of runtime diagnostics
228 unsigned int flag_sanitize_trap
230 ; Flag whether a prefix has been added to dump_base_name
232 bool dump_base_name_prefixed = false
234 ; What subset of registers should be zeroed on function return
236 unsigned int flag_zero_call_used_regs
248 Common Driver Joined Undocumented
249 Provide bash completion for options starting with provided string.
252 Driver Alias(coverage)
258 Common Separate Alias(d)
261 Common Joined Alias(d)
264 Driver Common Separate Alias(dumpbase)
267 Driver Common Separate Alias(dumpbase-ext)
270 Driver Common Separate Alias(dumpdir)
273 Driver Separate Alias(e)
276 Driver Joined Alias(e)
279 Common Warning Alias(Wextra)
282 Driver Separate Alias(Xassembler)
285 Driver JoinedOrMissing Alias(Xassembler)
288 Driver Separate Alias(Xlinker)
291 Driver JoinedOrMissing Alias(Xlinker)
294 Driver Separate Alias(u)
297 Driver Joined Alias(u)
300 Common Driver Var(help_flag)
301 Display this information.
305 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params.
308 Driver Separate Alias(x)
311 Driver Joined Alias(x)
314 Driver Separate Alias(L)
317 Driver Joined Alias(L)
319 -no-canonical-prefixes
320 Driver Alias(no-canonical-prefixes)
322 -no-standard-libraries
323 Driver Alias(nostdlib)
326 Driver Var(no_sysroot_suffix)
335 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
338 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
341 Driver Alias(pass-exit-codes)
344 Common Alias(Wpedantic)
347 Common Alias(pedantic-errors)
353 Driver Alias(static-pie)
359 Driver Separate Alias(B)
362 Driver JoinedOrMissing Alias(B)
368 Driver Separate Alias(print-file-name=)
371 Driver JoinedOrMissing Alias(print-file-name=)
373 -print-libgcc-file-name
374 Driver Alias(print-libgcc-file-name)
376 -print-multi-directory
377 Driver Alias(print-multi-directory)
380 Driver Alias(print-multi-lib)
382 -print-multi-os-directory
383 Driver Alias(print-multi-os-directory)
386 Driver Alias(print-multiarch)
389 Driver Separate Alias(print-prog-name=)
392 Driver JoinedOrMissing Alias(print-prog-name=)
395 Driver Alias(print-search-dirs)
398 Driver Alias(print-sysroot)
400 -print-sysroot-headers-suffix
401 Driver Alias(print-sysroot-headers-suffix)
407 Driver Alias(save-temps)
413 Driver Separate Alias(specs=)
416 Driver Joined Alias(specs=)
422 Driver Alias(symbolic)
426 Display target specific command line options (including assembler and linker options).
434 ;; The driver used to convert options such as --help into forms such
435 ;; as -fhelp; the following four entries are for compatibility with
436 ;; any direct uses of those (undocumented) -f forms
438 Common Driver Alias(-help)
441 Common Driver Joined Alias(-help=)
444 Common Driver Alias(-target-help)
447 Common Driver Alias(-version)
450 Driver Separate Alias(-sysroot=)
453 Driver JoinedOrMissing
459 Driver Joined Separate
465 Driver Joined Separate
471 Common JoinedOrMissing Optimization
472 -O<number> Set optimization level to <number>.
476 Optimize for space rather than speed.
480 Optimize for speed disregarding exact standards compliance.
484 Optimize for debugging experience rather than speed or size.
488 Optimize for space aggressively rather than speed.
500 Driver Joined Separate
506 Driver Joined Separate
527 Common RejectNegative Warning Alias(Wextra)
528 This switch is deprecated; use -Wextra instead.
531 Driver JoinedOrMissing RejectNegative
534 Driver JoinedOrMissing RejectNegative
537 Driver JoinedOrMissing RejectNegative
540 Common Var(warn_aggregate_return) Warning
541 Warn about returning structures, unions or arrays.
543 Waggressive-loop-optimizations
544 Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
545 Warn if a loop with constant number of iterations triggers undefined behavior.
548 Common Var(warn_array_bounds) Warning
549 Warn if an array is accessed out of bounds.
552 Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2)
553 Warn if an array is accessed out of bounds.
556 Common Var(warn_use_after_free) Warning
557 Warn for uses of pointers to deallocated storage.
560 Common Joined RejectNegative UInteger Var(warn_use_after_free) Warning IntegerRange(0, 3)
561 Warn for uses of pointers to deallocated storage.
564 Common Var(warn_attributes) Init(1) Warning
565 Warn about inappropriate attribute usage.
569 Do not warn about specified attributes.
572 Common Alias(Wattribute_alias=, 1, 0) Warning
573 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
576 Common Joined RejectNegative UInteger Var(warn_attribute_alias) Init(1) Warning IntegerRange(0, 2)
577 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
580 Common Var(warn_cannot_profile) Init(1) Warning
581 Warn when profiling instrumentation was requested, but could not be applied to
585 Common Var(warn_cast_align) Warning
586 Warn about pointer casts which increase alignment.
589 Common Var(warn_cast_align,2) Warning
590 Warn about pointer casts which increase alignment.
593 Common Var(warn_cpp) Init(1) Warning
594 Warn when a #warning directive is encountered.
597 Common Var(warn_attribute_warning) Init(1) Warning
598 Warn about uses of __attribute__((warning)) declarations.
601 Common Var(warn_deprecated) Init(1) Warning
602 Warn if a deprecated compiler feature, class, method, or field is used.
604 Wdeprecated-declarations
605 Common Var(warn_deprecated_decl) Init(1) Warning
606 Warn about uses of __attribute__((deprecated)) declarations.
608 Wdisabled-optimization
609 Common Var(warn_disabled_optimization) Warning
610 Warn when an optimization pass is disabled.
613 Common Var(warnings_are_errors)
614 Treat all warnings as errors.
618 Treat specified warning as error.
621 Common Var(extra_warnings) Warning
622 Print extra (possibly unwanted) warnings.
625 Common Var(flag_fatal_errors)
626 Exit on the first error occurred.
629 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_frame_larger_than_size) Init(HOST_WIDE_INT_MAX)
630 -Wframe-larger-than=<byte-size> Warn if a function's stack frame requires in excess of <byte-size>.
632 Wno-frame-larger-than
633 Common Alias(Wframe-larger-than=,18446744073709551615EiB,none) Warning
634 Disable -Wframe-larger-than= warning. Equivalent to -Wframe-larger-than=<SIZE_MAX> or larger.
637 Common Var(warn_free_nonheap_object) Init(1) Warning
638 Warn when attempting to free a non-heap object.
641 Common Ignore Warning
642 Does nothing. Preserved for backward compatibility.
644 Wimplicit-fallthrough
645 Common Alias(Wimplicit-fallthrough=,3,0) Warning
647 Wimplicit-fallthrough=
648 Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5)
649 Warn when a switch case falls through.
652 Var(warn_infinite_recursion) Warning
653 Warn for infinitely recursive calls.
656 Common Var(warn_inline) Warning Optimization
657 Warn when an inlined function cannot be inlined.
659 Winvalid-memory-model
660 Common Var(warn_invalid_memory_model) Init(1) Warning
661 Warn when an atomic memory model parameter is known to be outside the valid range.
664 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
667 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_larger_than_size) Init(HOST_WIDE_INT_MAX)
668 -Wlarger-than=<byte-size> Warn if an object's size exceeds <byte-size>.
671 Common Alias(Wlarger-than=,18446744073709551615EiB,none) Warning
672 Disable -Wlarger-than= warning. Equivalent to -Wlarger-than=<SIZE_MAX> or larger.
675 Var(warn_nonnull_compare) Warning
676 Warn if comparing pointer parameter with nonnull attribute with NULL.
679 Common Var(warn_null_dereference) Warning
680 Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
682 Wunsafe-loop-optimizations
683 Common Ignore Warning
684 Does nothing. Preserved for backward compatibility.
687 Common Warning Alias(Wsuggest-attribute=noreturn)
690 Common Var(warn_odr_violations) Init(1) Warning
691 Warn about some C++ One Definition Rule violations during link time optimization.
694 Common Var(warn_overflow) Init(1) Warning
695 Warn about overflow in arithmetic expressions.
698 Common Var(warn_lto_type_mismatch) Init(1) Warning
699 During link time optimization warn about mismatched types of global declarations.
702 Common Var(warn_packed) Warning
703 Warn when the packed attribute has no effect on struct layout.
706 Common Var(warn_padded) Warning
707 Warn when padding is required to align structure members.
710 Common Var(pedantic) Init(0) Warning
711 Issue warnings needed for strict compliance to the standard.
714 Common Var(warn_return_local_addr) Init(1) Warning
715 Warn about returning a pointer/reference to a local or temporary variable.
718 Common Var(warn_shadow) Warning
719 Warn when one variable shadows another. Same as -Wshadow=global.
722 Common Warning Alias(Wshadow)
723 Warn when one variable shadows another (globally).
726 Common Var(warn_shadow_local) Warning EnabledBy(Wshadow)
727 Warn when one local variable shadows another local variable or parameter.
730 Common Warning Undocumented Alias(Wshadow=local)
732 Wshadow=compatible-local
733 Common Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local)
734 Warn when one local variable shadows another local variable or parameter of compatible type.
736 Wshadow-compatible-local
737 Common Warning Undocumented Alias(Wshadow=compatible-local)
740 Common Var(warn_stack_protect) Warning
741 Warn when not issuing stack smashing protection for some reason.
744 Common Joined RejectNegative Host_Wide_Int ByteSize Var(warn_stack_usage) Warning Init(HOST_WIDE_INT_MAX)
745 -Wstack-usage=<byte-size> Warn if stack usage might exceed <byte-size>.
748 Common Alias(Wstack-usage=,18446744073709551615EiB,none) Warning
749 Disable Wstack-usage= warning. Equivalent to Wstack-usage=<SIZE_MAX> or larger.
753 Warn about code which might break strict aliasing rules.
756 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
757 Warn about code which might break strict aliasing rules.
761 Warn about optimizations that assume that signed overflow is undefined.
764 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
765 Warn about optimizations that assume that signed overflow is undefined.
767 Wsuggest-attribute=cold
768 Common Var(warn_suggest_attribute_cold) Warning
769 Warn about functions which might be candidates for __attribute__((cold)).
771 Wsuggest-attribute=const
772 Common Var(warn_suggest_attribute_const) Warning
773 Warn about functions which might be candidates for __attribute__((const)).
775 Wsuggest-attribute=pure
776 Common Var(warn_suggest_attribute_pure) Warning
777 Warn about functions which might be candidates for __attribute__((pure)).
779 Wsuggest-attribute=noreturn
780 Common Var(warn_suggest_attribute_noreturn) Warning
781 Warn about functions which might be candidates for __attribute__((noreturn)).
783 Wsuggest-attribute=malloc
784 Common Var(warn_suggest_attribute_malloc) Warning
785 Warn about functions which might be candidates for __attribute__((malloc)).
788 Common Var(warn_suggest_final_types) Warning
789 Warn about C++ polymorphic types where adding final keyword would improve code quality.
791 Wsuggest-final-methods
792 Common Var(warn_suggest_final_methods) Warning
793 Warn about C++ virtual methods where adding final keyword would improve code quality.
796 Common Var(warn_switch_unreachable) Warning Init(1)
797 Warn about statements between switch's controlling expression and the first
801 Common Var(warn_system_headers) Warning
802 Do not suppress warnings from system headers.
805 Common Var(warn_trampolines) Warning
806 Warn whenever a trampoline is generated.
808 Wtrivial-auto-var-init
809 Common Var(warn_trivial_auto_var_init) Warning Init(0)
810 Warn about cases where -ftrivial-auto-var-init cannot initialize an auto variable.
813 Common Var(warn_type_limits) Warning EnabledBy(Wextra)
814 Warn if a comparison is always true or always false due to the limited range of the data type.
817 Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
818 Warn about uninitialized automatic variables.
821 Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
822 Warn about maybe uninitialized automatic variables.
825 Common Ignore Warning
826 Does nothing. Preserved for backward compatibility.
829 Common Var(warn_unused) Init(0) Warning
830 Enable all -Wunused- warnings.
832 Wunused-but-set-parameter
833 Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
834 Warn when a function parameter is only set, otherwise unused.
836 Wunused-but-set-variable
837 Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
838 Warn when a variable is only set, otherwise unused.
841 Common Var(warn_unused_function) Warning EnabledBy(Wunused)
842 Warn when a function is unused.
845 Common Var(warn_unused_label) Warning EnabledBy(Wunused)
846 Warn when a label is unused.
849 Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
850 Warn when a function parameter is unused.
853 Common Var(warn_unused_value) Warning EnabledBy(Wunused)
854 Warn when an expression value is unused.
857 Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
858 Warn when a variable is unused.
861 Common Var(warn_coverage_mismatch) Init(1) Warning
862 Warn in case profiles in -fprofile-use do not match.
864 Wcoverage-invalid-line-number
865 Common Var(warn_coverage_invalid_linenum) Init(1) Warning
866 Warn in case a function ends earlier than it begins due to an invalid linenum macros.
869 Common Var(warn_missing_profile) Init(1) Warning
870 Warn in case profiles in -fprofile-use do not exist.
872 Wvector-operation-performance
873 Common Var(warn_vector_operation_performance) Warning
874 Warn when a vector operation is compiled outside the SIMD.
877 Common Var(warn_tsan) Init(1) Warning
878 Warn about unsupported features in ThreadSanitizer.
893 Common Separate Var(aux_info_file_name)
894 -aux-info <file> Emit declaration information into <file>.
897 Common Joined Alias(aux-info)
907 -d<letters> Enable dumps from specific passes of the compiler.
910 Driver Common Separate Var(dump_base_name)
911 -dumpbase <file> Set the file basename to be used for dumps.
914 Driver Common Separate Var(dump_base_ext)
915 -dumpbase-ext .<ext> Drop a trailing .<ext> from the dump basename to name auxiliary output files.
918 Driver Common Separate Var(dump_dir_name)
919 -dumpdir <dir> Set the directory name to be used for dumps.
934 Driver Joined Separate
936 ; This option has historically been passed down to the linker by an
937 ; accident of a %{e*} spec, so ensure it continues to be passed down
938 ; as a single option. The supported option for this purpose is
939 ; -rdynamic. See PR 47390.
943 ; The version of the C++ ABI in use. The following values are allowed:
945 ; 0: The version of the ABI believed most conformant with the C++ ABI
946 ; specification. This ABI may change as bugs are discovered and fixed.
947 ; Therefore, 0 will not necessarily indicate the same ABI in different
950 ; 1: The version of the ABI first used in G++ 3.2. No longer selectable.
952 ; 2: The version of the ABI first used in G++ 3.4, and the default
955 ; 3: The version of the ABI that fixes the missing underscore
956 ; in template non-type arguments of pointer type.
958 ; 4: The version of the ABI that introduces unambiguous mangling of
959 ; vector types. First selectable in G++ 4.5.
961 ; 5: The version of the ABI that ignores attribute const/noreturn
962 ; in function pointer mangling, and corrects mangling of decltype and
963 ; function parameters used in other parameters and the return type.
964 ; First selectable in G++ 4.6.
966 ; 6: The version of the ABI that doesn't promote scoped enums to int and
967 ; changes the mangling of template argument packs, const/static_cast,
968 ; prefix ++ and --, and a class scope function used as a template
970 ; First selectable in G++ 4.7.
972 ; 7: The version of the ABI that treats nullptr_t as a builtin type and
973 ; corrects the mangling of lambdas in default argument scope.
974 ; First selectable in G++ 4.8.
976 ; 8: The version of the ABI that corrects the substitution behavior of
977 ; function types with function-cv-qualifiers.
978 ; First selectable in G++ 4.9 and default in G++ 5.
980 ; 9: The version of the ABI that corrects the alignment of nullptr_t.
981 ; First selectable and default in G++ 5.2.
983 ; 10: The version of the ABI that mangles attributes that affect type
984 ; identity, such as ia32 calling convention attributes (stdcall, etc.)
985 ; Default in G++ 6 (set in c_common_post_options).
987 ; 11: The version of the ABI that corrects mangling of sizeof... expressions
988 ; and introduces new inheriting constructor handling.
991 ; 12: Corrects the calling convention for classes with only deleted copy/move
992 ; constructors and changes passing/returning of empty records.
993 ; Default in G++ 8.1.
995 ; 13: Fixes the accidental change in 12 to the calling convention for classes
996 ; with deleted copy constructor and trivial move constructor.
997 ; Default in G++ 8.2.
999 ; 14: Corrects the mangling of nullptr expression.
1000 ; Default in G++ 10.
1002 ; 15: Corrects G++ 10 ABI tag regression [PR98481].
1003 ; Available, but not default, in G++ 10.3.
1005 ; 16: Changes the mangling of __alignof__ to be distinct from that of alignof.
1006 ; Adds missing 'on' in mangling of operator names in some cases.
1007 ; Default in G++ 11.
1009 ; 17: Fixes layout of classes that inherit from aggregate classes with default
1010 ; member initializers in C++14 and up.
1011 ; Default in G++ 12.
1013 ; Additional positive integers will be assigned as new versions of
1014 ; the ABI become the default version of the ABI.
1016 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
1017 The version of the C++ ABI in use.
1019 faggressive-loop-optimizations
1020 Common Var(flag_aggressive_loop_optimizations) Optimization Init(1)
1021 Aggressively optimize loops using language constraints.
1024 Common Var(flag_align_functions) Optimization
1025 Align the start of functions.
1028 Common RejectNegative Joined Var(str_align_functions) Optimization
1030 flimit-function-alignment
1031 Common Var(flag_limit_function_alignment) Optimization Init(0)
1034 Common Var(flag_align_jumps) Optimization
1035 Align labels which are only reached by jumping.
1038 Common RejectNegative Joined Var(str_align_jumps) Optimization
1041 Common Var(flag_align_labels) Optimization
1045 Common RejectNegative Joined Var(str_align_labels) Optimization
1048 Common Var(flag_align_loops) Optimization
1049 Align the start of loops.
1052 Common RejectNegative Joined Var(str_align_loops) Optimization
1054 fallow-store-data-races
1055 Common Var(flag_store_data_races) Optimization
1056 Allow the compiler to introduce new data races on stores.
1059 Common Var(flag_analyzer)
1060 Enable static analysis pass.
1064 Does nothing. Preserved for backward compatibility.
1068 Does nothing. Preserved for backward compatibility.
1070 fargument-noalias-global
1072 Does nothing. Preserved for backward compatibility.
1074 fargument-noalias-anything
1076 Does nothing. Preserved for backward compatibility.
1079 Common Driver Joined
1080 Select what to sanitize.
1083 Common Joined Enum(sanitize_coverage) Var(flag_sanitize_coverage) EnumBitSet
1084 Select type of coverage sanitization.
1087 Name(sanitize_coverage) Type(int)
1090 Enum(sanitize_coverage) String(trace-pc) Value(SANITIZE_COV_TRACE_PC)
1093 Enum(sanitize_coverage) String(trace-cmp) Value(SANITIZE_COV_TRACE_CMP)
1095 fasan-shadow-offset=
1096 Common Joined RejectNegative Var(common_deferred_options) Defer
1097 -fasan-shadow-offset=<number> Use custom shadow memory offset.
1100 Common Joined RejectNegative Var(common_deferred_options) Defer
1101 -fsanitize-sections=<sec1,sec2,...> Sanitize global variables
1102 in user-defined sections.
1106 After diagnosing undefined behavior attempt to continue execution.
1110 This switch is deprecated; use -fsanitize-recover= instead.
1113 Common Driver Joined
1114 Use traps instead of diagnostics of undefined behavior sanitizers.
1119 fsanitize-address-use-after-scope
1120 Common Driver Var(flag_sanitize_address_use_after_scope) Init(0)
1122 fsanitize-undefined-trap-on-error
1123 Common Driver Alias(fsanitize-trap)
1124 This switch is deprecated; use -fsanitize-trap= instead.
1126 fasynchronous-unwind-tables
1127 Common Var(flag_asynchronous_unwind_tables) Optimization
1128 Generate unwind tables that are exact at each instruction boundary.
1131 Common Var(flag_auto_inc_dec) Init(1) Optimization
1132 Generate auto-inc/dec instructions.
1135 Common Var(flag_auto_profile)
1136 Use sample profile information for call graph node weights. The default
1137 profile file is fbdata.afdo in 'pwd'.
1140 Common Joined RejectNegative Var(auto_profile_file)
1141 Use sample profile information for call graph node weights. The profile
1142 file is specified in the argument.
1144 ; -fcheck-bounds causes gcc to generate array bounds checks.
1145 ; For C, C++ and ObjC: defaults off.
1146 ; For Java: defaults to on.
1147 ; For Fortran: defaults to off.
1149 Common Var(flag_bounds_check)
1150 Generate code to check bounds before indexing arrays.
1153 Common Var(flag_branch_on_count_reg) Optimization
1154 Replace add, compare, branch with branch on count register.
1156 fbranch-probabilities
1157 Common Var(flag_branch_probabilities) Optimization
1158 Use profiling information for branch probabilities.
1160 fbranch-target-load-optimize
1162 Does nothing. Preserved for backward compatibility.
1164 fbranch-target-load-optimize2
1166 Does nothing. Preserved for backward compatibility.
1170 Does nothing. Preserved for backward compatibility.
1173 Common RejectNegative Var(flag_callgraph_info) Init(NO_CALLGRAPH_INFO);
1174 Output callgraph information on a per-file basis.
1177 Common RejectNegative Joined
1178 Output callgraph information on a per-file basis with decorations.
1181 Common Joined RejectNegative Var(common_deferred_options) Defer
1182 -fcall-saved-<register> Mark <register> as being preserved across functions.
1185 Common Joined RejectNegative Var(common_deferred_options) Defer
1186 -fcall-used-<register> Mark <register> as being corrupted by function calls.
1188 ; Nonzero for -fcaller-saves: allocate values in regs that need to
1189 ; be saved across function calls, if that produces overall better code.
1190 ; Optional now, so people can test it.
1192 Common Var(flag_caller_saves) Optimization
1193 Save registers around function calls.
1197 This switch is deprecated; do not use.
1200 Common Var(flag_check_new)
1201 Check the return value of new in C++.
1204 Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0)
1205 Perform internal consistency checkings.
1208 Common Joined RejectNegative UInteger Var(flag_checking)
1209 Perform internal consistency checkings.
1212 Common Var(flag_code_hoisting) Optimization
1213 Enable code hoisting.
1215 fcombine-stack-adjustments
1216 Common Var(flag_combine_stack_adjustments) Optimization
1217 Looks for opportunities to reduce stack adjustments and stack references.
1220 Common Var(flag_no_common,0) Init(1)
1221 Put uninitialized globals in the common section.
1225 ; Converted by the driver to -fcompare-debug= options.
1228 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
1229 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump.
1231 fcompare-debug-second
1232 Common Driver RejectNegative Var(flag_compare_debug)
1233 Run only the second compilation of -fcompare-debug.
1236 Common Var(flag_compare_elim_after_reload) Optimization
1237 Perform comparison elimination after register allocation has finished.
1240 Common Var(flag_conserve_stack) Optimization
1241 Do not perform optimizations increasing noticeably stack usage.
1244 Common Var(flag_cprop_registers) Optimization
1245 Perform a register copy-propagation optimization pass.
1248 Common Var(flag_crossjumping) Optimization
1249 Perform cross-jumping optimization.
1252 Common Var(flag_cse_follow_jumps) Optimization
1253 When running CSE, follow jumps to their targets.
1257 Does nothing. Preserved for backward compatibility.
1260 Common Var(flag_cx_limited_range) Optimization SetByCombined
1261 Omit range reduction step when performing complex division.
1264 Common Var(flag_cx_fortran_rules) Optimization
1265 Complex multiplication and division follow Fortran rules.
1268 Common Var(flag_data_sections)
1269 Place data items into their own section.
1272 Common Var(flag_dbg_cnt_list)
1273 List all available debugging counters with their limits and counts.
1276 Common RejectNegative Joined Var(common_deferred_options) Defer
1277 -fdbg-cnt=<counter>[:<lower_limit1>-]<upper_limit1>[:<lower_limit2>-<upper_limit2>:...][,<counter>:...] Set the debug counter limit.
1280 Common Joined RejectNegative Var(common_deferred_options) Defer
1281 -fdebug-prefix-map=<old>=<new> Map one directory name to another in debug information.
1284 Common Joined RejectNegative Var(common_deferred_options) Defer
1285 -ffile-prefix-map=<old>=<new> Map one directory name to another in compilation result.
1287 fdebug-types-section
1288 Common Var(flag_debug_types_section) Init(0)
1289 Output .debug_types section when using DWARF v4 debuginfo.
1291 ; Nonzero for -fdefer-pop: don't pop args after each function call
1292 ; instead save them up to pop many calls' args with one insns.
1294 Common Var(flag_defer_pop) Optimization
1295 Defer popping functions args from stack until later.
1298 Common Var(flag_delayed_branch) Optimization
1299 Attempt to fill delay slots of branch instructions.
1301 fdelete-dead-exceptions
1302 Common Var(flag_delete_dead_exceptions) Init(0) Optimization
1303 Delete dead instructions that may throw exceptions.
1305 fdelete-null-pointer-checks
1306 Common Var(flag_delete_null_pointer_checks) Init(-1) Optimization
1307 Delete useless null pointer checks.
1309 fdevirtualize-at-ltrans
1310 Common Var(flag_ltrans_devirtualize)
1311 Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
1313 fdevirtualize-speculatively
1314 Common Var(flag_devirtualize_speculatively) Optimization
1315 Perform speculative devirtualization.
1318 Common Var(flag_devirtualize) Optimization
1319 Try to convert virtual calls to direct ones.
1321 fdiagnostics-show-location=
1322 Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
1323 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics.
1325 ; Required for these enum values.
1330 Name(diagnostic_prefixing_rule) Type(int)
1333 Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
1336 Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
1338 fdiagnostics-show-caret
1339 Common Var(flag_diagnostics_show_caret) Init(1)
1340 Show the source line with a caret indicating the column.
1342 fdiagnostics-show-labels
1343 Common Var(flag_diagnostics_show_labels) Init(1)
1344 Show labels annotating ranges of source code when showing source.
1346 fdiagnostics-show-line-numbers
1347 Common Var(flag_diagnostics_show_line_numbers) Init(1)
1348 Show line numbers in the left margin when showing source.
1351 Common Alias(fdiagnostics-color=,always,never)
1355 Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
1356 -fdiagnostics-color=[never|always|auto] Colorize diagnostics.
1358 ; Required for these enum values.
1363 Name(diagnostic_color_rule) Type(int)
1366 Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
1369 Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
1372 Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
1375 Driver Common Joined RejectNegative Var(flag_diagnostics_show_urls) Enum(diagnostic_url_rule) Init(DIAGNOSTICS_URL_AUTO)
1376 -fdiagnostics-urls=[never|always|auto] Embed URLs in diagnostics.
1378 ; Required for these enum values.
1383 Name(diagnostic_url_rule) Type(int)
1386 Enum(diagnostic_url_rule) String(never) Value(DIAGNOSTICS_URL_NO)
1389 Enum(diagnostic_url_rule) String(always) Value(DIAGNOSTICS_URL_YES)
1392 Enum(diagnostic_url_rule) String(auto) Value(DIAGNOSTICS_URL_AUTO)
1394 fdiagnostics-column-unit=
1395 Common Joined RejectNegative Enum(diagnostics_column_unit)
1396 -fdiagnostics-column-unit=[display|byte] Select whether column numbers are output as display columns (default) or raw bytes.
1398 fdiagnostics-column-origin=
1399 Common Joined RejectNegative UInteger
1400 -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.
1402 fdiagnostics-format=
1403 Common Joined RejectNegative Enum(diagnostics_output_format)
1404 -fdiagnostics-format=[text|sarif-stderr|sarif-file|json|json-stderr|json-file] Select output format.
1406 fdiagnostics-escape-format=
1407 Common Joined RejectNegative Enum(diagnostics_escape_format)
1408 -fdiagnostics-escape-format=[unicode|bytes] Select how to escape non-printable-ASCII bytes in the source for diagnostics that suggest it.
1410 ; Required for these enum values.
1415 Name(diagnostics_column_unit) Type(int)
1418 Enum(diagnostics_column_unit) String(display) Value(DIAGNOSTICS_COLUMN_UNIT_DISPLAY)
1421 Enum(diagnostics_column_unit) String(byte) Value(DIAGNOSTICS_COLUMN_UNIT_BYTE)
1424 Name(diagnostics_escape_format) Type(int)
1427 Enum(diagnostics_escape_format) String(unicode) Value(DIAGNOSTICS_ESCAPE_FORMAT_UNICODE)
1430 Enum(diagnostics_escape_format) String(bytes) Value(DIAGNOSTICS_ESCAPE_FORMAT_BYTES)
1433 Name(diagnostics_output_format) Type(int)
1436 Enum(diagnostics_output_format) String(text) Value(DIAGNOSTICS_OUTPUT_FORMAT_TEXT)
1439 Enum(diagnostics_output_format) String(json) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR)
1442 Enum(diagnostics_output_format) String(json-stderr) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR)
1445 Enum(diagnostics_output_format) String(json-file) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE)
1448 Enum(diagnostics_output_format) String(sarif-stderr) Value(DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR)
1451 Enum(diagnostics_output_format) String(sarif-file) Value(DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE)
1453 fdiagnostics-parseable-fixits
1454 Common Var(flag_diagnostics_parseable_fixits)
1455 Print fix-it hints in machine-readable form.
1457 fdiagnostics-generate-patch
1458 Common Var(flag_diagnostics_generate_patch)
1459 Print fix-it hints to stderr in unified diff format.
1461 fdiagnostics-show-option
1462 Common Var(flag_diagnostics_show_option) Init(1)
1463 Amend appropriate diagnostic messages with the command line option that controls them.
1465 fdiagnostics-show-cwe
1466 Common Var(flag_diagnostics_show_cwe) Init(1)
1467 Print CWE identifiers for diagnostic messages, where available.
1469 fdiagnostics-show-rules
1470 Common Var(flag_diagnostics_show_rules) Init(1)
1471 Print any rules associated with diagnostic messages.
1473 fdiagnostics-path-format=
1474 Common Joined RejectNegative Var(flag_diagnostics_path_format) Enum(diagnostic_path_format) Init(DPF_INLINE_EVENTS)
1475 Specify how to print any control-flow path associated with a diagnostic.
1477 fdiagnostics-plain-output
1478 Driver Common RejectNegative
1479 Turn off any diagnostics features that complicate the output, such as line numbers, color, and warning URLs.
1482 Common Joined RejectNegative UInteger
1483 -ftabstop=<number> Distance between tab stops for column reporting.
1486 Name(diagnostic_path_format) Type(int)
1489 Enum(diagnostic_path_format) String(none) Value(DPF_NONE)
1492 Enum(diagnostic_path_format) String(separate-events) Value(DPF_SEPARATE_EVENTS)
1495 Enum(diagnostic_path_format) String(inline-events) Value(DPF_INLINE_EVENTS)
1497 fdiagnostics-show-path-depths
1498 Common Var(flag_diagnostics_show_path_depths) Init(0)
1499 Show stack depths of events in paths.
1501 fdiagnostics-minimum-margin-width=
1502 Common Joined UInteger Var(diagnostics_minimum_margin_width) Init(6)
1503 Set minimum width of left margin of source code when showing source.
1506 Common Joined RejectNegative Var(common_deferred_options) Defer
1507 -fdisable-[tree|rtl|ipa]-<pass>=range1+range2 Disable an optimization pass.
1510 Common Joined RejectNegative Var(common_deferred_options) Defer
1511 -fenable-[tree|rtl|ipa]-<pass>=range1+range2 Enable an optimization pass.
1514 Common Joined RejectNegative Var(common_deferred_options) Defer
1515 -fdump-<type> Dump various compiler internals to a file.
1518 Driver RejectNegative
1521 Common RejectNegative Joined Var(flag_dump_final_insns)
1522 -fdump-final-insns=filename Dump to filename the insns at the end of translation.
1525 Common RejectNegative Joined Var(flag_dump_go_spec)
1526 -fdump-go-spec=filename Write all declarations to file as Go code.
1529 Common Var(flag_dump_noaddr)
1530 Suppress output of addresses in debugging dumps.
1533 Common Driver Var(flag_report_bug)
1534 Collect and dump debug information into temporary file if ICE in C/C++
1537 fdump-internal-locations
1538 Common Var(flag_dump_locations) Init(0)
1539 Dump detailed information on GCC's internal representation of source code locations.
1542 Common Var(flag_dump_passes) Init(0)
1543 Dump optimization passes.
1546 Common Var(flag_dump_unnumbered)
1547 Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
1549 fdump-unnumbered-links
1550 Common Var(flag_dump_unnumbered_links)
1551 Suppress output of previous and next insn numbers in debugging dumps.
1554 Common Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1555 Enable CFI tables via GAS assembler directives.
1558 Common Var(flag_early_inlining) Init(1) Optimization
1559 Perform early inlining.
1561 feliminate-dwarf2-dups
1563 Does nothing. Preserved for backward compatibility.
1566 Common Var(flag_ipa_sra) Init(0) Optimization
1567 Perform interprocedural reduction of aggregates.
1569 feliminate-unused-debug-symbols
1570 Common Var(flag_debug_only_used_symbols) Init(1)
1571 Perform unused symbol elimination in debug info.
1573 feliminate-unused-debug-types
1574 Common Var(flag_eliminate_unused_debug_types) Init(1)
1575 Perform unused type elimination in debug info.
1577 femit-class-debug-always
1578 Common Var(flag_emit_class_debug_always) Init(0)
1579 Do not suppress C++ class debug information.
1582 Common Var(flag_exceptions) Optimization EnabledBy(fnon-call-exceptions)
1583 Enable exception handling.
1585 fexpensive-optimizations
1586 Common Var(flag_expensive_optimizations) Optimization
1587 Perform a number of minor, expensive optimizations.
1590 Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision) Init(EXCESS_PRECISION_DEFAULT) Optimization SetByCombined
1591 -fexcess-precision=[fast|standard|16] Specify handling of excess floating-point precision.
1594 Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1597 Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1600 Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1603 Enum(excess_precision) String(16) Value(EXCESS_PRECISION_FLOAT16)
1605 ; Whether we permit the extended set of values for FLT_EVAL_METHOD
1606 ; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11.
1607 fpermitted-flt-eval-methods=
1608 Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT)
1609 -fpermitted-flt-eval-methods=[c11|ts-18661] Specify which values of FLT_EVAL_METHOD are permitted.
1612 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)
1615 Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11)
1618 Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
1624 Common Var(flag_fat_lto_objects)
1625 Output lto objects containing both the intermediate language and binary output.
1628 Common Var(flag_finite_math_only) Optimization SetByCombined
1629 Assume no NaNs or infinities are generated.
1632 Common Var(flag_finite_loops) Optimization Init(0)
1633 Assume that loops with an exit will terminate and not loop indefinitely.
1636 Common Joined RejectNegative Var(common_deferred_options) Defer
1637 -ffixed-<register> Mark <register> as being unavailable to the compiler.
1640 Common Var(flag_float_store) Optimization
1641 Don't allocate floats and doubles in extended-precision registers.
1645 Does nothing. Preserved for backward compatibility.
1648 Common Var(flag_forward_propagate) Optimization
1649 Perform a forward propagation pass on RTL.
1652 Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
1653 -ffp-contract=[off|on|fast] Perform floating-point expression contraction.
1656 Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1659 Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1661 ; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1663 Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1666 Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1668 ffp-int-builtin-inexact
1669 Common Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1670 Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1672 ; Nonzero means don't put addresses of constant functions in registers.
1673 ; Used for compiling the Unix kernel, where strange substitutions are
1674 ; done on the assembly output.
1676 Common Var(flag_no_function_cse,0) Optimization
1677 Allow function addresses to be held in registers.
1680 Common Var(flag_function_sections)
1681 Place each function into its own section.
1684 Common Var(flag_gcse) Optimization
1685 Perform global common subexpression elimination.
1688 Common Var(flag_gcse_lm) Init(1) Optimization
1689 Perform enhanced load motion during global common subexpression elimination.
1692 Common Var(flag_gcse_sm) Init(0) Optimization
1693 Perform store motion after global common subexpression elimination.
1696 Common Var(flag_gcse_las) Init(0) Optimization
1697 Perform redundant load after store elimination in global common subexpression
1701 Common Var(flag_gcse_after_reload) Optimization
1702 Perform global common subexpression elimination after register allocation has
1706 Name(dwarf_gnat_encodings) Type(int)
1709 Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1712 Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1715 Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1718 Common Enum(dwarf_gnat_encodings) Joined RejectNegative Undocumented Var(gnat_encodings)
1719 -fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information.
1721 ; This option is not documented yet as its semantics will change.
1723 Common Var(flag_graphite) Optimization
1724 Enable in and out of Graphite representation.
1727 Common Var(flag_graphite_identity) Optimization
1728 Enable Graphite Identity transformation.
1730 fhoist-adjacent-loads
1731 Common Var(flag_hoist_adjacent_loads) Optimization
1732 Enable hoisting adjacent loads to encourage generating conditional move
1736 Common Undocumented Var(flag_keep_gc_roots_live) Optimization
1737 ; Always keep a pointer to a live memory block
1740 Common Var(flag_large_source_files) Init(0)
1741 Improve GCC's ability to track column numbers in large source files,
1742 at the expense of slower compilation.
1744 floop-parallelize-all
1745 Common Var(flag_loop_parallelize_all) Optimization
1746 Mark all loops as parallel.
1749 Common Alias(floop-nest-optimize)
1750 Enable loop nest transforms. Same as -floop-nest-optimize.
1753 Common Var(flag_loop_interchange) Optimization
1754 Enable loop interchange on trees.
1757 Common Alias(floop-nest-optimize)
1758 Enable loop nest transforms. Same as -floop-nest-optimize.
1760 floop-unroll-and-jam
1761 Common Var(flag_unroll_jam) Optimization
1762 Perform unroll-and-jam on loops.
1766 Enable support for GNU transactional memory.
1769 Common Var(flag_gnu_unique) Init(1)
1770 Use STB_GNU_UNIQUE if supported by the assembler.
1774 Does nothing. Preserved for backward compatibility.
1777 Common Var(flag_loop_nest_optimize) Optimization
1778 Enable the loop nest optimizer.
1780 fstrict-volatile-bitfields
1781 Common Var(flag_strict_volatile_bitfields) Init(-1) Optimization
1782 Force bitfield accesses to match their type width.
1785 Common Var(flag_store_merging) Optimization
1786 Merge adjacent stores.
1788 fguess-branch-probability
1789 Common Var(flag_guess_branch_prob) Optimization
1790 Enable guessing of branch probabilities.
1793 Common Var(flag_harden_compares) Optimization
1794 Harden conditionals not used in branches, checking reversed conditions.
1796 fharden-conditional-branches
1797 Common Var(flag_harden_conditional_branches) Optimization
1798 Harden conditional branches by checking reversed conditions.
1800 ; Nonzero means ignore `#ident' directives. 0 means handle them.
1801 ; Generate position-independent code for executables if possible
1802 ; On SVR4 targets, it also controls whether or not to emit a
1803 ; string identifying the compiler.
1805 Common Var(flag_no_ident,0)
1806 Process #ident directives.
1809 Common Var(flag_if_conversion) Optimization
1810 Perform conversion of conditional jumps to branchless equivalents.
1813 Common Var(flag_if_conversion2) Optimization
1814 Perform conversion of conditional jumps to conditional execution.
1817 Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
1818 -fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
1821 Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1824 Enum(stack_reuse_level) String(all) Value(SR_ALL)
1827 Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1830 Enum(stack_reuse_level) String(none) Value(SR_NONE)
1832 ftree-loop-if-convert
1833 Common Var(flag_tree_loop_if_convert) Init(-1) Optimization
1834 Convert conditional jumps in innermost loops to branchless equivalents.
1836 ftree-loop-if-convert-stores
1838 Does nothing. Preserved for backward compatibility.
1840 ; -finhibit-size-directive inhibits output of .size for ELF.
1841 ; This is used only for compiling crtstuff.c,
1842 ; and it may be extended to other effects
1843 ; needed for crtstuff.c on other systems.
1844 finhibit-size-directive
1845 Common Var(flag_inhibit_size_directive)
1846 Do not generate .size directives.
1849 Common Var(flag_indirect_inlining) Optimization
1850 Perform indirect inlining.
1852 ; General flag to enable inlining. Specifying -fno-inline will disable
1853 ; all inlining apart from always-inline functions.
1855 Common Var(flag_no_inline,0) Init(0) Optimization
1856 Enable inlining of function declared \"inline\", disabling disables all inlining.
1858 finline-small-functions
1859 Common Var(flag_inline_small_functions) Optimization
1860 Integrate functions into their callers when code size is known not to grow.
1863 Common Var(flag_inline_functions) Optimization
1864 Integrate functions not declared \"inline\" into their callers when profitable.
1866 finline-functions-called-once
1867 Common Var(flag_inline_functions_called_once) Optimization
1868 Integrate functions only required by their single caller.
1871 Common RejectNegative Joined Alias(finline-limit=)
1874 Common RejectNegative Joined UInteger
1875 -finline-limit=<number> Limit the size of inlined functions to <number>.
1878 Common Var(flag_inline_atomics) Init(1) Optimization
1879 Inline __atomic operations when a lock free instruction sequence is available.
1882 Common RejectNegative Alias(fcf-protection=,full)
1885 Common Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
1886 -fcf-protection=[full|branch|return|none|check] Instrument functions with checks to verify jump/call/return control-flow transfer
1887 instructions have valid targets.
1890 Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
1893 Enum(cf_protection_level) String(full) Value(CF_FULL)
1896 Enum(cf_protection_level) String(branch) Value(CF_BRANCH)
1899 Enum(cf_protection_level) String(return) Value(CF_RETURN)
1902 Enum(cf_protection_level) String(check) Value(CF_CHECK)
1905 Enum(cf_protection_level) String(none) Value(CF_NONE)
1907 finstrument-functions
1908 Common Var(flag_instrument_function_entry_exit,1)
1909 Instrument function entry and exit with profiling calls.
1911 finstrument-functions-once
1912 Common Var(flag_instrument_function_entry_exit,2)
1913 Instrument function entry and exit with profiling calls invoked once.
1915 finstrument-functions-exclude-function-list=
1916 Common RejectNegative Joined
1917 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions.
1919 finstrument-functions-exclude-file-list=
1920 Common RejectNegative Joined
1921 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files.
1924 Common Var(flag_ipa_cp) Optimization
1925 Perform interprocedural constant propagation.
1928 Common Var(flag_ipa_cp_clone) Optimization
1929 Perform cloning to make Interprocedural constant propagation stronger.
1933 Does nothing. Preserved for backward compatibility.
1936 Common Var(flag_ipa_bit_cp) Optimization
1937 Perform interprocedural bitwise constant propagation.
1940 Common Var(flag_ipa_modref) Optimization
1941 Perform interprocedural modref analysis.
1944 Common Var(flag_ipa_profile) Init(0) Optimization
1945 Perform interprocedural profile propagation.
1948 Common Var(flag_ipa_pta) Init(0) Optimization
1949 Perform interprocedural points-to analysis.
1952 Common Var(flag_ipa_pure_const) Init(0) Optimization
1953 Discover pure and const functions.
1956 Common Var(flag_ipa_icf) Optimization
1957 Perform Identical Code Folding for functions and read-only variables.
1960 Common Var(flag_ipa_icf_functions) Optimization
1961 Perform Identical Code Folding for functions.
1964 Common Var(flag_ipa_icf_variables) Optimization
1965 Perform Identical Code Folding for variables.
1968 Common Var(flag_ipa_reference) Init(0) Optimization
1969 Discover read-only and non addressable static variables.
1971 fipa-reference-addressable
1972 Common Var(flag_ipa_reference_addressable) Init(0) Optimization
1973 Discover read-only, write-only and non-addressable static variables.
1975 fipa-stack-alignment
1976 Common Var(flag_ipa_stack_alignment) Init(1) Optimization
1977 Reduce stack alignment on call sites if possible.
1981 Does nothing. Preserved for backward compatibility.
1985 Does nothing. Preserved for backward compatibility.
1988 Common Var(flag_ipa_vrp) Optimization
1989 Perform IPA Value Range Propagation.
1992 Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
1993 -fira-algorithm=[CB|priority] Set the used IRA algorithm.
1995 fipa-strict-aliasing
1996 Common Var(flag_ipa_strict_aliasing) Init(1) Optimization
1997 Assume strict aliasing rules apply across (uninlined) function boundaries.
2000 Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
2003 Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
2006 Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
2009 Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_ONE) Optimization
2010 -fira-region=[one|all|mixed] Set regions for IRA.
2013 Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
2016 Enum(ira_region) String(one) Value(IRA_REGION_ONE)
2019 Enum(ira_region) String(all) Value(IRA_REGION_ALL)
2022 Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
2025 Common Var(flag_ira_hoist_pressure) Init(1) Optimization
2026 Use IRA based register pressure calculation
2027 in RTL hoist optimizations.
2030 Common Var(flag_ira_loop_pressure) Optimization
2031 Use IRA based register pressure calculation
2032 in RTL loop optimizations.
2034 fira-share-save-slots
2035 Common Var(flag_ira_share_save_slots) Init(1) Optimization
2036 Share slots for saving different hard registers.
2038 fira-share-spill-slots
2039 Common Var(flag_ira_share_spill_slots) Init(1) Optimization
2040 Share stack slots for spilled pseudo-registers.
2043 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
2044 -fira-verbose=<number> Control IRA's level of diagnostic messages.
2047 Common Var(flag_ivopts) Init(1) Optimization
2048 Optimize induction variables on trees.
2051 Common Var(flag_jump_tables) Init(1) Optimization
2052 Use jump tables for sufficiently large switch statements.
2055 Common Var(flag_bit_tests) Init(1) Optimization
2056 Use bit tests for sufficiently large switch statements.
2058 fkeep-inline-functions
2059 Common Var(flag_keep_inline_functions)
2060 Generate code for functions even if they are fully inlined.
2062 fkeep-static-functions
2063 Common Var(flag_keep_static_functions)
2064 Generate code for static functions even if they are never called.
2067 Common Var(flag_keep_static_consts) Init(1)
2068 Emit static const variables even if they are not used.
2071 Common Var(flag_leading_underscore) Init(-1)
2072 Give external symbols a leading underscore.
2076 Does nothing. Preserved for backward compatibility.
2079 Common Var(flag_lra_remat) Optimization
2080 Do CFG-sensitive rematerialization in LRA.
2084 Enable link-time optimization.
2087 Common RejectNegative Joined Var(flag_lto)
2088 Link-time optimization with number of parallel jobs or jobserver.
2091 Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
2094 Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
2097 Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
2100 Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
2103 Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
2106 Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
2109 Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
2110 Specify the algorithm to partition symbols and vars at linktime.
2112 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
2113 flto-compression-level=
2114 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 19)
2115 -flto-compression-level=<number> Use zlib/zstd compression level <number> for IL.
2117 flto-odr-type-merging
2119 Does nothing. Preserved for backward compatibility.
2122 Common Var(flag_lto_report) Init(0)
2123 Report various link-time optimization statistics.
2126 Common Var(flag_lto_report_wpa) Init(0)
2127 Report various link-time optimization statistics for WPA only.
2130 Common Var(flag_errno_math) Init(1) Optimization SetByCombined
2131 Set errno after built-in math functions.
2134 Common Joined RejectNegative UInteger Var(flag_max_errors)
2135 -fmax-errors=<number> Maximum number of errors to report.
2138 Common Var(mem_report)
2139 Report on permanent memory allocation.
2142 Common Var(mem_report_wpa)
2143 Report on permanent memory allocation in WPA only.
2145 ; This will attempt to merge constant section constants, if 1 only
2146 ; string constants and constants from constant pool, if 2 also constant
2148 fmerge-all-constants
2149 Common Var(flag_merge_constants,2) Init(1)
2150 Attempt to merge identical constants and constant variables.
2153 Common Var(flag_merge_constants,1)
2154 Attempt to merge identical constants across compilation units.
2156 fmerge-debug-strings
2157 Common Var(flag_merge_debug_strings) Init(1)
2158 Attempt to merge identical debug strings across compilation units.
2161 Common RejectNegative Joined UInteger
2162 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping.
2165 Common Var(flag_modulo_sched) Optimization
2166 Perform SMS based modulo scheduling before the first scheduling pass.
2168 fmodulo-sched-allow-regmoves
2169 Common Var(flag_modulo_sched_allow_regmoves) Optimization
2170 Perform SMS based modulo scheduling with register moves allowed.
2172 fmove-loop-invariants
2173 Common Var(flag_move_loop_invariants) Optimization
2174 Move loop invariant computations out of loops.
2177 Common Var(flag_move_loop_stores) Optimization
2178 Move stores out of loops.
2181 Common Var(flag_dce) Init(1) Optimization
2182 Use the RTL dead code elimination pass.
2185 Common Var(flag_dse) Init(0) Optimization
2186 Use the RTL dead store elimination pass.
2188 freschedule-modulo-scheduled-loops
2189 Common Var(flag_resched_modulo_sched) Optimization
2190 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
2192 fnon-call-exceptions
2193 Common Var(flag_non_call_exceptions) Optimization
2194 Support synchronous non-call exceptions.
2197 Driver Joined MissingArgError(targets missing after %qs)
2200 Common Driver Joined MissingArgError(options or targets=options missing after %qs)
2201 -foffload-options=<targets>=<options> Specify options for the offloading targets.
2204 Common Joined RejectNegative Enum(offload_abi)
2205 -foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler.
2208 Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
2211 Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
2214 Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
2217 Common Var(flag_omit_frame_pointer) Optimization
2218 When possible do not generate stack frames.
2221 Common Var(flag_opt_info) Optimization
2222 Enable all optimization info dumps on stderr.
2225 Common Joined RejectNegative Var(common_deferred_options) Defer
2226 -fopt-info[-<type>=filename] Dump compiler optimization details.
2228 fsave-optimization-record
2229 Common Var(flag_save_optimization_record) Optimization
2230 Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
2232 foptimize-register-move
2234 Does nothing. Preserved for backward compatibility.
2236 foptimize-sibling-calls
2237 Common Var(flag_optimize_sibling_calls) Optimization
2238 Optimize sibling and tail recursive calls.
2241 Common Var(flag_partial_inlining) Optimization
2242 Perform partial inlining.
2245 Common Var(pre_ipa_mem_report)
2246 Report on memory allocation before interprocedural optimization.
2248 fpost-ipa-mem-report
2249 Common Var(post_ipa_mem_report)
2250 Report on memory allocation before interprocedural optimization.
2253 Common Var(flag_pack_struct) Optimization
2254 Pack structure members together without holes.
2257 Common RejectNegative Joined UInteger Optimization
2258 -fpack-struct=<number> Set initial maximum structure member alignment.
2261 Common Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
2262 Return small aggregates in memory, not registers.
2265 Common Var(flag_peel_loops) Optimization
2266 Perform loop peeling.
2269 Common Var(flag_no_peephole,0) Optimization
2270 Enable machine specific peephole optimizations.
2273 Common Var(flag_peephole2) Optimization
2274 Enable an RTL peephole pass before sched2.
2277 Common Var(flag_pic,2) Negative(fPIE) Init(-1)
2278 Generate position-independent code if possible (large mode).
2281 Common Var(flag_pie,2) Negative(fpic) Init(-1)
2282 Generate position-independent code for executables if possible (large mode).
2285 Common Var(flag_pic,1) Negative(fpie) Init(-1)
2286 Generate position-independent code if possible (small mode).
2289 Common Var(flag_pie,1) Negative(fPIC) Init(-1)
2290 Generate position-independent code for executables if possible (small mode).
2293 Common Var(flag_plt) Init(1) Optimization
2294 Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
2297 Common Joined RejectNegative Var(common_deferred_options) Defer
2298 Specify a plugin to load.
2301 Common Joined RejectNegative Var(common_deferred_options) Defer
2302 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>.
2304 fpredictive-commoning
2305 Common Var(flag_predictive_commoning) Optimization
2306 Run predictive commoning optimization.
2308 fprefetch-loop-arrays
2309 Common Var(flag_prefetch_loop_arrays) Init(-1) Optimization
2310 Generate prefetch instructions, if available, for arrays in loops.
2313 Common Var(profile_flag)
2314 Enable basic program profiling code.
2317 Common Var(profile_abs_path_flag)
2318 Generate absolute source path names for gcov.
2321 Common Var(profile_arc_flag)
2322 Insert arc-based program profiling code.
2325 Common Joined RejectNegative Var(profile_data_prefix)
2326 Set the top-level directory for storing the profile data.
2327 The default is 'pwd'.
2330 Common Joined RejectNegative Var(profile_note_location)
2331 Select the name for storing the profile note file.
2334 Common Var(flag_profile_correction)
2335 Enable correction of flow inconsistent profile data input.
2338 Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
2339 -fprofile-update=[single|atomic|prefer-atomic] Set the profile update method.
2341 fprofile-filter-files=
2342 Common Joined RejectNegative Var(flag_profile_filter_files)
2343 Instrument only functions from files whose name matches any of the regular expressions (separated by semi-colons).
2345 fprofile-exclude-files=
2346 Common Joined RejectNegative Var(flag_profile_exclude_files)
2347 Instrument only functions from files whose name does not match any of the regular expressions (separated by semi-colons).
2350 Name(profile_reproducibility) Type(enum profile_reproducibility) UnknownError(unknown profile reproducibility method %qs)
2353 Enum(profile_reproducibility) String(serial) Value(PROFILE_REPRODUCIBILITY_SERIAL)
2356 Enum(profile_reproducibility) String(parallel-runs) Value(PROFILE_REPRODUCIBILITY_PARALLEL_RUNS)
2359 Enum(profile_reproducibility) String(multithreaded) Value(PROFILE_REPRODUCIBILITY_MULTITHREADED)
2361 fprofile-reproducible=
2362 Common Joined RejectNegative Var(flag_profile_reproducible) Enum(profile_reproducibility) Init(PROFILE_REPRODUCIBILITY_SERIAL)
2363 -fprofile-reproducible=[serial|parallel-runs|multithreaded] Control level of reproducibility of profile gathered by -fprofile-generate.
2366 Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
2369 Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
2372 Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
2375 Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC)
2377 fprofile-prefix-path=
2378 Common Joined RejectNegative Var(profile_prefix_path)
2379 Remove prefix from absolute path before mangling name for -fprofile-generate= and -fprofile-use=.
2381 fprofile-prefix-map=
2382 Common Joined RejectNegative Var(common_deferred_options) Defer
2383 -fprofile-prefix-map=<old>=<new> Map one directory name to another in GCOV coverage result.
2387 Enable common options for generating profile info for profile feedback directed optimizations.
2390 Common Joined RejectNegative
2391 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
2393 fprofile-info-section
2394 Common RejectNegative
2395 Register the profile information in the .gcov_info section instead of using a constructor/destructor.
2397 fprofile-info-section=
2398 Common Joined RejectNegative Var(profile_info_section)
2399 Register the profile information in the specified section instead of using a constructor/destructor.
2401 fprofile-partial-training
2402 Common Var(flag_profile_partial_training) Optimization
2403 Do not assume that functions never executed during the train run are cold.
2406 Common Var(flag_profile_use)
2407 Enable common options for performing profile feedback directed optimizations.
2410 Common Joined RejectNegative
2411 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
2414 Common Var(flag_profile_values)
2415 Insert code to profile values of expressions.
2418 Common Var(profile_report)
2419 Report on consistency of profile.
2421 fprofile-reorder-functions
2422 Common Var(flag_profile_reorder_functions) Optimization
2423 Enable function reordering that improves code placement.
2425 fpatchable-function-entry=
2426 Common Var(flag_patchable_function_entry) Joined Optimization
2427 Insert NOP instructions at each function entry.
2430 Common Var(common_deferred_options) Defer
2433 Common Joined RejectNegative Var(common_deferred_options) Defer
2434 -frandom-seed=<string> Make compile reproducible using <string>.
2436 ; This switch causes the command line that was used to create an
2437 ; object file to be recorded into the object file. The exact format
2438 ; of this recording is target and binary file format dependent.
2439 ; It is related to the -fverbose-asm switch, but that switch only
2440 ; records information in the assembler output file as comments, so
2441 ; they never reach the object file.
2442 frecord-gcc-switches
2443 Common Var(flag_record_gcc_switches)
2444 Record gcc command line switches in the object file.
2447 Common Var(flag_pcc_struct_return,0) Optimization
2448 Return small aggregates in registers.
2452 Does nothing. Preserved for backward compatibility.
2455 Common Var(flag_lifetime_dse,2) Init(2) Optimization
2456 Tell DSE that the storage for a C++ object is dead when the constructor
2457 starts and when the destructor finishes.
2460 Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
2463 Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
2466 Common Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization
2467 -flive-patching=[inline-only-static|inline-clone] Control IPA
2468 optimizations to provide a safe compilation for live-patching. At the same
2469 time, provides multiple-level control on the enabled IPA optimizations.
2472 Name(live_patching_level) Type(enum live_patching_level) UnknownError(unknown Live-Patching Level %qs)
2475 Enum(live_patching_level) String(inline-only-static) Value(LIVE_PATCHING_INLINE_ONLY_STATIC)
2478 Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE)
2481 Common Var(flag_allocation_dce) Init(1) Optimization
2482 Tell DCE to remove unused C++ allocations.
2484 flive-range-shrinkage
2485 Common Var(flag_live_range_shrinkage) Init(0) Optimization
2486 Relief of register pressure through live range shrinkage.
2489 Common Var(flag_rename_registers) Optimization EnabledBy(funroll-loops)
2490 Perform a register renaming optimization pass.
2493 Common Var(flag_schedule_fusion) Init(2) Optimization
2494 Perform a target dependent instruction fusion optimization pass.
2497 Common Var(flag_reorder_blocks) Optimization
2498 Reorder basic blocks to improve code placement.
2500 freorder-blocks-algorithm=
2501 Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
2502 -freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
2505 Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2508 Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2511 Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
2513 freorder-blocks-and-partition
2514 Common Var(flag_reorder_blocks_and_partition) Optimization
2515 Reorder basic blocks and partition into hot and cold sections.
2518 Common Var(flag_reorder_functions) Optimization
2519 Reorder functions to improve code placement.
2521 frerun-cse-after-loop
2522 Common Var(flag_rerun_cse_after_loop) Optimization
2523 Add a common subexpression elimination pass after loop optimizations.
2527 Does nothing. Preserved for backward compatibility.
2530 Common Var(flag_rounding_math) Optimization SetByCombined
2531 Disable optimizations that assume default FP rounding behavior.
2534 Common Var(flag_schedule_interblock) Init(1) Optimization
2535 Enable scheduling across basic blocks.
2538 Common Var(flag_sched_pressure) Init(0) Optimization
2539 Enable register pressure sensitive insn scheduling.
2542 Common Var(flag_schedule_speculative) Init(1) Optimization
2543 Allow speculative motion of non-loads.
2546 Common Var(flag_schedule_speculative_load) Optimization
2547 Allow speculative motion of some loads.
2549 fsched-spec-load-dangerous
2550 Common Var(flag_schedule_speculative_load_dangerous) Optimization
2551 Allow speculative motion of more loads.
2554 Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
2555 -fsched-verbose=<number> Set the verbosity level of the scheduler.
2557 fsched2-use-superblocks
2558 Common Var(flag_sched2_use_superblocks) Optimization
2559 If scheduling post reload, do superblock scheduling.
2563 Does nothing. Preserved for backward compatibility.
2566 Common Var(flag_schedule_insns) Optimization
2567 Reschedule instructions before register allocation.
2570 Common Var(flag_schedule_insns_after_reload) Optimization
2571 Reschedule instructions after register allocation.
2573 ; This flag should be on when a target implements non-trivial
2574 ; scheduling hooks, maybe saving some information for its own sake.
2575 ; On IA64, for example, this is used for correct bundling.
2576 fselective-scheduling
2577 Common Var(flag_selective_scheduling) Optimization
2578 Schedule instructions using selective scheduling algorithm.
2580 fselective-scheduling2
2581 Common Var(flag_selective_scheduling2) Optimization
2582 Run selective scheduling after reload.
2585 Common Undocumented Joined Var(flag_self_test)
2586 Run self-tests, using the given path to locate test files.
2588 fsel-sched-pipelining
2589 Common Var(flag_sel_sched_pipelining) Init(0) Optimization
2590 Perform software pipelining of inner loops during selective scheduling.
2592 fsel-sched-pipelining-outer-loops
2593 Common Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
2594 Perform software pipelining of outer loops during selective scheduling.
2596 fsel-sched-reschedule-pipelined
2597 Common Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
2598 Reschedule pipelined regions without pipelining.
2600 fsemantic-interposition
2601 Common Var(flag_semantic_interposition) Init(1) Optimization
2602 Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
2604 ; sched_stalled_insns means that insns can be moved prematurely from the queue
2605 ; of stalled insns into the ready list.
2606 fsched-stalled-insns
2607 Common Var(flag_sched_stalled_insns) Optimization UInteger
2608 Allow premature scheduling of queued insns.
2610 fsched-stalled-insns=
2611 Common RejectNegative Joined UInteger Optimization
2612 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled.
2614 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
2615 ; be examined for a dependency on a stalled insn that is candidate for
2616 ; premature removal from the queue of stalled insns into the ready list (has
2617 ; an effect only if the flag 'sched_stalled_insns' is set).
2618 fsched-stalled-insns-dep
2619 Common Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
2620 Set dependence distance checking in premature scheduling of queued insns.
2622 fsched-stalled-insns-dep=
2623 Common RejectNegative Joined UInteger Optimization
2624 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns.
2626 fsched-group-heuristic
2627 Common Var(flag_sched_group_heuristic) Init(1) Optimization
2628 Enable the group heuristic in the scheduler.
2630 fsched-critical-path-heuristic
2631 Common Var(flag_sched_critical_path_heuristic) Init(1) Optimization
2632 Enable the critical path heuristic in the scheduler.
2634 fsched-spec-insn-heuristic
2635 Common Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
2636 Enable the speculative instruction heuristic in the scheduler.
2638 fsched-rank-heuristic
2639 Common Var(flag_sched_rank_heuristic) Init(1) Optimization
2640 Enable the rank heuristic in the scheduler.
2642 fsched-last-insn-heuristic
2643 Common Var(flag_sched_last_insn_heuristic) Init(1) Optimization
2644 Enable the last instruction heuristic in the scheduler.
2646 fsched-dep-count-heuristic
2647 Common Var(flag_sched_dep_count_heuristic) Init(1) Optimization
2648 Enable the dependent count heuristic in the scheduler.
2651 Common Var(flag_section_anchors) Optimization
2652 Access data in the same section from shared anchor points.
2656 Does nothing. Preserved for backward compatibility.
2660 Does nothing. Preserved for backward compatibility.
2663 Common Var(flag_ree) Init(0) Optimization
2664 Turn on Redundant Extensions Elimination pass.
2667 Common Var(flag_show_column) Init(1)
2668 Show column numbers in diagnostics, when available. Default on.
2671 Common Var(flag_shrink_wrap) Optimization
2672 Emit function prologues only before parts of the function that need it,
2673 rather than at the top of the function.
2675 fshrink-wrap-separate
2676 Common Var(flag_shrink_wrap_separate) Init(1) Optimization
2677 Shrink-wrap parts of the prologue and epilogue separately.
2680 Common Var(flag_signaling_nans) Optimization SetByCombined
2681 Disable optimizations observable by IEEE signaling NaNs.
2684 Common Var(flag_signed_zeros) Init(1) Optimization SetByCombined
2685 Disable floating point optimizations that ignore the IEEE signedness of zero.
2687 fsingle-precision-constant
2688 Common Var(flag_single_precision_constant) Optimization
2689 Convert floating point constants to single precision constants.
2691 fsplit-ivs-in-unroller
2692 Common Var(flag_split_ivs_in_unroller) Init(1) Optimization
2693 Split lifetimes of induction variables when loops are unrolled.
2696 Common Var(flag_split_stack) Init(-1)
2697 Generate discontiguous stack frames.
2700 Common Var(flag_split_wide_types) Optimization
2701 Split wide types into independent registers.
2703 fsplit-wide-types-early
2704 Common Var(flag_split_wide_types_early) Optimization
2705 Split wide types into independent registers earlier.
2708 Common Var(flag_ssa_backprop) Init(1) Optimization
2709 Enable backward propagation of use properties at the SSA level.
2712 Common Var(flag_ssa_phiopt) Optimization
2713 Optimize conditional patterns using SSA PHI nodes.
2716 Common Var(flag_stdarg_opt) Init(1) Optimization
2717 Optimize amount of stdarg registers saved to stack at start of function.
2719 fvariable-expansion-in-unroller
2720 Common Var(flag_variable_expansion_in_unroller) Optimization
2721 Apply variable expansion when loops are unrolled.
2724 Common RejectNegative Joined Optimization
2725 -fstack-check=[no|generic|specific] Insert stack checking code into the program.
2728 Common Alias(fstack-check=, specific, no)
2729 Insert stack checking code into the program. Same as -fstack-check=specific.
2731 fstack-clash-protection
2732 Common Var(flag_stack_clash_protection) Optimization
2733 Insert code to probe each page of stack space as it is allocated to protect
2734 from stack-clash style attacks.
2737 Common Var(common_deferred_options) Defer
2739 fstack-limit-register=
2740 Common RejectNegative Joined Var(common_deferred_options) Defer
2741 -fstack-limit-register=<register> Trap if the stack goes past <register>.
2743 fstack-limit-symbol=
2744 Common RejectNegative Joined Var(common_deferred_options) Defer
2745 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.
2748 Common Var(flag_stack_protect, 1) Init(-1) Optimization
2749 Use propolice as a stack protection method.
2751 fstack-protector-all
2752 Common RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
2753 Use a stack protection method for every function.
2755 fstack-protector-strong
2756 Common RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
2757 Use a smart stack protection method for certain functions.
2759 fstack-protector-explicit
2760 Common RejectNegative Var(flag_stack_protect, 4) Optimization
2761 Use stack protection method only for functions with the stack_protect attribute.
2764 Common RejectNegative Var(flag_stack_usage)
2765 Output stack usage information on a per-function basis.
2769 Does nothing. Preserved for backward compatibility.
2771 ; Nonzero if we should do (language-dependent) alias analysis.
2772 ; Typically, this analysis will assume that expressions of certain
2773 ; types do not alias expressions of certain other types. Only used
2774 ; if alias analysis (in general) is enabled.
2776 Common Var(flag_strict_aliasing) Optimization
2777 Assume strict aliasing rules apply.
2781 Treat signed overflow as undefined. Negated as -fwrapv -fwrapv-pointer.
2784 Common Var(flag_sync_libcalls) Init(1)
2785 Implement __atomic operations via libcalls to legacy __sync functions.
2788 Common Var(flag_syntax_only)
2789 Check for syntax errors, then stop.
2792 Common Var(flag_test_coverage)
2793 Create data files needed by \"gcov\".
2796 Common Var(flag_thread_jumps) Optimization
2797 Perform jump threading optimizations.
2800 Common Var(time_report)
2801 Report the time taken by each compiler pass.
2803 ftime-report-details
2804 Common Var(time_report_details)
2805 Record times taken by sub-phases separately.
2808 Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
2809 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model.
2812 Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2815 Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2818 Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2821 Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2824 Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2827 Common Var(flag_toplevel_reorder) Init(2) Optimization
2828 Reorder top level functions, variables, and asms.
2831 Common Var(flag_tracer) Optimization
2832 Perform superblock formation via tail duplication.
2835 Common Var(flag_trampolines) Init(0)
2836 For targets that normally need trampolines for nested functions, always
2837 generate them instead of using descriptors.
2839 ; Zero means that floating-point math operations cannot generate a
2840 ; (user-visible) trap. This is the case, for example, in nonstop
2841 ; IEEE 754 arithmetic.
2843 Common Var(flag_trapping_math) Init(1) Optimization SetByCombined
2844 Assume floating-point operations can trap.
2847 Common Var(flag_trapv) Optimization
2848 Trap for signed overflow in addition, subtraction and multiplication.
2851 Common Var(flag_tree_ccp) Optimization
2852 Enable SSA-CCP optimization on trees.
2855 Common Var(flag_tree_bit_ccp) Optimization
2856 Enable SSA-BIT-CCP optimization on trees.
2860 Does nothing. Preserved for backward compatibility.
2863 Common Var(flag_tree_ch) Optimization
2864 Enable loop header copying on trees.
2866 ftree-coalesce-inlined-vars
2867 Common Ignore RejectNegative
2868 Does nothing. Preserved for backward compatibility.
2871 Common Var(flag_tree_coalesce_vars) Optimization
2872 Enable SSA coalescing of user variables.
2876 Does nothing. Preserved for backward compatibility.
2879 Common Var(flag_tree_copy_prop) Optimization
2880 Enable copy propagation on trees.
2882 ftree-store-copy-prop
2884 Does nothing. Preserved for backward compatibility.
2887 Common Var(flag_tree_cselim) Optimization
2888 Transform condition stores into unconditional ones.
2890 ftree-switch-conversion
2891 Common Var(flag_tree_switch_conversion) Optimization
2892 Perform conversions of switch initializations.
2895 Common Var(flag_tree_dce) Optimization
2896 Enable SSA dead code elimination optimization on trees.
2898 ftree-dominator-opts
2899 Common Var(flag_tree_dom) Optimization
2900 Enable dominator optimizations.
2903 Common Var(flag_tree_tail_merge) Optimization
2904 Enable tail merging on trees.
2907 Common Var(flag_tree_dse) Optimization
2908 Enable dead store elimination.
2911 Common Var(flag_tree_forwprop) Init(1) Optimization
2912 Enable forward propagation on trees.
2915 Common Var(flag_tree_fre) Optimization
2916 Enable Full Redundancy Elimination (FRE) on trees.
2919 Common Var(flag_optimize_strlen) Optimization
2920 Enable string length optimizations on trees.
2922 fisolate-erroneous-paths-dereference
2923 Common Var(flag_isolate_erroneous_paths_dereference) Optimization
2924 Detect paths that trigger erroneous or undefined behavior due to
2925 dereferencing a null pointer. Isolate those paths from the main control
2926 flow and turn the statement with erroneous or undefined behavior into a trap.
2928 fisolate-erroneous-paths-attribute
2929 Common Var(flag_isolate_erroneous_paths_attribute) Optimization
2930 Detect paths that trigger erroneous or undefined behavior due to a null value
2931 being used in a way forbidden by a returns_nonnull or nonnull
2932 attribute. Isolate those paths from the main control flow and turn the
2933 statement with erroneous or undefined behavior into a trap.
2935 ftree-loop-distribution
2936 Common Var(flag_tree_loop_distribution) Optimization
2937 Enable loop distribution on trees.
2939 ftree-loop-distribute-patterns
2940 Common Var(flag_tree_loop_distribute_patterns) Optimization
2941 Enable loop distribution for patterns transformed into a library call.
2944 Common Var(flag_tree_loop_im) Init(1) Optimization
2945 Enable loop invariant motion on trees.
2948 Common Alias(floop-nest-optimize)
2949 Enable loop nest transforms. Same as -floop-nest-optimize.
2952 Common Var(flag_tree_loop_ivcanon) Init(1) Optimization
2953 Create canonical induction variables in loops.
2956 Common Var(flag_tree_loop_optimize) Init(1) Optimization
2957 Enable loop optimizations on tree level.
2959 ftree-parallelize-loops=
2960 Common Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
2961 -ftree-parallelize-loops=<number> Enable automatic parallelization of loops.
2964 Common Var(flag_tree_phiprop) Init(1) Optimization
2965 Enable hoisting loads from conditional pointers.
2968 Common Var(flag_tree_pre) Optimization
2969 Enable SSA-PRE optimization on trees.
2972 Common Var(flag_tree_partial_pre) Optimization
2973 In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
2976 Common Var(flag_tree_pta) Optimization
2977 Perform function-local points-to analysis on trees.
2980 Common Var(flag_tree_reassoc) Init(1) Optimization
2981 Enable reassociation on tree level.
2985 Does nothing. Preserved for backward compatibility.
2988 Common Var(flag_tree_sink) Optimization
2989 Enable SSA code sinking on trees.
2992 Common Var(flag_tree_slsr) Optimization
2993 Perform straight-line strength reduction.
2996 Common Var(flag_tree_sra) Optimization
2997 Perform scalar replacement of aggregates.
3000 Common Var(flag_tree_ter) Optimization
3001 Replace temporary expressions in the SSA->normal pass.
3004 Common Var(flag_tree_live_range_split) Optimization
3005 Perform live range splitting during the SSA->normal pass.
3008 Common Var(flag_tree_vrp) Init(0) Optimization
3009 Perform Value Range Propagation on trees.
3012 Common Var(flag_split_paths) Init(0) Optimization
3013 Split paths leading to loop backedges.
3015 funconstrained-commons
3016 Common Var(flag_unconstrained_commons) Optimization
3017 Assume common declarations may be overridden with ones with a larger
3021 Common Var(flag_unit_at_a_time) Init(1)
3022 Compile whole compilation unit at a time.
3025 Common Var(flag_unreachable_traps) Optimization
3026 Trap on __builtin_unreachable instead of using it for optimization.
3029 Common Var(flag_unroll_loops) Optimization EnabledBy(funroll-all-loops)
3030 Perform loop unrolling when iteration count is known.
3033 Common Var(flag_unroll_all_loops) Optimization
3034 Perform loop unrolling for all loops.
3036 funroll-completely-grow-size
3037 Undocumented Var(flag_cunroll_grow_size) Optimization
3038 ; Internal undocumented flag, allow size growth during complete unrolling
3040 ; Nonzero means that loop optimizer may assume that the induction variables
3041 ; that control loops do not overflow and that the loops with nontrivial
3042 ; exit condition are not infinite
3043 funsafe-loop-optimizations
3045 Does nothing. Preserved for backward compatibility.
3048 Common Var(flag_associative_math) SetByCombined Optimization
3049 Allow optimization for floating-point arithmetic which may change the
3050 result of the operation due to rounding.
3053 Common Var(flag_reciprocal_math) SetByCombined Optimization
3054 Same as -fassociative-math for expressions which include division.
3056 ; Nonzero means that unsafe floating-point math optimizations are allowed
3057 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
3058 ; are allowed to assume that their arguments and results are "normal"
3059 ; (e.g., nonnegative for SQRT).
3060 funsafe-math-optimizations
3061 Common Var(flag_unsafe_math_optimizations) Optimization SetByCombined
3062 Allow math optimizations that may violate IEEE or ISO standards.
3065 Common Var(flag_unswitch_loops) Optimization
3066 Perform loop unswitching.
3069 Common Var(flag_split_loops) Optimization
3070 Perform loop splitting.
3072 fversion-loops-for-strides
3073 Common Var(flag_version_loops_for_strides) Optimization
3074 Version loops based on whether indices have a stride of one.
3077 Common Var(flag_unwind_tables) Optimization
3078 Just generate unwind tables for exception handling.
3081 Common Driver Negative(fuse-ld=gold)
3082 Use the bfd linker instead of the default linker.
3085 Common Driver Negative(fuse-ld=bfd)
3086 Use the gold linker instead of the default linker.
3089 Common Driver Negative(fuse-ld=lld)
3090 Use the lld LLVM linker instead of the default linker.
3093 Common Driver Negative(fuse-ld=mold)
3094 Use the Modern linker (MOLD) linker instead of the default linker.
3097 Common Undocumented Var(flag_use_linker_plugin)
3099 ; Positive if we should track variables, negative if we should run
3100 ; the var-tracking pass only to discard debug annotations, zero if
3101 ; we're not to run it.
3103 Common Var(flag_var_tracking) PerFunction EnabledBy(fvar-tracking-uninit)
3104 Perform variable tracking.
3106 ; Positive if we should track variables at assignments, negative if
3107 ; we should run the var-tracking pass only to discard debug
3109 fvar-tracking-assignments
3110 Common Var(flag_var_tracking_assignments) PerFunction
3111 Perform variable tracking by annotating assignments.
3113 ; Nonzero if we should toggle flag_var_tracking_assignments after
3114 ; processing options and computing its default. */
3115 fvar-tracking-assignments-toggle
3116 Common Var(flag_var_tracking_assignments_toggle) PerFunction
3117 Toggle -fvar-tracking-assignments.
3119 ; Positive if we should track uninitialized variables, negative if
3120 ; we should run the var-tracking pass only to discard debug
3122 fvar-tracking-uninit
3123 Common Var(flag_var_tracking_uninit) PerFunction
3124 Perform variable tracking and also tag variables that are uninitialized.
3126 ; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
3128 Common Var(flag_tree_vectorize) Optimization
3129 Enable vectorization on trees.
3131 ftree-vectorizer-verbose=
3132 Common Joined RejectNegative Ignore
3133 Does nothing. Preserved for backward compatibility.
3135 ftree-loop-vectorize
3136 Common Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
3137 Enable loop vectorization on trees.
3140 Common Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
3141 Enable basic block vectorization (SLP) on trees.
3144 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
3145 -fvect-cost-model=[unlimited|dynamic|cheap|very-cheap] Specifies the cost model for vectorization.
3148 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
3149 -fsimd-cost-model=[unlimited|dynamic|cheap|very-cheap] Specifies the vectorization cost model for code marked with a simd directive.
3152 Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
3155 Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
3158 Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
3161 Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
3164 Enum(vect_cost_model) String(very-cheap) Value(VECT_COST_MODEL_VERY_CHEAP)
3167 Common Alias(fvect-cost-model=,dynamic,unlimited)
3168 Enables the dynamic vectorizer cost model. Preserved for backward compatibility.
3170 ftree-vect-loop-version
3172 Does nothing. Preserved for backward compatibility.
3175 Common Var(flag_tree_scev_cprop) Init(1) Optimization
3176 Enable copy propagation of scalar-evolution information.
3178 ftrivial-auto-var-init=
3179 Common Joined RejectNegative Enum(auto_init_type) Var(flag_auto_var_init) Init(AUTO_INIT_UNINITIALIZED) Optimization
3180 -ftrivial-auto-var-init=[uninitialized|pattern|zero] Add initializations to automatic variables.
3183 Name(auto_init_type) Type(enum auto_init_type) UnknownError(unrecognized automatic variable initialization type %qs)
3186 Enum(auto_init_type) String(uninitialized) Value(AUTO_INIT_UNINITIALIZED)
3189 Enum(auto_init_type) String(pattern) Value(AUTO_INIT_PATTERN)
3192 Enum(auto_init_type) String(zero) Value(AUTO_INIT_ZERO)
3194 ; -fverbose-asm causes extra commentary information to be produced in
3195 ; the generated assembly code (to make it more readable). This option
3196 ; is generally only of use to those who actually need to read the
3197 ; generated assembly code (perhaps while debugging the compiler itself).
3198 ; -fno-verbose-asm, the default, causes the extra information
3199 ; to not be added and is useful when comparing two assembler files.
3201 Common Var(flag_verbose_asm)
3202 Add extra commentary to assembler output.
3205 Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
3206 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility.
3209 Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
3212 Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
3215 Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
3218 Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
3221 Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
3224 Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
3225 Validate vtable pointers before using them.
3228 Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
3231 Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
3234 Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
3237 Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
3240 Common Var(flag_vtv_counts)
3241 Output vtable verification counters.
3244 Common Var(flag_vtv_debug)
3245 Output vtable verification pointer sets information.
3248 Common Var(flag_value_profile_transformations) Optimization
3249 Use expression value profiles in optimizations.
3252 Common Var(flag_web) Optimization EnabledBy(funroll-loops)
3253 Construct webs and split unrelated uses of single variable.
3255 ftree-builtin-call-dce
3256 Common Var(flag_tree_builtin_call_dce) Init(0) Optimization
3257 Enable conditional dead code elimination for builtin calls.
3260 Common Var(flag_whole_program) Init(0)
3261 Perform whole program optimizations.
3264 Common Var(flag_wrapv_pointer) Optimization
3265 Assume pointer overflow wraps around.
3268 Common Var(flag_wrapv) Optimization
3269 Assume signed arithmetic overflow wraps around.
3271 fzero-initialized-in-bss
3272 Common Var(flag_zero_initialized_in_bss) Init(1)
3273 Put zero initialized data in the bss section.
3275 fzero-call-used-regs=
3276 Common RejectNegative Joined
3277 Clear call-used registers upon function return.
3280 Common Driver RejectNegative JoinedOrMissing
3281 Generate debug information in default format.
3284 Common Driver Var(dwarf2out_as_loc_support)
3285 Assume assembler support for (DWARF2+) .loc directives.
3288 Common Driver Var(dwarf2out_as_locview_support)
3289 Assume assembler support for view in (DWARF2+) .loc directives.
3292 Common Driver WarnRemoved
3293 Does nothing. Preserved for backward compatibility.
3296 Common Driver WarnRemoved
3297 Does nothing. Preserved for backward compatibility.
3300 Common Driver WarnRemoved
3301 Does nothing. Preserved for backward compatibility.
3304 Common Driver WarnRemoved
3305 Does nothing. Preserved for backward compatibility.
3308 Common Driver Var(debug_column_info,1) Init(1)
3309 Record DW_AT_decl_column and DW_AT_call_column in DWARF.
3311 ; The CTF generation process feeds off DWARF dies. This option implicitly
3312 ; updates the debug_info_level to DINFO_LEVEL_NORMAL.
3314 Common Driver RejectNegative JoinedOrMissing
3315 Generate CTF debug information at default level.
3318 Common Driver RejectNegative JoinedOrMissing
3319 Generate BTF debug information at default level.
3322 Common Driver JoinedOrMissing Negative(gdwarf-)
3323 Generate debug information in default version of DWARF format.
3326 Common Driver Joined UInteger Var(dwarf_version) Init(5) Negative(gstabs)
3327 Generate debug information in DWARF v2 (or later) format.
3330 Common Driver Var(dwarf_offset_size,4) Init(4) RejectNegative
3331 Use 32-bit DWARF format when emitting DWARF debug information.
3334 Common Driver Var(dwarf_offset_size,8) RejectNegative
3335 Use 64-bit DWARF format when emitting DWARF debug information.
3338 Common Driver JoinedOrMissing
3339 Generate debug information in default extended format.
3342 Common Driver Var(debug_inline_points)
3343 Generate extended entry point information for inlined functions.
3345 ginternal-reset-location-views
3346 Common Driver Var(debug_internal_reset_location_views) Init(2)
3347 Compute locview reset points based on insn length estimates.
3350 RejectNegative Joined Undocumented
3351 ; Catch the gno- prefix, so it doesn't backtrack to g<level>.
3354 Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
3355 Don't generate DWARF pubnames and pubtypes sections.
3358 Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
3359 Generate DWARF pubnames and pubtypes sections.
3362 Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
3363 Generate DWARF pubnames and pubtypes sections with GNU extensions.
3365 grecord-gcc-switches
3366 Common Driver Var(dwarf_record_gcc_switches) Init(1)
3367 Record gcc command line switches in DWARF DW_AT_producer.
3370 Common Driver Var(dwarf_split_debug_info) Init(0)
3371 Generate debug information in separate .dwo files.
3374 Common Driver JoinedOrMissing Negative(gstabs+)
3375 Generate debug information in STABS format.
3378 Common Driver JoinedOrMissing Negative(gvms)
3379 Generate debug information in extended STABS format.
3381 gstatement-frontiers
3382 Common Driver Var(debug_nonbind_markers_p) PerFunction
3383 Emit progressive recommended breakpoint locations.
3386 Common Driver Var(dwarf_strict) Init(0)
3387 Don't emit DWARF additions beyond selected version.
3390 Common Driver Var(flag_describe_dies) Init(0)
3391 Add description attributes to some DWARF DIEs that have no name attribute.
3394 Common Driver Var(flag_gtoggle)
3395 Toggle debug information generation.
3397 gvariable-location-views
3398 Common Driver Var(debug_variable_location_views, 1)
3399 Augment variable location lists with progressive views.
3401 gvariable-location-views=incompat5
3402 Common Driver RejectNegative Var(debug_variable_location_views, -1) Init(2)
3405 Common Driver JoinedOrMissing Negative(gxcoff)
3406 Generate debug information in VMS format.
3409 Common Driver JoinedOrMissing Negative(gxcoff+)
3410 Generate debug information in XCOFF format.
3413 Common Driver JoinedOrMissing Negative(gdwarf)
3414 Generate debug information in extended XCOFF format.
3417 Name(compressed_debug_sections) Type(int)
3419 ; Since -gz= is completely handled in specs, the values aren't used and we
3420 ; assign arbitrary constants.
3422 Enum(compressed_debug_sections) String(none) Value(0)
3425 Enum(compressed_debug_sections) String(zlib) Value(1)
3428 Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
3432 Generate compressed debug sections.
3435 Common Driver RejectNegative Joined Enum(compressed_debug_sections)
3436 -gz=<format> Generate compressed debug sections in format <format>.
3439 Driver Joined Separate
3442 Common Joined Var(plugindir_string) Init(0)
3443 -iplugindir=<dir> Set <dir> to be the default plugin directory.
3446 Common Joined Separate RejectDriver Var(imultiarch) Init(0)
3447 -imultiarch <dir> Set <dir> to be the multiarch include subdirectory.
3450 Driver Joined Separate
3455 no-canonical-prefixes
3474 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
3475 -o <file> Place output into <file>.
3478 Common Var(profile_flag)
3479 Enable function profiling.
3482 Driver Var(pass_exit_codes)
3485 Common Alias(Wpedantic)
3488 Common Var(flag_pedantic_errors)
3489 Like -pedantic but issue them as errors.
3495 Driver Var(use_pipes)
3498 Driver JoinedOrMissing Var(print_file_name)
3500 print-libgcc-file-name
3503 print-multi-directory
3504 Driver Var(print_multi_directory)
3507 Driver Var(print_multi_lib)
3509 print-multi-os-directory
3510 Driver Var(print_multi_os_directory)
3513 Driver Var(print_multiarch)
3516 Driver JoinedOrMissing Var(print_prog_name)
3519 Driver Var(print_search_dirs)
3522 Driver Var(print_sysroot)
3524 print-sysroot-headers-suffix
3525 Driver Var(print_sysroot_headers_suffix)
3528 Common Var(quiet_flag) RejectDriver
3529 Do not display functions compiled or elapsed time.
3547 Driver Var(report_times)
3550 Driver JoinedOrMissing
3553 Driver Joined Separate
3557 ; C option, but driver must not handle as "-u ndef".
3560 Common Driver Var(verbose_flag)
3561 Enable verbose output.
3564 Common Var(version_flag) RejectDriver
3565 Display the compiler's version.
3568 Common Var(inhibit_warnings)
3572 Driver Separate Var(wrapper_string)
3575 Driver Joined Separate
3578 Driver RejectNegative Negative(static-pie)
3579 Create a shared library.
3585 Driver Separate Alias(specs=)
3598 ; Documented for Fortran, but always accepted by driver.
3602 ; Documented for D, but always accepted by driver.
3609 ; Documented for Go, but always accepted by driver.
3630 Driver RejectNegative Negative(shared)
3631 Don't create a dynamically linked position independent executable.
3634 Driver RejectNegative Negative(no-pie)
3635 Create a dynamically linked position independent executable.
3638 Driver RejectNegative Negative(pie)
3639 Create a static position independent executable.
3642 Driver Joined Separate
3645 Common Var(flag_ipa_ra) Optimization
3646 Use caller save register across calls if possible.
3648 ; This comment is to ensure we retain the blank line above.