Revise -mdisable-fpregs option and add new -msoft-mult option
[official-gcc.git] / gcc / common.opt
blobc4a77f65aa22c6d72bffddebaafbce63cb2b575c
1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003-2021 Free Software Foundation, Inc.
5 ; This file is part of GCC.
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
10 ; version.
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
15 ; for more details.
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.
25 Variable
26 int target_flags
28 Variable
29 int optimize
31 Variable
32 int optimize_size
34 Variable
35 int optimize_debug
37 ; Not used directly to control optimizations, only to save -Ofast
38 ; setting for "optimize" attributes.
39 Variable
40 int optimize_fast
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.
46 Variable
47 bool in_lto_p = false
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.
53 Variable
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.
59 Variable
60 int flag_complex_method = 1
62 Variable
63 int flag_default_complex_method = 1
65 ; Language specific warning pass for unused results.
66 Variable
67 bool flag_warn_unused_result = false
69 ; Nonzero if we should write GIMPLE bytecode for link-time optimization.
70 Variable
71 int flag_generate_lto
73 ; Nonzero if we should write GIMPLE bytecode for offload compilation.
74 Variable
75 int flag_generate_offload = 0
77 ; Nonzero means we should be saving declaration info into a .X file.
78 Variable
79 int flag_gen_aux_info = 0
81 ; Nonzero if we are compiling code for a shared library, zero for
82 ; executable.
83 Variable
84 int flag_shlib
86 ; These two are really VEC(char_p,heap) *.
88 Variable
89 void *flag_instrument_functions_exclude_functions
91 Variable
92 void *flag_instrument_functions_exclude_files
94 ; Generic structs (e.g. templates not explicitly specialized)
95 ; may not have a compilation unit associated with them, and so
96 ; may need to be treated differently from ordinary structs.
98 ; Structs only handled by reference (indirectly), will also usually
99 ; not need as much debugging information.
101 Variable
102 enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
104 Variable
105 enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
107 ; True if we should exit after parsing options.
108 Variable
109 bool exit_after_options
111 ; Type(s) of debugging information we are producing (if any).  See
112 ; flag-types.h for the definitions of the different possible types of
113 ; debugging information.
114 Variable
115 uint32_t write_symbols = NO_DEBUG
117 ; Level of debugging information we are producing.  See flag-types.h
118 ; for the definitions of the different possible levels.
119 Variable
120 enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
122 ; Nonzero means use GNU-only extensions in the generated symbolic
123 ; debugging information.  Currently, this only has an effect when
124 ; write_symbols is set to DBX_DEBUG or XCOFF_DEBUG.
125 Variable
126 bool use_gnu_debug_info_extensions
128 ; Level of CTF debugging information we are producing.  See flag-types.h
129 ; for the definitions of the different possible levels.
130 Variable
131 enum ctf_debug_info_levels ctf_debug_info_level = CTFINFO_LEVEL_NONE
133 ; Original value of maximum field alignment in bytes, specified via
134 ; -fpack-struct=<value>.
135 Variable
136 unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
138 ; Type of stack check.
139 Variable
140 enum stack_check_type flag_stack_check = NO_STACK_CHECK
142 ; True if stack usage information needs to be computed.
143 Variable
144 bool flag_stack_usage_info = false
146 ; -dA causes debug commentary information to be produced in
147 ; the generated assembly code (to make it more readable).  This option
148 ; is generally only of use to those who actually need to read the
149 ; generated assembly code (perhaps while debugging the compiler itself).
150 ; Currently, this switch is only used by dwarf2out.c; however, it is intended
151 ; to be a catchall for printing debug information in the assembler file.
152 Variable
153 int flag_debug_asm
155 ; Balance between GNAT encodings and standard DWARF to emit.
156 Variable
157 enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT
159 ; -dP causes the rtl to be emitted as a comment in assembly.
160 Variable
161 int flag_dump_rtl_in_asm
163 ; Whether -da was passed (used only in handle_common_deferred_options).
164 Variable
165 bool flag_dump_all_passed
167 ; Other flags saying which kinds of debugging dump have been requested.
169 Variable
170 int rtl_dump_and_exit
172 Variable
173 int flag_print_asm_name
175 ; Name of top-level original source file (what was input to cpp).
176 ; This comes from the #-command at the beginning of the actual input.
177 ; If there isn't any there, then this is the cc1 input file name.
178 Variable
179 const char *main_input_filename
181 ; Pointer to base name in main_input_filename, with directories and a
182 ; single final extension removed, and the length of this base
183 ; name.
185 Variable
186 const char *main_input_basename
188 Variable
189 int main_input_baselength
191 ; The base name used for auxiliary output files.
192 ; dump_base_name minus dump_base_ext.
194 Variable
195 const char *aux_base_name
197 ; Which options have been printed by --help.
198 Variable
199 char *help_printed
201 ; Which enums have been printed by --help.  0 = not printed, no
202 ; relevant options seen, 1 = relevant option seen, not yet printed, 2
203 ; = printed.
204 Variable
205 char *help_enum_printed
207 ; The number of columns for --help output.
208 Variable
209 unsigned int help_columns
211 ; Whether this options structure has been through finish_options
212 Variable
213 bool flag_opts_finished
215 ; What the sanitizer should instrument
216 Variable
217 unsigned int flag_sanitize
219 ; What sanitizers should recover from errors
220 Variable
221 unsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS | SANITIZE_KERNEL_HWADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN)
223 ; What the coverage sanitizers should instrument
224 Variable
225 unsigned int flag_sanitize_coverage
227 ; Flag whether a prefix has been added to dump_base_name
228 Variable
229 bool dump_base_name_prefixed = false
231 ; What subset of registers should be zeroed on function return
232 Variable
233 unsigned int flag_zero_call_used_regs
236 Driver
238 -assemble
239 Driver Alias(S)
241 -compile
242 Driver Alias(c)
244 -completion=
245 Common Driver Joined Undocumented
246 Provide bash completion for options starting with provided string.
248 -coverage
249 Driver Alias(coverage)
251 -debug
252 Common Alias(g)
254 -dump
255 Common Separate Alias(d)
257 -dump=
258 Common Joined Alias(d)
260 -dumpbase
261 Driver Common Separate Alias(dumpbase)
263 -dumpbase-ext
264 Driver Common Separate Alias(dumpbase-ext)
266 -dumpdir
267 Driver Common Separate Alias(dumpdir)
269 -entry
270 Driver Separate Alias(e)
272 -entry=
273 Driver Joined Alias(e)
275 -extra-warnings
276 Common Warning Alias(Wextra)
278 -for-assembler
279 Driver Separate Alias(Xassembler)
281 -for-assembler=
282 Driver JoinedOrMissing Alias(Xassembler)
284 -for-linker
285 Driver Separate Alias(Xlinker)
287 -for-linker=
288 Driver JoinedOrMissing Alias(Xlinker)
290 -force-link
291 Driver Separate Alias(u)
293 -force-link=
294 Driver Joined Alias(u)
296 -help
297 Common Driver Var(help_flag)
298 Display this information.
300 -help=
301 Common Driver Joined
302 --help=<class>  Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params.
304 -language
305 Driver Separate Alias(x)
307 -language=
308 Driver Joined Alias(x)
310 -library-directory
311 Driver Separate Alias(L)
313 -library-directory=
314 Driver Joined Alias(L)
316 -no-canonical-prefixes
317 Driver Alias(no-canonical-prefixes)
319 -no-standard-libraries
320 Driver Alias(nostdlib)
322 -no-sysroot-suffix
323 Driver Var(no_sysroot_suffix)
325 -no-warnings
326 Common Alias(w)
328 -optimize
329 Common Alias(O)
331 -output
332 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
334 -output=
335 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
337 -pass-exit-codes
338 Driver Alias(pass-exit-codes)
340 -pedantic
341 Common Alias(Wpedantic)
343 -pedantic-errors
344 Common Alias(pedantic-errors)
346 -pie
347 Driver Alias(pie)
349 -static-pie
350 Driver Alias(static-pie)
352 -pipe
353 Driver Alias(pipe)
355 -prefix
356 Driver Separate Alias(B)
358 -prefix=
359 Driver JoinedOrMissing Alias(B)
361 -preprocess
362 Driver Alias(E)
364 -print-file-name
365 Driver Separate Alias(print-file-name=)
367 -print-file-name=
368 Driver JoinedOrMissing Alias(print-file-name=)
370 -print-libgcc-file-name
371 Driver Alias(print-libgcc-file-name)
373 -print-multi-directory
374 Driver Alias(print-multi-directory)
376 -print-multi-lib
377 Driver Alias(print-multi-lib)
379 -print-multi-os-directory
380 Driver Alias(print-multi-os-directory)
382 -print-multiarch
383 Driver Alias(print-multiarch)
385 -print-prog-name
386 Driver Separate Alias(print-prog-name=)
388 -print-prog-name=
389 Driver JoinedOrMissing Alias(print-prog-name=)
391 -print-search-dirs
392 Driver Alias(print-search-dirs)
394 -print-sysroot
395 Driver Alias(print-sysroot)
397 -print-sysroot-headers-suffix
398 Driver Alias(print-sysroot-headers-suffix)
400 -profile
401 Common Alias(p)
403 -save-temps
404 Driver Alias(save-temps)
406 -shared
407 Driver Alias(shared)
409 -specs
410 Driver Separate Alias(specs=)
412 -specs=
413 Driver Joined Alias(specs=)
415 -static
416 Driver Alias(static)
418 -symbolic
419 Driver Alias(symbolic)
421 -target-help
422 Common Driver
423 Alias for --help=target.
425 -time
426 Driver Alias(time)
428 -verbose
429 Driver Alias(v)
431 ;; The driver used to convert options such as --help into forms such
432 ;; as -fhelp; the following four entries are for compatibility with
433 ;; any direct uses of those (undocumented) -f forms
434 fhelp
435 Common Driver Alias(-help)
437 fhelp=
438 Common Driver Joined Alias(-help=)
440 ftarget-help
441 Common Driver Alias(-target-help)
443 fversion
444 Common Driver Alias(-version)
446 -sysroot
447 Driver Separate Alias(-sysroot=)
449 -sysroot=
450 Driver JoinedOrMissing
452 -version
453 Common Driver
456 Driver Joined Separate
459 Driver
462 Driver Joined Separate
465 Driver
468 Common JoinedOrMissing Optimization
469 -O<number>      Set optimization level to <number>.
472 Common Optimization
473 Optimize for space rather than speed.
475 Ofast
476 Common Optimization
477 Optimize for speed disregarding exact standards compliance.
480 Common Optimization
481 Optimize for debugging experience rather than speed or size.
484 Driver
487 Driver Negative(Qy)
490 Driver Negative(Qn)
493 Driver Joined Separate
496 Driver
499 Driver Joined Separate
501 Tbss
502 Driver Separate
504 Tbss=
505 Driver Joined
507 Tdata
508 Driver Separate
510 Tdata=
511 Driver Joined
513 Ttext
514 Driver Separate
516 Ttext=
517 Driver Joined
520 Common RejectNegative Warning Alias(Wextra)
521 This switch is deprecated; use -Wextra instead.
524 Driver JoinedOrMissing RejectNegative
527 Driver JoinedOrMissing RejectNegative
530 Driver JoinedOrMissing RejectNegative
532 Waggregate-return
533 Common Var(warn_aggregate_return) Warning
534 Warn about returning structures, unions or arrays.
536 Waggressive-loop-optimizations
537 Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
538 Warn if a loop with constant number of iterations triggers undefined behavior.
540 Warray-bounds
541 Common Var(warn_array_bounds) Warning
542 Warn if an array is accessed out of bounds.
544 Warray-bounds=
545 Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2)
546 Warn if an array is accessed out of bounds.
548 Wattributes
549 Common Var(warn_attributes) Init(1) Warning
550 Warn about inappropriate attribute usage.
552 Wattribute-alias
553 Common Alias(Wattribute_alias=, 1, 0) Warning
554 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
556 Wattribute-alias=
557 Common Joined RejectNegative UInteger Var(warn_attribute_alias) Init(1) Warning IntegerRange(0, 2)
558 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
560 Wcannot-profile
561 Common Var(warn_cannot_profile) Init(1) Warning
562 Warn when profiling instrumentation was requested, but could not be applied to
563 a certain function.
565 Wcast-align
566 Common Var(warn_cast_align) Warning
567 Warn about pointer casts which increase alignment.
569 Wcast-align=strict
570 Common Var(warn_cast_align,2) Warning
571 Warn about pointer casts which increase alignment.
573 Wcpp
574 Common Var(warn_cpp) Init(1) Warning
575 Warn when a #warning directive is encountered.
577 Wattribute-warning
578 Common Var(warn_attribute_warning) Init(1) Warning
579 Warn about uses of __attribute__((warning)) declarations.
581 Wdeprecated
582 Common Var(warn_deprecated) Init(1) Warning
583 Warn if a deprecated compiler feature, class, method, or field is used.
585 Wdeprecated-declarations
586 Common Var(warn_deprecated_decl) Init(1) Warning
587 Warn about uses of __attribute__((deprecated)) declarations.
589 Wdisabled-optimization
590 Common Var(warn_disabled_optimization) Warning
591 Warn when an optimization pass is disabled.
593 Werror
594 Common Var(warnings_are_errors)
595 Treat all warnings as errors.
597 Werror=
598 Common Joined
599 Treat specified warning as error.
601 Wextra
602 Common Var(extra_warnings) Warning
603 Print extra (possibly unwanted) warnings.
605 Wfatal-errors
606 Common Var(flag_fatal_errors)
607 Exit on the first error occurred.
609 Wframe-larger-than=
610 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_frame_larger_than_size) Init(HOST_WIDE_INT_MAX)
611 -Wframe-larger-than=<byte-size> Warn if a function's stack frame requires in excess of <byte-size>.
613 Wno-frame-larger-than
614 Common Alias(Wframe-larger-than=,18446744073709551615EiB,none) Warning
615 Disable -Wframe-larger-than= warning.  Equivalent to -Wframe-larger-than=<SIZE_MAX> or larger.
617 Wfree-nonheap-object
618 Common Var(warn_free_nonheap_object) Init(1) Warning
619 Warn when attempting to free a non-heap object.
621 Whsa
622 Common Ignore Warning
623 Does nothing.  Preserved for backward compatibility.
625 Wimplicit-fallthrough
626 Common Alias(Wimplicit-fallthrough=,3,0) Warning
628 Wimplicit-fallthrough=
629 Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5)
630 Warn when a switch case falls through.
632 Winline
633 Common Var(warn_inline) Warning Optimization
634 Warn when an inlined function cannot be inlined.
636 Winvalid-memory-model
637 Common Var(warn_invalid_memory_model) Init(1) Warning
638 Warn when an atomic memory model parameter is known to be outside the valid range.
640 Wlarger-than-
641 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
643 Wlarger-than=
644 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_larger_than_size) Init(HOST_WIDE_INT_MAX)
645 -Wlarger-than=<byte-size>       Warn if an object's size exceeds <byte-size>.
647 Wno-larger-than
648 Common Alias(Wlarger-than=,18446744073709551615EiB,none) Warning
649 Disable -Wlarger-than= warning.  Equivalent to -Wlarger-than=<SIZE_MAX> or larger.
651 Wnonnull-compare
652 Var(warn_nonnull_compare) Warning
653 Warn if comparing pointer parameter with nonnull attribute with NULL.
655 Wnull-dereference
656 Common Var(warn_null_dereference) Warning
657 Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
659 Wunsafe-loop-optimizations
660 Common Ignore Warning
661 Does nothing. Preserved for backward compatibility.
663 Wmissing-noreturn
664 Common Warning Alias(Wsuggest-attribute=noreturn)
666 Wodr
667 Common Var(warn_odr_violations) Init(1) Warning
668 Warn about some C++ One Definition Rule violations during link time optimization.
670 Woverflow
671 Common Var(warn_overflow) Init(1) Warning
672 Warn about overflow in arithmetic expressions.
674 Wlto-type-mismatch
675 Common Var(warn_lto_type_mismatch) Init(1) Warning
676 During link time optimization warn about mismatched types of global declarations.
678 Wpacked
679 Common Var(warn_packed) Warning
680 Warn when the packed attribute has no effect on struct layout.
682 Wpadded
683 Common Var(warn_padded) Warning
684 Warn when padding is required to align structure members.
686 Wpedantic
687 Common Var(pedantic) Init(0) Warning
688 Issue warnings needed for strict compliance to the standard.
690 Wreturn-local-addr
691 Common Var(warn_return_local_addr) Init(1) Warning
692 Warn about returning a pointer/reference to a local or temporary variable.
694 Wshadow
695 Common Var(warn_shadow) Warning
696 Warn when one variable shadows another.  Same as -Wshadow=global.
698 Wshadow=global
699 Common Warning Alias(Wshadow)
700 Warn when one variable shadows another (globally).
702 Wshadow=local
703 Common Var(warn_shadow_local) Warning EnabledBy(Wshadow)
704 Warn when one local variable shadows another local variable or parameter.
706 Wshadow-local
707 Common Warning Undocumented Alias(Wshadow=local)
709 Wshadow=compatible-local
710 Common Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local)
711 Warn when one local variable shadows another local variable or parameter of compatible type.
713 Wshadow-compatible-local
714 Common Warning Undocumented Alias(Wshadow=compatible-local)
716 Wstack-protector
717 Common Var(warn_stack_protect) Warning
718 Warn when not issuing stack smashing protection for some reason.
720 Wstack-usage=
721 Common Joined RejectNegative Host_Wide_Int ByteSize Var(warn_stack_usage) Warning Init(HOST_WIDE_INT_MAX)
722 -Wstack-usage=<byte-size>       Warn if stack usage might exceed <byte-size>.
724 Wno-stack-usage
725 Common Alias(Wstack-usage=,18446744073709551615EiB,none) Warning
726 Disable Wstack-usage= warning.  Equivalent to Wstack-usage=<SIZE_MAX> or larger.
728 Wstrict-aliasing
729 Common Warning
730 Warn about code which might break strict aliasing rules.
732 Wstrict-aliasing=
733 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
734 Warn about code which might break strict aliasing rules.
736 Wstrict-overflow
737 Common Warning
738 Warn about optimizations that assume that signed overflow is undefined.
740 Wstrict-overflow=
741 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
742 Warn about optimizations that assume that signed overflow is undefined.
744 Wsuggest-attribute=cold
745 Common Var(warn_suggest_attribute_cold) Warning
746 Warn about functions which might be candidates for __attribute__((cold)).
748 Wsuggest-attribute=const
749 Common Var(warn_suggest_attribute_const) Warning
750 Warn about functions which might be candidates for __attribute__((const)).
752 Wsuggest-attribute=pure
753 Common Var(warn_suggest_attribute_pure) Warning
754 Warn about functions which might be candidates for __attribute__((pure)).
756 Wsuggest-attribute=noreturn
757 Common Var(warn_suggest_attribute_noreturn) Warning
758 Warn about functions which might be candidates for __attribute__((noreturn)).
760 Wsuggest-attribute=malloc
761 Common Var(warn_suggest_attribute_malloc) Warning
762 Warn about functions which might be candidates for __attribute__((malloc)).
764 Wsuggest-final-types
765 Common Var(warn_suggest_final_types) Warning
766 Warn about C++ polymorphic types where adding final keyword would improve code quality.
768 Wsuggest-final-methods
769 Common Var(warn_suggest_final_methods) Warning
770 Warn about C++ virtual methods where adding final keyword would improve code quality.
772 Wswitch-unreachable
773 Common Var(warn_switch_unreachable) Warning Init(1)
774 Warn about statements between switch's controlling expression and the first
775 case.
777 Wsystem-headers
778 Common Var(warn_system_headers) Warning
779 Do not suppress warnings from system headers.
781 Wtrampolines
782 Common Var(warn_trampolines) Warning
783 Warn whenever a trampoline is generated.
785 Wtype-limits
786 Common Var(warn_type_limits) Warning EnabledBy(Wextra)
787 Warn if a comparison is always true or always false due to the limited range of the data type.
789 Wuninitialized
790 Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
791 Warn about uninitialized automatic variables.
793 Wmaybe-uninitialized
794 Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
795 Warn about maybe uninitialized automatic variables.
797 Wunreachable-code
798 Common Ignore Warning
799 Does nothing. Preserved for backward compatibility.
801 Wunused
802 Common Var(warn_unused) Init(0) Warning
803 Enable all -Wunused- warnings.
805 Wunused-but-set-parameter
806 Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
807 Warn when a function parameter is only set, otherwise unused.
809 Wunused-but-set-variable
810 Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
811 Warn when a variable is only set, otherwise unused.
813 Wunused-function
814 Common Var(warn_unused_function) Warning EnabledBy(Wunused)
815 Warn when a function is unused.
817 Wunused-label
818 Common Var(warn_unused_label) Warning EnabledBy(Wunused)
819 Warn when a label is unused.
821 Wunused-parameter
822 Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
823 Warn when a function parameter is unused.
825 Wunused-value
826 Common Var(warn_unused_value) Warning EnabledBy(Wunused)
827 Warn when an expression value is unused.
829 Wunused-variable
830 Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
831 Warn when a variable is unused.
833 Wcoverage-mismatch
834 Common Var(warn_coverage_mismatch) Init(1) Warning
835 Warn in case profiles in -fprofile-use do not match.
837 Wcoverage-invalid-line-number
838 Common Var(warn_coverage_invalid_linenum) Init(1) Warning
839 Warn in case a function ends earlier than it begins due to an invalid linenum macros.
841 Wmissing-profile
842 Common Var(warn_missing_profile) Init(1) Warning
843 Warn in case profiles in -fprofile-use do not exist.
845 Wvector-operation-performance
846 Common Var(warn_vector_operation_performance) Warning
847 Warn when a vector operation is compiled outside the SIMD.
849 Wtsan
850 Common Var(warn_tsan) Init(1) Warning
851 Warn about unsupported features in ThreadSanitizer.
853 Xassembler
854 Driver Separate
856 Xlinker
857 Driver Separate
859 Xpreprocessor
860 Driver Separate
863 Driver
865 aux-info
866 Common Separate Var(aux_info_file_name)
867 -aux-info <file>        Emit declaration information into <file>.
869 aux-info=
870 Common Joined Alias(aux-info)
872 coverage
873 Driver
876 Driver
879 Common Joined
880 -d<letters>     Enable dumps from specific passes of the compiler.
882 dumpbase
883 Driver Common Separate Var(dump_base_name)
884 -dumpbase <file>        Set the file basename to be used for dumps.
886 dumpbase-ext
887 Driver Common Separate Var(dump_base_ext)
888 -dumpbase-ext .<ext>    Drop a trailing .<ext> from the dump basename to name auxiliary output files.
890 dumpdir
891 Driver Common Separate Var(dump_dir_name)
892 -dumpdir <dir>  Set the directory name to be used for dumps.
894 dumpmachine
895 Driver
897 dumpspecs
898 Driver
900 dumpversion
901 Driver
903 dumpfullversion
904 Driver
907 Driver Joined Separate
909 ; This option has historically been passed down to the linker by an
910 ; accident of a %{e*} spec, so ensure it continues to be passed down
911 ; as a single option.  The supported option for this purpose is
912 ; -rdynamic.  See PR 47390.
913 export-dynamic
914 Driver Undocumented
916 ; The version of the C++ ABI in use.  The following values are allowed:
918 ; 0: The version of the ABI believed most conformant with the C++ ABI
919 ;    specification.  This ABI may change as bugs are discovered and fixed.
920 ;    Therefore, 0 will not necessarily indicate the same ABI in different
921 ;    versions of G++.
923 ; 1: The version of the ABI first used in G++ 3.2.  No longer selectable.
925 ; 2: The version of the ABI first used in G++ 3.4, and the default
926 ;    until GCC 4.9.
928 ; 3: The version of the ABI that fixes the missing underscore
929 ;    in template non-type arguments of pointer type.
931 ; 4: The version of the ABI that introduces unambiguous mangling of
932 ;    vector types.  First selectable in G++ 4.5.
934 ; 5: The version of the ABI that ignores attribute const/noreturn
935 ;    in function pointer mangling, and corrects mangling of decltype and
936 ;    function parameters used in other parameters and the return type.
937 ;    First selectable in G++ 4.6.
939 ; 6: The version of the ABI that doesn't promote scoped enums to int and
940 ;    changes the mangling of template argument packs, const/static_cast,
941 ;    prefix ++ and --, and a class scope function used as a template
942 ;    argument.
943 ;    First selectable in G++ 4.7.
945 ; 7: The version of the ABI that treats nullptr_t as a builtin type and
946 ;    corrects the mangling of lambdas in default argument scope.
947 ;    First selectable in G++ 4.8.
949 ; 8: The version of the ABI that corrects the substitution behavior of
950 ;    function types with function-cv-qualifiers.
951 ;    First selectable in G++ 4.9 and default in G++ 5.
953 ; 9: The version of the ABI that corrects the alignment of nullptr_t.
954 ;    First selectable and default in G++ 5.2.
956 ; 10: The version of the ABI that mangles attributes that affect type
957 ;     identity, such as ia32 calling convention attributes (stdcall, etc.)
958 ;     Default in G++ 6 (set in c_common_post_options).
960 ; 11: The version of the ABI that corrects mangling of sizeof... expressions
961 ;     and introduces new inheriting constructor handling.
962 ;     Default in G++ 7.
964 ; 12: Corrects the calling convention for classes with only deleted copy/move
965 ;     constructors and changes passing/returning of empty records.
966 ;     Default in G++ 8.1.
968 ; 13: Fixes the accidental change in 12 to the calling convention for classes
969 ;     with deleted copy constructor and trivial move constructor.
970 ;     Default in G++ 8.2.
972 ; 14: Corrects the mangling of nullptr expression.
973 ;     Default in G++ 10.
975 ; 15: Corrects G++ 10 ABI tag regression [PR98481].
976 ;     Available, but not default, in G++ 10.3.
978 ; 16: Changes the mangling of __alignof__ to be distinct from that of alignof.
979 ;     Adds missing 'on' in mangling of operator names in some cases.
980 ;     Default in G++ 11.
982 ; Additional positive integers will be assigned as new versions of
983 ; the ABI become the default version of the ABI.
984 fabi-version=
985 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
986 The version of the C++ ABI in use.
988 faggressive-loop-optimizations
989 Common Var(flag_aggressive_loop_optimizations) Optimization Init(1)
990 Aggressively optimize loops using language constraints.
992 falign-functions
993 Common Var(flag_align_functions) Optimization
994 Align the start of functions.
996 falign-functions=
997 Common RejectNegative Joined Var(str_align_functions) Optimization
999 flimit-function-alignment
1000 Common Var(flag_limit_function_alignment) Optimization Init(0)
1002 falign-jumps
1003 Common Var(flag_align_jumps) Optimization
1004 Align labels which are only reached by jumping.
1006 falign-jumps=
1007 Common RejectNegative Joined Var(str_align_jumps) Optimization
1009 falign-labels
1010 Common Var(flag_align_labels) Optimization
1011 Align all labels.
1013 falign-labels=
1014 Common RejectNegative Joined Var(str_align_labels) Optimization
1016 falign-loops
1017 Common Var(flag_align_loops) Optimization
1018 Align the start of loops.
1020 falign-loops=
1021 Common RejectNegative Joined Var(str_align_loops) Optimization
1023 fallow-store-data-races
1024 Common Var(flag_store_data_races) Optimization
1025 Allow the compiler to introduce new data races on stores.
1027 fanalyzer
1028 Common Var(flag_analyzer)
1029 Enable static analysis pass.
1031 fargument-alias
1032 Common Ignore
1033 Does nothing. Preserved for backward compatibility.
1035 fargument-noalias
1036 Common Ignore
1037 Does nothing. Preserved for backward compatibility.
1039 fargument-noalias-global
1040 Common Ignore
1041 Does nothing. Preserved for backward compatibility.
1043 fargument-noalias-anything
1044 Common Ignore
1045 Does nothing. Preserved for backward compatibility.
1047 fsanitize=
1048 Common Driver Joined
1049 Select what to sanitize.
1051 fsanitize-coverage=
1052 Common Joined RejectNegative Enum(sanitize_coverage)
1053 Select type of coverage sanitization.
1055 Enum
1056 Name(sanitize_coverage) Type(int)
1058 EnumValue
1059 Enum(sanitize_coverage) String(trace-pc) Value(SANITIZE_COV_TRACE_PC)
1061 EnumValue
1062 Enum(sanitize_coverage) String(trace-cmp) Value(SANITIZE_COV_TRACE_CMP)
1064 fasan-shadow-offset=
1065 Common Joined RejectNegative Var(common_deferred_options) Defer
1066 -fasan-shadow-offset=<number>   Use custom shadow memory offset.
1068 fsanitize-sections=
1069 Common Joined RejectNegative Var(common_deferred_options) Defer
1070 -fsanitize-sections=<sec1,sec2,...>     Sanitize global variables
1071 in user-defined sections.
1073 fsanitize-recover=
1074 Common Joined
1075 After diagnosing undefined behavior attempt to continue execution.
1077 fsanitize-recover
1078 Common
1079 This switch is deprecated; use -fsanitize-recover= instead.
1081 fsanitize-address-use-after-scope
1082 Common Driver Var(flag_sanitize_address_use_after_scope) Init(0)
1084 fsanitize-undefined-trap-on-error
1085 Common Driver Var(flag_sanitize_undefined_trap_on_error) Init(0)
1086 Use trap instead of a library function for undefined behavior sanitization.
1088 fasynchronous-unwind-tables
1089 Common Var(flag_asynchronous_unwind_tables) Optimization
1090 Generate unwind tables that are exact at each instruction boundary.
1092 fauto-inc-dec
1093 Common Var(flag_auto_inc_dec) Init(1) Optimization
1094 Generate auto-inc/dec instructions.
1096 fauto-profile
1097 Common Var(flag_auto_profile)
1098 Use sample profile information for call graph node weights. The default
1099 profile file is fbdata.afdo in 'pwd'.
1101 fauto-profile=
1102 Common Joined RejectNegative Var(auto_profile_file)
1103 Use sample profile information for call graph node weights. The profile
1104 file is specified in the argument.
1106 ; -fcheck-bounds causes gcc to generate array bounds checks.
1107 ; For C, C++ and ObjC: defaults off.
1108 ; For Java: defaults to on.
1109 ; For Fortran: defaults to off.
1110 fbounds-check
1111 Common Var(flag_bounds_check)
1112 Generate code to check bounds before indexing arrays.
1114 fbranch-count-reg
1115 Common Var(flag_branch_on_count_reg) Optimization
1116 Replace add, compare, branch with branch on count register.
1118 fbranch-probabilities
1119 Common Var(flag_branch_probabilities) Optimization
1120 Use profiling information for branch probabilities.
1122 fbranch-target-load-optimize
1123 Common Ignore
1124 Does nothing.  Preserved for backward compatibility.
1126 fbranch-target-load-optimize2
1127 Common Ignore
1128 Does nothing.  Preserved for backward compatibility.
1130 fbtr-bb-exclusive
1131 Common Ignore
1132 Does nothing.  Preserved for backward compatibility.
1134 fcallgraph-info
1135 Common RejectNegative Var(flag_callgraph_info) Init(NO_CALLGRAPH_INFO);
1136 Output callgraph information on a per-file basis.
1138 fcallgraph-info=
1139 Common RejectNegative Joined
1140 Output callgraph information on a per-file basis with decorations.
1142 fcall-saved-
1143 Common Joined RejectNegative Var(common_deferred_options) Defer
1144 -fcall-saved-<register> Mark <register> as being preserved across functions.
1146 fcall-used-
1147 Common Joined RejectNegative Var(common_deferred_options) Defer
1148 -fcall-used-<register>  Mark <register> as being corrupted by function calls.
1150 ; Nonzero for -fcaller-saves: allocate values in regs that need to
1151 ; be saved across function calls, if that produces overall better code.
1152 ; Optional now, so people can test it.
1153 fcaller-saves
1154 Common Var(flag_caller_saves) Optimization
1155 Save registers around function calls.
1157 fcheck-data-deps
1158 Common Ignore
1159 This switch is deprecated; do not use.
1161 fcheck-new
1162 Common Var(flag_check_new)
1163 Check the return value of new in C++.
1165 fchecking
1166 Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0)
1167 Perform internal consistency checkings.
1169 fchecking=
1170 Common Joined RejectNegative UInteger Var(flag_checking)
1171 Perform internal consistency checkings.
1173 fcode-hoisting
1174 Common Var(flag_code_hoisting) Optimization
1175 Enable code hoisting.
1177 fcombine-stack-adjustments
1178 Common Var(flag_combine_stack_adjustments) Optimization
1179 Looks for opportunities to reduce stack adjustments and stack references.
1181 fcommon
1182 Common Var(flag_no_common,0) Init(1)
1183 Put uninitialized globals in the common section.
1185 fcompare-debug
1186 Driver
1187 ; Converted by the driver to -fcompare-debug= options.
1189 fcompare-debug=
1190 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
1191 -fcompare-debug[=<opts>]        Compile with and without e.g. -gtoggle, and compare the final-insns dump.
1193 fcompare-debug-second
1194 Common Driver RejectNegative Var(flag_compare_debug)
1195 Run only the second compilation of -fcompare-debug.
1197 fcompare-elim
1198 Common Var(flag_compare_elim_after_reload) Optimization
1199 Perform comparison elimination after register allocation has finished.
1201 fconserve-stack
1202 Common Var(flag_conserve_stack) Optimization
1203 Do not perform optimizations increasing noticeably stack usage.
1205 fcprop-registers
1206 Common Var(flag_cprop_registers) Optimization
1207 Perform a register copy-propagation optimization pass.
1209 fcrossjumping
1210 Common Var(flag_crossjumping) Optimization
1211 Perform cross-jumping optimization.
1213 fcse-follow-jumps
1214 Common Var(flag_cse_follow_jumps) Optimization
1215 When running CSE, follow jumps to their targets.
1217 fcse-skip-blocks
1218 Common Ignore
1219 Does nothing.  Preserved for backward compatibility.
1221 fcx-limited-range
1222 Common Var(flag_cx_limited_range) Optimization SetByCombined
1223 Omit range reduction step when performing complex division.
1225 fcx-fortran-rules
1226 Common Var(flag_cx_fortran_rules) Optimization
1227 Complex multiplication and division follow Fortran rules.
1229 fdata-sections
1230 Common Var(flag_data_sections)
1231 Place data items into their own section.
1233 fdbg-cnt-list
1234 Common Var(flag_dbg_cnt_list)
1235 List all available debugging counters with their limits and counts.
1237 fdbg-cnt=
1238 Common RejectNegative Joined Var(common_deferred_options) Defer
1239 -fdbg-cnt=<counter>[:<lower_limit1>-]<upper_limit1>[:<lower_limit2>-<upper_limit2>:...][,<counter>:...] Set the debug counter limit.
1241 fdebug-prefix-map=
1242 Common Joined RejectNegative Var(common_deferred_options) Defer
1243 -fdebug-prefix-map=<old>=<new>  Map one directory name to another in debug information.
1245 ffile-prefix-map=
1246 Common Joined RejectNegative Var(common_deferred_options) Defer
1247 -ffile-prefix-map=<old>=<new>   Map one directory name to another in compilation result.
1249 fdebug-types-section
1250 Common Var(flag_debug_types_section) Init(0)
1251 Output .debug_types section when using DWARF v4 debuginfo.
1253 ; Nonzero for -fdefer-pop: don't pop args after each function call
1254 ; instead save them up to pop many calls' args with one insns.
1255 fdefer-pop
1256 Common Var(flag_defer_pop) Optimization
1257 Defer popping functions args from stack until later.
1259 fdelayed-branch
1260 Common Var(flag_delayed_branch) Optimization
1261 Attempt to fill delay slots of branch instructions.
1263 fdelete-dead-exceptions
1264 Common Var(flag_delete_dead_exceptions) Init(0) Optimization
1265 Delete dead instructions that may throw exceptions.
1267 fdelete-null-pointer-checks
1268 Common Var(flag_delete_null_pointer_checks) Init(-1) Optimization
1269 Delete useless null pointer checks.
1271 fdevirtualize-at-ltrans
1272 Common Var(flag_ltrans_devirtualize)
1273 Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
1275 fdevirtualize-speculatively
1276 Common Var(flag_devirtualize_speculatively) Optimization
1277 Perform speculative devirtualization.
1279 fdevirtualize
1280 Common Var(flag_devirtualize) Optimization
1281 Try to convert virtual calls to direct ones.
1283 fdiagnostics-show-location=
1284 Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
1285 -fdiagnostics-show-location=[once|every-line]   How often to emit source location at the beginning of line-wrapped diagnostics.
1287 ; Required for these enum values.
1288 SourceInclude
1289 pretty-print.h
1291 Enum
1292 Name(diagnostic_prefixing_rule) Type(int)
1294 EnumValue
1295 Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
1297 EnumValue
1298 Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
1300 fdiagnostics-show-caret
1301 Common Var(flag_diagnostics_show_caret) Init(1)
1302 Show the source line with a caret indicating the column.
1304 fdiagnostics-show-labels
1305 Common Var(flag_diagnostics_show_labels) Init(1)
1306 Show labels annotating ranges of source code when showing source.
1308 fdiagnostics-show-line-numbers
1309 Common Var(flag_diagnostics_show_line_numbers) Init(1)
1310 Show line numbers in the left margin when showing source.
1312 fdiagnostics-color
1313 Common Alias(fdiagnostics-color=,always,never)
1316 fdiagnostics-color=
1317 Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
1318 -fdiagnostics-color=[never|always|auto] Colorize diagnostics.
1320 ; Required for these enum values.
1321 SourceInclude
1322 diagnostic-color.h
1324 Enum
1325 Name(diagnostic_color_rule) Type(int)
1327 EnumValue
1328 Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
1330 EnumValue
1331 Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
1333 EnumValue
1334 Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
1336 fdiagnostics-urls=
1337 Driver Common Joined RejectNegative Var(flag_diagnostics_show_urls) Enum(diagnostic_url_rule) Init(DIAGNOSTICS_URL_AUTO)
1338 -fdiagnostics-urls=[never|always|auto]  Embed URLs in diagnostics.
1340 ; Required for these enum values.
1341 SourceInclude
1342 diagnostic-url.h
1344 Enum
1345 Name(diagnostic_url_rule) Type(int)
1347 EnumValue
1348 Enum(diagnostic_url_rule) String(never) Value(DIAGNOSTICS_URL_NO)
1350 EnumValue
1351 Enum(diagnostic_url_rule) String(always) Value(DIAGNOSTICS_URL_YES)
1353 EnumValue
1354 Enum(diagnostic_url_rule) String(auto) Value(DIAGNOSTICS_URL_AUTO)
1356 fdiagnostics-column-unit=
1357 Common Joined RejectNegative Enum(diagnostics_column_unit)
1358 -fdiagnostics-column-unit=[display|byte]        Select whether column numbers are output as display columns (default) or raw bytes.
1360 fdiagnostics-column-origin=
1361 Common Joined RejectNegative UInteger
1362 -fdiagnostics-column-origin=<number>    Set the number of the first column.  The default is 1-based as per GNU style, but some utilities may expect 0-based, for example.
1364 fdiagnostics-format=
1365 Common Joined RejectNegative Enum(diagnostics_output_format)
1366 -fdiagnostics-format=[text|json]        Select output format.
1368 ; Required for these enum values.
1369 SourceInclude
1370 diagnostic.h
1372 Enum
1373 Name(diagnostics_column_unit) Type(int)
1375 EnumValue
1376 Enum(diagnostics_column_unit) String(display) Value(DIAGNOSTICS_COLUMN_UNIT_DISPLAY)
1378 EnumValue
1379 Enum(diagnostics_column_unit) String(byte) Value(DIAGNOSTICS_COLUMN_UNIT_BYTE)
1381 Enum
1382 Name(diagnostics_output_format) Type(int)
1384 EnumValue
1385 Enum(diagnostics_output_format) String(text) Value(DIAGNOSTICS_OUTPUT_FORMAT_TEXT)
1387 EnumValue
1388 Enum(diagnostics_output_format) String(json) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON)
1390 fdiagnostics-parseable-fixits
1391 Common Var(flag_diagnostics_parseable_fixits)
1392 Print fix-it hints in machine-readable form.
1394 fdiagnostics-generate-patch
1395 Common Var(flag_diagnostics_generate_patch)
1396 Print fix-it hints to stderr in unified diff format.
1398 fdiagnostics-show-option
1399 Common Var(flag_diagnostics_show_option) Init(1)
1400 Amend appropriate diagnostic messages with the command line option that controls them.
1402 fdiagnostics-show-cwe
1403 Common Var(flag_diagnostics_show_cwe) Init(1)
1404 Print CWE identifiers for diagnostic messages, where available.
1406 fdiagnostics-path-format=
1407 Common Joined RejectNegative Var(flag_diagnostics_path_format) Enum(diagnostic_path_format) Init(DPF_INLINE_EVENTS)
1408 Specify how to print any control-flow path associated with a diagnostic.
1410 fdiagnostics-plain-output
1411 Driver Common RejectNegative
1412 Turn off any diagnostics features that complicate the output, such as line numbers, color, and warning URLs.
1414 ftabstop=
1415 Common Joined RejectNegative UInteger
1416 -ftabstop=<number>      Distance between tab stops for column reporting.
1418 Enum
1419 Name(diagnostic_path_format) Type(int)
1421 EnumValue
1422 Enum(diagnostic_path_format) String(none) Value(DPF_NONE)
1424 EnumValue
1425 Enum(diagnostic_path_format) String(separate-events) Value(DPF_SEPARATE_EVENTS)
1427 EnumValue
1428 Enum(diagnostic_path_format) String(inline-events) Value(DPF_INLINE_EVENTS)
1430 fdiagnostics-show-path-depths
1431 Common Var(flag_diagnostics_show_path_depths) Init(0)
1432 Show stack depths of events in paths.
1434 fdiagnostics-minimum-margin-width=
1435 Common Joined UInteger Var(diagnostics_minimum_margin_width) Init(6)
1436 Set minimum width of left margin of source code when showing source.
1438 fdisable-
1439 Common Joined RejectNegative Var(common_deferred_options) Defer
1440 -fdisable-[tree|rtl|ipa]-<pass>=range1+range2   Disable an optimization pass.
1442 fenable-
1443 Common Joined RejectNegative Var(common_deferred_options) Defer
1444 -fenable-[tree|rtl|ipa]-<pass>=range1+range2    Enable an optimization pass.
1446 fdump-
1447 Common Joined RejectNegative Var(common_deferred_options) Defer
1448 -fdump-<type>   Dump various compiler internals to a file.
1450 fdump-final-insns
1451 Driver RejectNegative
1453 fdump-final-insns=
1454 Common RejectNegative Joined Var(flag_dump_final_insns)
1455 -fdump-final-insns=filename     Dump to filename the insns at the end of translation.
1457 fdump-go-spec=
1458 Common RejectNegative Joined Var(flag_dump_go_spec)
1459 -fdump-go-spec=filename Write all declarations to file as Go code.
1461 fdump-noaddr
1462 Common Var(flag_dump_noaddr)
1463 Suppress output of addresses in debugging dumps.
1465 freport-bug
1466 Common Driver Var(flag_report_bug)
1467 Collect and dump debug information into temporary file if ICE in C/C++
1468 compiler occurred.
1470 fdump-internal-locations
1471 Common Var(flag_dump_locations) Init(0)
1472 Dump detailed information on GCC's internal representation of source code locations.
1474 fdump-passes
1475 Common Var(flag_dump_passes) Init(0)
1476 Dump optimization passes.
1478 fdump-unnumbered
1479 Common Var(flag_dump_unnumbered)
1480 Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
1482 fdump-unnumbered-links
1483 Common Var(flag_dump_unnumbered_links)
1484 Suppress output of previous and next insn numbers in debugging dumps.
1486 fdwarf2-cfi-asm
1487 Common Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1488 Enable CFI tables via GAS assembler directives.
1490 fearly-inlining
1491 Common Var(flag_early_inlining) Init(1) Optimization
1492 Perform early inlining.
1494 feliminate-dwarf2-dups
1495 Common Ignore
1496 Does nothing.  Preserved for backward compatibility.
1498 fipa-sra
1499 Common Var(flag_ipa_sra) Init(0) Optimization
1500 Perform interprocedural reduction of aggregates.
1502 feliminate-unused-debug-symbols
1503 Common Var(flag_debug_only_used_symbols) Init(1)
1504 Perform unused symbol elimination in debug info.
1506 feliminate-unused-debug-types
1507 Common Var(flag_eliminate_unused_debug_types) Init(1)
1508 Perform unused type elimination in debug info.
1510 femit-class-debug-always
1511 Common Var(flag_emit_class_debug_always) Init(0)
1512 Do not suppress C++ class debug information.
1514 fexceptions
1515 Common Var(flag_exceptions) Optimization EnabledBy(fnon-call-exceptions)
1516 Enable exception handling.
1518 fexpensive-optimizations
1519 Common Var(flag_expensive_optimizations) Optimization
1520 Perform a number of minor, expensive optimizations.
1522 fexcess-precision=
1523 Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision) Init(EXCESS_PRECISION_DEFAULT) Optimization SetByCombined
1524 -fexcess-precision=[fast|standard|16]   Specify handling of excess floating-point precision.
1526 Enum
1527 Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1529 EnumValue
1530 Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1532 EnumValue
1533 Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1535 EnumValue
1536 Enum(excess_precision) String(16) Value(EXCESS_PRECISION_FLOAT16)
1538 ; Whether we permit the extended set of values for FLT_EVAL_METHOD
1539 ; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11.
1540 fpermitted-flt-eval-methods=
1541 Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT)
1542 -fpermitted-flt-eval-methods=[c11|ts-18661]     Specify which values of FLT_EVAL_METHOD are permitted.
1544 Enum
1545 Name(permitted_flt_eval_methods) Type(enum permitted_flt_eval_methods) UnknownError(unknown specification for the set of FLT_EVAL_METHOD values to permit %qs)
1547 EnumValue
1548 Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11)
1550 EnumValue
1551 Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
1553 ffast-math
1554 Common Optimization
1556 ffat-lto-objects
1557 Common Var(flag_fat_lto_objects)
1558 Output lto objects containing both the intermediate language and binary output.
1560 ffinite-math-only
1561 Common Var(flag_finite_math_only) Optimization SetByCombined
1562 Assume no NaNs or infinities are generated.
1564 ffinite-loops
1565 Common Var(flag_finite_loops) Optimization Init(0)
1566 Assume that loops with an exit will terminate and not loop indefinitely.
1568 ffixed-
1569 Common Joined RejectNegative Var(common_deferred_options) Defer
1570 -ffixed-<register>      Mark <register> as being unavailable to the compiler.
1572 ffloat-store
1573 Common Var(flag_float_store) Optimization
1574 Don't allocate floats and doubles in extended-precision registers.
1576 fforce-addr
1577 Common Ignore
1578 Does nothing.  Preserved for backward compatibility.
1580 fforward-propagate
1581 Common Var(flag_forward_propagate) Optimization
1582 Perform a forward propagation pass on RTL.
1584 ffp-contract=
1585 Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
1586 -ffp-contract=[off|on|fast]     Perform floating-point expression contraction.
1588 Enum
1589 Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1591 EnumValue
1592 Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1594 ; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1595 EnumValue
1596 Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1598 EnumValue
1599 Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1601 ffp-int-builtin-inexact
1602 Common Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1603 Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1605 ; Nonzero means don't put addresses of constant functions in registers.
1606 ; Used for compiling the Unix kernel, where strange substitutions are
1607 ; done on the assembly output.
1608 ffunction-cse
1609 Common Var(flag_no_function_cse,0) Optimization
1610 Allow function addresses to be held in registers.
1612 ffunction-sections
1613 Common Var(flag_function_sections)
1614 Place each function into its own section.
1616 fgcse
1617 Common Var(flag_gcse) Optimization
1618 Perform global common subexpression elimination.
1620 fgcse-lm
1621 Common Var(flag_gcse_lm) Init(1) Optimization
1622 Perform enhanced load motion during global common subexpression elimination.
1624 fgcse-sm
1625 Common Var(flag_gcse_sm) Init(0) Optimization
1626 Perform store motion after global common subexpression elimination.
1628 fgcse-las
1629 Common Var(flag_gcse_las) Init(0) Optimization
1630 Perform redundant load after store elimination in global common subexpression
1631 elimination.
1633 fgcse-after-reload
1634 Common Var(flag_gcse_after_reload) Optimization
1635 Perform global common subexpression elimination after register allocation has
1636 finished.
1638 Enum
1639 Name(dwarf_gnat_encodings) Type(int)
1641 EnumValue
1642 Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1644 EnumValue
1645 Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1647 EnumValue
1648 Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1650 fgnat-encodings=
1651 Common Enum(dwarf_gnat_encodings) Joined RejectNegative Undocumented Var(gnat_encodings)
1652 -fgnat-encodings=[all|gdb|minimal]      Select the balance between GNAT encodings and standard DWARF emitted in the debug information.
1654 ; This option is not documented yet as its semantics will change.
1655 fgraphite
1656 Common Var(flag_graphite) Optimization
1657 Enable in and out of Graphite representation.
1659 fgraphite-identity
1660 Common Var(flag_graphite_identity) Optimization
1661 Enable Graphite Identity transformation.
1663 fhoist-adjacent-loads
1664 Common Var(flag_hoist_adjacent_loads) Optimization
1665 Enable hoisting adjacent loads to encourage generating conditional move
1666 instructions.
1668 fkeep-gc-roots-live
1669 Common Undocumented Var(flag_keep_gc_roots_live) Optimization
1670 ; Always keep a pointer to a live memory block
1672 flarge-source-files
1673 Common Var(flag_large_source_files) Init(0)
1674 Improve GCC's ability to track column numbers in large source files,
1675 at the expense of slower compilation.
1677 floop-parallelize-all
1678 Common Var(flag_loop_parallelize_all) Optimization
1679 Mark all loops as parallel.
1681 floop-strip-mine
1682 Common Alias(floop-nest-optimize)
1683 Enable loop nest transforms.  Same as -floop-nest-optimize.
1685 floop-interchange
1686 Common Var(flag_loop_interchange) Optimization
1687 Enable loop interchange on trees.
1689 floop-block
1690 Common Alias(floop-nest-optimize)
1691 Enable loop nest transforms.  Same as -floop-nest-optimize.
1693 floop-unroll-and-jam
1694 Common Var(flag_unroll_jam) Optimization
1695 Perform unroll-and-jam on loops.
1697 fgnu-tm
1698 Common Var(flag_tm)
1699 Enable support for GNU transactional memory.
1701 fgnu-unique
1702 Common Var(flag_gnu_unique) Init(1)
1703 Use STB_GNU_UNIQUE if supported by the assembler.
1705 floop-flatten
1706 Common Ignore
1707 Does nothing. Preserved for backward compatibility.
1709 floop-nest-optimize
1710 Common Var(flag_loop_nest_optimize) Optimization
1711 Enable the loop nest optimizer.
1713 fstrict-volatile-bitfields
1714 Common Var(flag_strict_volatile_bitfields) Init(-1) Optimization
1715 Force bitfield accesses to match their type width.
1717 fstore-merging
1718 Common Var(flag_store_merging) Optimization
1719 Merge adjacent stores.
1721 fguess-branch-probability
1722 Common Var(flag_guess_branch_prob) Optimization
1723 Enable guessing of branch probabilities.
1725 ; Nonzero means ignore `#ident' directives.  0 means handle them.
1726 ; Generate position-independent code for executables if possible
1727 ; On SVR4 targets, it also controls whether or not to emit a
1728 ; string identifying the compiler.
1729 fident
1730 Common Var(flag_no_ident,0)
1731 Process #ident directives.
1733 fif-conversion
1734 Common Var(flag_if_conversion) Optimization
1735 Perform conversion of conditional jumps to branchless equivalents.
1737 fif-conversion2
1738 Common Var(flag_if_conversion2) Optimization
1739 Perform conversion of conditional jumps to conditional execution.
1741 fstack-reuse=
1742 Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
1743 -fstack-reuse=[all|named_vars|none]     Set stack reuse level for local variables.
1745 Enum
1746 Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1748 EnumValue
1749 Enum(stack_reuse_level) String(all) Value(SR_ALL)
1751 EnumValue
1752 Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1754 EnumValue
1755 Enum(stack_reuse_level) String(none) Value(SR_NONE)
1757 ftree-loop-if-convert
1758 Common Var(flag_tree_loop_if_convert) Init(-1) Optimization
1759 Convert conditional jumps in innermost loops to branchless equivalents.
1761 ftree-loop-if-convert-stores
1762 Common Ignore
1763 Does nothing. Preserved for backward compatibility.
1765 ; -finhibit-size-directive inhibits output of .size for ELF.
1766 ; This is used only for compiling crtstuff.c,
1767 ; and it may be extended to other effects
1768 ; needed for crtstuff.c on other systems.
1769 finhibit-size-directive
1770 Common Var(flag_inhibit_size_directive)
1771 Do not generate .size directives.
1773 findirect-inlining
1774 Common Var(flag_indirect_inlining) Optimization
1775 Perform indirect inlining.
1777 ; General flag to enable inlining.  Specifying -fno-inline will disable
1778 ; all inlining apart from always-inline functions.
1779 finline
1780 Common Var(flag_no_inline,0) Init(0) Optimization
1781 Enable inlining of function declared \"inline\", disabling disables all inlining.
1783 finline-small-functions
1784 Common Var(flag_inline_small_functions) Optimization
1785 Integrate functions into their callers when code size is known not to grow.
1787 finline-functions
1788 Common Var(flag_inline_functions) Optimization
1789 Integrate functions not declared \"inline\" into their callers when profitable.
1791 finline-functions-called-once
1792 Common Var(flag_inline_functions_called_once) Optimization
1793 Integrate functions only required by their single caller.
1795 finline-limit-
1796 Common RejectNegative Joined Alias(finline-limit=)
1798 finline-limit=
1799 Common RejectNegative Joined UInteger
1800 -finline-limit=<number> Limit the size of inlined functions to <number>.
1802 finline-atomics
1803 Common Var(flag_inline_atomics) Init(1) Optimization
1804 Inline __atomic operations when a lock free instruction sequence is available.
1806 fcf-protection
1807 Common RejectNegative Alias(fcf-protection=,full)
1809 fcf-protection=
1810 Common Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
1811 -fcf-protection=[full|branch|return|none|check] Instrument functions with checks to verify jump/call/return control-flow transfer
1812 instructions have valid targets.
1814 Enum
1815 Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
1817 EnumValue
1818 Enum(cf_protection_level) String(full) Value(CF_FULL)
1820 EnumValue
1821 Enum(cf_protection_level) String(branch) Value(CF_BRANCH)
1823 EnumValue
1824 Enum(cf_protection_level) String(return) Value(CF_RETURN)
1826 EnumValue
1827 Enum(cf_protection_level) String(check) Value(CF_CHECK)
1829 EnumValue
1830 Enum(cf_protection_level) String(none) Value(CF_NONE)
1832 finstrument-functions
1833 Common Var(flag_instrument_function_entry_exit)
1834 Instrument function entry and exit with profiling calls.
1836 finstrument-functions-exclude-function-list=
1837 Common RejectNegative Joined
1838 -finstrument-functions-exclude-function-list=name,...   Do not instrument listed functions.
1840 finstrument-functions-exclude-file-list=
1841 Common RejectNegative Joined
1842 -finstrument-functions-exclude-file-list=filename,...   Do not instrument functions listed in files.
1844 fipa-cp
1845 Common Var(flag_ipa_cp) Optimization
1846 Perform interprocedural constant propagation.
1848 fipa-cp-clone
1849 Common Var(flag_ipa_cp_clone) Optimization
1850 Perform cloning to make Interprocedural constant propagation stronger.
1852 fipa-cp-alignment
1853 Common Ignore
1854 Does nothing.  Preserved for backward compatibility.
1856 fipa-bit-cp
1857 Common Var(flag_ipa_bit_cp) Optimization
1858 Perform interprocedural bitwise constant propagation.
1860 fipa-modref
1861 Common Var(flag_ipa_modref) Optimization
1862 Perform interprocedural modref analysis.
1864 fipa-profile
1865 Common Var(flag_ipa_profile) Init(0) Optimization
1866 Perform interprocedural profile propagation.
1868 fipa-pta
1869 Common Var(flag_ipa_pta) Init(0) Optimization
1870 Perform interprocedural points-to analysis.
1872 fipa-pure-const
1873 Common Var(flag_ipa_pure_const) Init(0) Optimization
1874 Discover pure and const functions.
1876 fipa-icf
1877 Common Var(flag_ipa_icf) Optimization
1878 Perform Identical Code Folding for functions and read-only variables.
1880 fipa-icf-functions
1881 Common Var(flag_ipa_icf_functions) Optimization
1882 Perform Identical Code Folding for functions.
1884 fipa-icf-variables
1885 Common Var(flag_ipa_icf_variables) Optimization
1886 Perform Identical Code Folding for variables.
1888 fipa-reference
1889 Common Var(flag_ipa_reference) Init(0) Optimization
1890 Discover read-only and non addressable static variables.
1892 fipa-reference-addressable
1893 Common Var(flag_ipa_reference_addressable) Init(0) Optimization
1894 Discover read-only, write-only and non-addressable static variables.
1896 fipa-stack-alignment
1897 Common Var(flag_ipa_stack_alignment) Init(1) Optimization
1898 Reduce stack alignment on call sites if possible.
1900 fipa-matrix-reorg
1901 Common Ignore
1902 Does nothing. Preserved for backward compatibility.
1904 fipa-struct-reorg
1905 Common Ignore
1906 Does nothing. Preserved for backward compatibility.
1908 fipa-vrp
1909 Common Var(flag_ipa_vrp) Optimization
1910 Perform IPA Value Range Propagation.
1912 fira-algorithm=
1913 Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
1914 -fira-algorithm=[CB|priority]   Set the used IRA algorithm.
1916 Enum
1917 Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1919 EnumValue
1920 Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1922 EnumValue
1923 Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1925 fira-region=
1926 Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_ONE) Optimization
1927 -fira-region=[one|all|mixed]    Set regions for IRA.
1929 Enum
1930 Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1932 EnumValue
1933 Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1935 EnumValue
1936 Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1938 EnumValue
1939 Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1941 fira-hoist-pressure
1942 Common Var(flag_ira_hoist_pressure) Init(1) Optimization
1943 Use IRA based register pressure calculation
1944 in RTL hoist optimizations.
1946 fira-loop-pressure
1947 Common Var(flag_ira_loop_pressure) Optimization
1948 Use IRA based register pressure calculation
1949 in RTL loop optimizations.
1951 fira-share-save-slots
1952 Common Var(flag_ira_share_save_slots) Init(1) Optimization
1953 Share slots for saving different hard registers.
1955 fira-share-spill-slots
1956 Common Var(flag_ira_share_spill_slots) Init(1) Optimization
1957 Share stack slots for spilled pseudo-registers.
1959 fira-verbose=
1960 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
1961 -fira-verbose=<number>  Control IRA's level of diagnostic messages.
1963 fivopts
1964 Common Var(flag_ivopts) Init(1) Optimization
1965 Optimize induction variables on trees.
1967 fjump-tables
1968 Common Var(flag_jump_tables) Init(1) Optimization
1969 Use jump tables for sufficiently large switch statements.
1971 fbit-tests
1972 Common Var(flag_bit_tests) Init(1) Optimization
1973 Use bit tests for sufficiently large switch statements.
1975 fkeep-inline-functions
1976 Common Var(flag_keep_inline_functions)
1977 Generate code for functions even if they are fully inlined.
1979 fkeep-static-functions
1980 Common Var(flag_keep_static_functions)
1981 Generate code for static functions even if they are never called.
1983 fkeep-static-consts
1984 Common Var(flag_keep_static_consts) Init(1)
1985 Emit static const variables even if they are not used.
1987 fleading-underscore
1988 Common Var(flag_leading_underscore) Init(-1)
1989 Give external symbols a leading underscore.
1991 floop-optimize
1992 Common Ignore
1993 Does nothing.  Preserved for backward compatibility.
1995 flra-remat
1996 Common Var(flag_lra_remat) Optimization
1997 Do CFG-sensitive rematerialization in LRA.
1999 flto
2000 Common
2001 Enable link-time optimization.
2003 flto=
2004 Common RejectNegative Joined Var(flag_lto)
2005 Link-time optimization with number of parallel jobs or jobserver.
2007 Enum
2008 Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
2010 EnumValue
2011 Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
2013 EnumValue
2014 Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
2016 EnumValue
2017 Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
2019 EnumValue
2020 Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
2022 EnumValue
2023 Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
2025 flto-partition=
2026 Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
2027 Specify the algorithm to partition symbols and vars at linktime.
2029 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
2030 flto-compression-level=
2031 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 19)
2032 -flto-compression-level=<number>        Use zlib/zstd compression level <number> for IL.
2034 flto-odr-type-merging
2035 Common Ignore
2036 Does nothing.  Preserved for backward compatibility.
2038 flto-report
2039 Common Var(flag_lto_report) Init(0)
2040 Report various link-time optimization statistics.
2042 flto-report-wpa
2043 Common Var(flag_lto_report_wpa) Init(0)
2044 Report various link-time optimization statistics for WPA only.
2046 fmath-errno
2047 Common Var(flag_errno_math) Init(1) Optimization SetByCombined
2048 Set errno after built-in math functions.
2050 fmax-errors=
2051 Common Joined RejectNegative UInteger Var(flag_max_errors)
2052 -fmax-errors=<number>   Maximum number of errors to report.
2054 fmem-report
2055 Common Var(mem_report)
2056 Report on permanent memory allocation.
2058 fmem-report-wpa
2059 Common Var(mem_report_wpa)
2060 Report on permanent memory allocation in WPA only.
2062 ; This will attempt to merge constant section constants, if 1 only
2063 ; string constants and constants from constant pool, if 2 also constant
2064 ; variables.
2065 fmerge-all-constants
2066 Common Var(flag_merge_constants,2) Init(1)
2067 Attempt to merge identical constants and constant variables.
2069 fmerge-constants
2070 Common Var(flag_merge_constants,1)
2071 Attempt to merge identical constants across compilation units.
2073 fmerge-debug-strings
2074 Common Var(flag_merge_debug_strings) Init(1)
2075 Attempt to merge identical debug strings across compilation units.
2077 fmessage-length=
2078 Common RejectNegative Joined UInteger
2079 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping.
2081 fmodulo-sched
2082 Common Var(flag_modulo_sched) Optimization
2083 Perform SMS based modulo scheduling before the first scheduling pass.
2085 fmodulo-sched-allow-regmoves
2086 Common Var(flag_modulo_sched_allow_regmoves) Optimization
2087 Perform SMS based modulo scheduling with register moves allowed.
2089 fmove-loop-invariants
2090 Common Var(flag_move_loop_invariants) Optimization
2091 Move loop invariant computations out of loops.
2093 fmove-loop-stores
2094 Common Var(flag_move_loop_stores) Optimization
2095 Move stores out of loops.
2097 fdce
2098 Common Var(flag_dce) Init(1) Optimization
2099 Use the RTL dead code elimination pass.
2101 fdse
2102 Common Var(flag_dse) Init(0) Optimization
2103 Use the RTL dead store elimination pass.
2105 freschedule-modulo-scheduled-loops
2106 Common Var(flag_resched_modulo_sched) Optimization
2107 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
2109 fnon-call-exceptions
2110 Common Var(flag_non_call_exceptions) Optimization
2111 Support synchronous non-call exceptions.
2113 foffload=
2114 Driver Joined MissingArgError(targets missing after %qs)
2116 foffload-options=
2117 Common Driver Joined MissingArgError(options or targets=options missing after %qs)
2118 -foffload-options=<targets>=<options>   Specify options for the offloading targets.
2120 foffload-abi=
2121 Common Joined RejectNegative Enum(offload_abi)
2122 -foffload-abi=[lp64|ilp32]      Set the ABI to use in an offload compiler.
2124 Enum
2125 Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
2127 EnumValue
2128 Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
2130 EnumValue
2131 Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
2133 fomit-frame-pointer
2134 Common Var(flag_omit_frame_pointer) Optimization
2135 When possible do not generate stack frames.
2137 fopt-info
2138 Common Var(flag_opt_info) Optimization
2139 Enable all optimization info dumps on stderr.
2141 fopt-info-
2142 Common Joined RejectNegative Var(common_deferred_options) Defer
2143 -fopt-info[-<type>=filename]    Dump compiler optimization details.
2145 fsave-optimization-record
2146 Common Var(flag_save_optimization_record) Optimization
2147 Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
2149 foptimize-register-move
2150 Common Ignore
2151 Does nothing. Preserved for backward compatibility.
2153 foptimize-sibling-calls
2154 Common Var(flag_optimize_sibling_calls) Optimization
2155 Optimize sibling and tail recursive calls.
2157 fpartial-inlining
2158 Common Var(flag_partial_inlining) Optimization
2159 Perform partial inlining.
2161 fpre-ipa-mem-report
2162 Common Var(pre_ipa_mem_report)
2163 Report on memory allocation before interprocedural optimization.
2165 fpost-ipa-mem-report
2166 Common Var(post_ipa_mem_report)
2167 Report on memory allocation before interprocedural optimization.
2169 fpack-struct
2170 Common Var(flag_pack_struct) Optimization
2171 Pack structure members together without holes.
2173 fpack-struct=
2174 Common RejectNegative Joined UInteger Optimization
2175 -fpack-struct=<number>  Set initial maximum structure member alignment.
2177 fpcc-struct-return
2178 Common Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
2179 Return small aggregates in memory, not registers.
2181 fpeel-loops
2182 Common Var(flag_peel_loops) Optimization
2183 Perform loop peeling.
2185 fpeephole
2186 Common Var(flag_no_peephole,0) Optimization
2187 Enable machine specific peephole optimizations.
2189 fpeephole2
2190 Common Var(flag_peephole2) Optimization
2191 Enable an RTL peephole pass before sched2.
2193 fPIC
2194 Common Var(flag_pic,2) Negative(fPIE) Init(-1)
2195 Generate position-independent code if possible (large mode).
2197 fPIE
2198 Common Var(flag_pie,2) Negative(fpic) Init(-1)
2199 Generate position-independent code for executables if possible (large mode).
2201 fpic
2202 Common Var(flag_pic,1) Negative(fpie) Init(-1)
2203 Generate position-independent code if possible (small mode).
2205 fpie
2206 Common Var(flag_pie,1) Negative(fPIC) Init(-1)
2207 Generate position-independent code for executables if possible (small mode).
2209 fplt
2210 Common Var(flag_plt) Init(1) Optimization
2211 Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
2213 fplugin=
2214 Common Joined RejectNegative Var(common_deferred_options) Defer
2215 Specify a plugin to load.
2217 fplugin-arg-
2218 Common Joined RejectNegative Var(common_deferred_options) Defer
2219 -fplugin-arg-<name>-<key>[=<value>]     Specify argument <key>=<value> for plugin <name>.
2221 fpredictive-commoning
2222 Common Var(flag_predictive_commoning) Optimization
2223 Run predictive commoning optimization.
2225 fprefetch-loop-arrays
2226 Common Var(flag_prefetch_loop_arrays) Init(-1) Optimization
2227 Generate prefetch instructions, if available, for arrays in loops.
2229 fprofile
2230 Common Var(profile_flag)
2231 Enable basic program profiling code.
2233 fprofile-abs-path
2234 Common Var(profile_abs_path_flag)
2235 Generate absolute source path names for gcov.
2237 fprofile-arcs
2238 Common Var(profile_arc_flag)
2239 Insert arc-based program profiling code.
2241 fprofile-dir=
2242 Common Joined RejectNegative Var(profile_data_prefix)
2243 Set the top-level directory for storing the profile data.
2244 The default is 'pwd'.
2246 fprofile-note=
2247 Common Joined RejectNegative Var(profile_note_location)
2248 Select the name for storing the profile note file.
2250 fprofile-correction
2251 Common Var(flag_profile_correction)
2252 Enable correction of flow inconsistent profile data input.
2254 fprofile-update=
2255 Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
2256 -fprofile-update=[single|atomic|prefer-atomic]  Set the profile update method.
2258 fprofile-filter-files=
2259 Common Joined RejectNegative Var(flag_profile_filter_files)
2260 Instrument only functions from files whose name matches any of the regular expressions (separated by semi-colons).
2262 fprofile-exclude-files=
2263 Common Joined RejectNegative Var(flag_profile_exclude_files)
2264 Instrument only functions from files whose name does not match any of the regular expressions (separated by semi-colons).
2266 Enum
2267 Name(profile_reproducibility) Type(enum profile_reproducibility) UnknownError(unknown profile reproducibility method %qs)
2269 EnumValue
2270 Enum(profile_reproducibility) String(serial) Value(PROFILE_REPRODUCIBILITY_SERIAL)
2272 EnumValue
2273 Enum(profile_reproducibility) String(parallel-runs) Value(PROFILE_REPRODUCIBILITY_PARALLEL_RUNS)
2275 EnumValue
2276 Enum(profile_reproducibility) String(multithreaded) Value(PROFILE_REPRODUCIBILITY_MULTITHREADED)
2278 fprofile-reproducible=
2279 Common Joined RejectNegative Var(flag_profile_reproducible) Enum(profile_reproducibility) Init(PROFILE_REPRODUCIBILITY_SERIAL)
2280 -fprofile-reproducible=[serial|parallel-runs|multithreaded]     Control level of reproducibility of profile gathered by -fprofile-generate.
2282 Enum
2283 Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
2285 EnumValue
2286 Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
2288 EnumValue
2289 Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
2291 EnumValue
2292 Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC)
2294 fprofile-prefix-path=
2295 Common Joined RejectNegative Var(profile_prefix_path)
2296 Remove prefix from absolute path before mangling name for -fprofile-generate= and -fprofile-use=.
2298 fprofile-generate
2299 Common
2300 Enable common options for generating profile info for profile feedback directed optimizations.
2302 fprofile-generate=
2303 Common Joined RejectNegative
2304 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
2306 fprofile-info-section
2307 Common RejectNegative
2308 Register the profile information in the .gcov_info section instead of using a constructor/destructor.
2310 fprofile-info-section=
2311 Common Joined RejectNegative Var(profile_info_section)
2312 Register the profile information in the specified section instead of using a constructor/destructor.
2314 fprofile-partial-training
2315 Common Var(flag_profile_partial_training) Optimization
2316 Do not assume that functions never executed during the train run are cold.
2318 fprofile-use
2319 Common Var(flag_profile_use)
2320 Enable common options for performing profile feedback directed optimizations.
2322 fprofile-use=
2323 Common Joined RejectNegative
2324 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
2326 fprofile-values
2327 Common Var(flag_profile_values)
2328 Insert code to profile values of expressions.
2330 fprofile-report
2331 Common Var(profile_report)
2332 Report on consistency of profile.
2334 fprofile-reorder-functions
2335 Common Var(flag_profile_reorder_functions) Optimization
2336 Enable function reordering that improves code placement.
2338 fpatchable-function-entry=
2339 Common Var(flag_patchable_function_entry) Joined Optimization
2340 Insert NOP instructions at each function entry.
2342 frandom-seed
2343 Common Var(common_deferred_options) Defer
2345 frandom-seed=
2346 Common Joined RejectNegative Var(common_deferred_options) Defer
2347 -frandom-seed=<string>  Make compile reproducible using <string>.
2349 ; This switch causes the command line that was used to create an
2350 ; object file to be recorded into the object file.  The exact format
2351 ; of this recording is target and binary file format dependent.
2352 ; It is related to the -fverbose-asm switch, but that switch only
2353 ; records information in the assembler output file as comments, so
2354 ; they never reach the object file.
2355 frecord-gcc-switches
2356 Common Var(flag_record_gcc_switches)
2357 Record gcc command line switches in the object file.
2359 freg-struct-return
2360 Common Var(flag_pcc_struct_return,0) Optimization
2361 Return small aggregates in registers.
2363 fregmove
2364 Common Ignore
2365 Does nothing. Preserved for backward compatibility.
2367 flifetime-dse
2368 Common Var(flag_lifetime_dse,2) Init(2) Optimization
2369 Tell DSE that the storage for a C++ object is dead when the constructor
2370 starts and when the destructor finishes.
2372 flifetime-dse=
2373 Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
2375 flive-patching
2376 Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
2378 flive-patching=
2379 Common Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization
2380 -flive-patching=[inline-only-static|inline-clone]       Control IPA
2381 optimizations to provide a safe compilation for live-patching.  At the same
2382 time, provides multiple-level control on the enabled IPA optimizations.
2384 Enum
2385 Name(live_patching_level) Type(enum live_patching_level) UnknownError(unknown Live-Patching Level %qs)
2387 EnumValue
2388 Enum(live_patching_level) String(inline-only-static) Value(LIVE_PATCHING_INLINE_ONLY_STATIC)
2390 EnumValue
2391 Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE)
2393 fallocation-dce
2394 Common Var(flag_allocation_dce) Init(1) Optimization
2395 Tell DCE to remove unused C++ allocations.
2397 flive-range-shrinkage
2398 Common Var(flag_live_range_shrinkage) Init(0) Optimization
2399 Relief of register pressure through live range shrinkage.
2401 frename-registers
2402 Common Var(flag_rename_registers) Optimization EnabledBy(funroll-loops)
2403 Perform a register renaming optimization pass.
2405 fschedule-fusion
2406 Common Var(flag_schedule_fusion) Init(2) Optimization
2407 Perform a target dependent instruction fusion optimization pass.
2409 freorder-blocks
2410 Common Var(flag_reorder_blocks) Optimization
2411 Reorder basic blocks to improve code placement.
2413 freorder-blocks-algorithm=
2414 Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
2415 -freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
2417 Enum
2418 Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2420 EnumValue
2421 Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2423 EnumValue
2424 Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
2426 freorder-blocks-and-partition
2427 Common Var(flag_reorder_blocks_and_partition) Optimization
2428 Reorder basic blocks and partition into hot and cold sections.
2430 freorder-functions
2431 Common Var(flag_reorder_functions) Optimization
2432 Reorder functions to improve code placement.
2434 frerun-cse-after-loop
2435 Common Var(flag_rerun_cse_after_loop) Optimization
2436 Add a common subexpression elimination pass after loop optimizations.
2438 frerun-loop-opt
2439 Common Ignore
2440 Does nothing.  Preserved for backward compatibility.
2442 frounding-math
2443 Common Var(flag_rounding_math) Optimization SetByCombined
2444 Disable optimizations that assume default FP rounding behavior.
2446 fsched-interblock
2447 Common Var(flag_schedule_interblock) Init(1) Optimization
2448 Enable scheduling across basic blocks.
2450 fsched-pressure
2451 Common Var(flag_sched_pressure) Init(0) Optimization
2452 Enable register pressure sensitive insn scheduling.
2454 fsched-spec
2455 Common Var(flag_schedule_speculative) Init(1) Optimization
2456 Allow speculative motion of non-loads.
2458 fsched-spec-load
2459 Common Var(flag_schedule_speculative_load) Optimization
2460 Allow speculative motion of some loads.
2462 fsched-spec-load-dangerous
2463 Common Var(flag_schedule_speculative_load_dangerous) Optimization
2464 Allow speculative motion of more loads.
2466 fsched-verbose=
2467 Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
2468 -fsched-verbose=<number>        Set the verbosity level of the scheduler.
2470 fsched2-use-superblocks
2471 Common Var(flag_sched2_use_superblocks) Optimization
2472 If scheduling post reload, do superblock scheduling.
2474 fsched2-use-traces
2475 Common Ignore
2476 Does nothing.  Preserved for backward compatibility.
2478 fschedule-insns
2479 Common Var(flag_schedule_insns) Optimization
2480 Reschedule instructions before register allocation.
2482 fschedule-insns2
2483 Common Var(flag_schedule_insns_after_reload) Optimization
2484 Reschedule instructions after register allocation.
2486 ; This flag should be on when a target implements non-trivial
2487 ; scheduling hooks, maybe saving some information for its own sake.
2488 ; On IA64, for example, this is used for correct bundling.
2489 fselective-scheduling
2490 Common Var(flag_selective_scheduling) Optimization
2491 Schedule instructions using selective scheduling algorithm.
2493 fselective-scheduling2
2494 Common Var(flag_selective_scheduling2) Optimization
2495 Run selective scheduling after reload.
2497 fself-test=
2498 Common Undocumented Joined Var(flag_self_test)
2499 Run self-tests, using the given path to locate test files.
2501 fsel-sched-pipelining
2502 Common Var(flag_sel_sched_pipelining) Init(0) Optimization
2503 Perform software pipelining of inner loops during selective scheduling.
2505 fsel-sched-pipelining-outer-loops
2506 Common Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
2507 Perform software pipelining of outer loops during selective scheduling.
2509 fsel-sched-reschedule-pipelined
2510 Common Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
2511 Reschedule pipelined regions without pipelining.
2513 fsemantic-interposition
2514 Common Var(flag_semantic_interposition) Init(1)
2515 Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
2517 ; sched_stalled_insns means that insns can be moved prematurely from the queue
2518 ; of stalled insns into the ready list.
2519 fsched-stalled-insns
2520 Common Var(flag_sched_stalled_insns) Optimization UInteger
2521 Allow premature scheduling of queued insns.
2523 fsched-stalled-insns=
2524 Common RejectNegative Joined UInteger Optimization
2525 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled.
2527 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
2528 ; be examined for a dependency on a stalled insn that is candidate for
2529 ; premature removal from the queue of stalled insns into the ready list (has
2530 ; an effect only if the flag 'sched_stalled_insns' is set).
2531 fsched-stalled-insns-dep
2532 Common Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
2533 Set dependence distance checking in premature scheduling of queued insns.
2535 fsched-stalled-insns-dep=
2536 Common RejectNegative Joined UInteger Optimization
2537 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns.
2539 fsched-group-heuristic
2540 Common Var(flag_sched_group_heuristic) Init(1) Optimization
2541 Enable the group heuristic in the scheduler.
2543 fsched-critical-path-heuristic
2544 Common Var(flag_sched_critical_path_heuristic) Init(1) Optimization
2545 Enable the critical path heuristic in the scheduler.
2547 fsched-spec-insn-heuristic
2548 Common Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
2549 Enable the speculative instruction heuristic in the scheduler.
2551 fsched-rank-heuristic
2552 Common Var(flag_sched_rank_heuristic) Init(1) Optimization
2553 Enable the rank heuristic in the scheduler.
2555 fsched-last-insn-heuristic
2556 Common Var(flag_sched_last_insn_heuristic) Init(1) Optimization
2557 Enable the last instruction heuristic in the scheduler.
2559 fsched-dep-count-heuristic
2560 Common Var(flag_sched_dep_count_heuristic) Init(1) Optimization
2561 Enable the dependent count heuristic in the scheduler.
2563 fsection-anchors
2564 Common Var(flag_section_anchors) Optimization
2565 Access data in the same section from shared anchor points.
2567 fsee
2568 Common Ignore
2569 Does nothing.  Preserved for backward compatibility.
2571 fzee
2572 Common Ignore
2573 Does nothing.  Preserved for backward compatibility.
2575 free
2576 Common Var(flag_ree) Init(0) Optimization
2577 Turn on Redundant Extensions Elimination pass.
2579 fshow-column
2580 Common Var(flag_show_column) Init(1)
2581 Show column numbers in diagnostics, when available.  Default on.
2583 fshrink-wrap
2584 Common Var(flag_shrink_wrap) Optimization
2585 Emit function prologues only before parts of the function that need it,
2586 rather than at the top of the function.
2588 fshrink-wrap-separate
2589 Common Var(flag_shrink_wrap_separate) Init(1) Optimization
2590 Shrink-wrap parts of the prologue and epilogue separately.
2592 fsignaling-nans
2593 Common Var(flag_signaling_nans) Optimization SetByCombined
2594 Disable optimizations observable by IEEE signaling NaNs.
2596 fsigned-zeros
2597 Common Var(flag_signed_zeros) Init(1) Optimization SetByCombined
2598 Disable floating point optimizations that ignore the IEEE signedness of zero.
2600 fsingle-precision-constant
2601 Common Var(flag_single_precision_constant) Optimization
2602 Convert floating point constants to single precision constants.
2604 fsplit-ivs-in-unroller
2605 Common Var(flag_split_ivs_in_unroller) Init(1) Optimization
2606 Split lifetimes of induction variables when loops are unrolled.
2608 fsplit-stack
2609 Common Var(flag_split_stack) Init(-1)
2610 Generate discontiguous stack frames.
2612 fsplit-wide-types
2613 Common Var(flag_split_wide_types) Optimization
2614 Split wide types into independent registers.
2616 fsplit-wide-types-early
2617 Common Var(flag_split_wide_types_early) Optimization
2618 Split wide types into independent registers earlier.
2620 fssa-backprop
2621 Common Var(flag_ssa_backprop) Init(1) Optimization
2622 Enable backward propagation of use properties at the SSA level.
2624 fssa-phiopt
2625 Common Var(flag_ssa_phiopt) Optimization
2626 Optimize conditional patterns using SSA PHI nodes.
2628 fstdarg-opt
2629 Common Var(flag_stdarg_opt) Init(1) Optimization
2630 Optimize amount of stdarg registers saved to stack at start of function.
2632 fvariable-expansion-in-unroller
2633 Common Var(flag_variable_expansion_in_unroller) Optimization
2634 Apply variable expansion when loops are unrolled.
2636 fstack-check=
2637 Common RejectNegative Joined Optimization
2638 -fstack-check=[no|generic|specific]     Insert stack checking code into the program.
2640 fstack-check
2641 Common Alias(fstack-check=, specific, no)
2642 Insert stack checking code into the program.  Same as -fstack-check=specific.
2644 fstack-clash-protection
2645 Common Var(flag_stack_clash_protection) Optimization
2646 Insert code to probe each page of stack space as it is allocated to protect
2647 from stack-clash style attacks.
2649 fstack-limit
2650 Common Var(common_deferred_options) Defer
2652 fstack-limit-register=
2653 Common RejectNegative Joined Var(common_deferred_options) Defer
2654 -fstack-limit-register=<register>       Trap if the stack goes past <register>.
2656 fstack-limit-symbol=
2657 Common RejectNegative Joined Var(common_deferred_options) Defer
2658 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>.
2660 fstack-protector
2661 Common Var(flag_stack_protect, 1) Init(-1) Optimization
2662 Use propolice as a stack protection method.
2664 fstack-protector-all
2665 Common RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
2666 Use a stack protection method for every function.
2668 fstack-protector-strong
2669 Common RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
2670 Use a smart stack protection method for certain functions.
2672 fstack-protector-explicit
2673 Common RejectNegative Var(flag_stack_protect, 4) Optimization
2674 Use stack protection method only for functions with the stack_protect attribute.
2676 fstack-usage
2677 Common RejectNegative Var(flag_stack_usage)
2678 Output stack usage information on a per-function basis.
2680 fstrength-reduce
2681 Common Ignore
2682 Does nothing.  Preserved for backward compatibility.
2684 ; Nonzero if we should do (language-dependent) alias analysis.
2685 ; Typically, this analysis will assume that expressions of certain
2686 ; types do not alias expressions of certain other types.  Only used
2687 ; if alias analysis (in general) is enabled.
2688 fstrict-aliasing
2689 Common Var(flag_strict_aliasing) Optimization
2690 Assume strict aliasing rules apply.
2692 fstrict-overflow
2693 Common
2694 Treat signed overflow as undefined.  Negated as -fwrapv -fwrapv-pointer.
2696 fsync-libcalls
2697 Common Var(flag_sync_libcalls) Init(1)
2698 Implement __atomic operations via libcalls to legacy __sync functions.
2700 fsyntax-only
2701 Common Var(flag_syntax_only)
2702 Check for syntax errors, then stop.
2704 ftest-coverage
2705 Common Var(flag_test_coverage)
2706 Create data files needed by \"gcov\".
2708 fthread-jumps
2709 Common Var(flag_thread_jumps) Optimization
2710 Perform jump threading optimizations.
2712 ftime-report
2713 Common Var(time_report)
2714 Report the time taken by each compiler pass.
2716 ftime-report-details
2717 Common Var(time_report_details)
2718 Record times taken by sub-phases separately.
2720 ftls-model=
2721 Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
2722 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model.
2724 Enum
2725 Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2727 EnumValue
2728 Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2730 EnumValue
2731 Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2733 EnumValue
2734 Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2736 EnumValue
2737 Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2739 ftoplevel-reorder
2740 Common Var(flag_toplevel_reorder) Init(2) Optimization
2741 Reorder top level functions, variables, and asms.
2743 ftracer
2744 Common Var(flag_tracer) Optimization
2745 Perform superblock formation via tail duplication.
2747 ftrampolines
2748 Common Var(flag_trampolines) Init(0)
2749 For targets that normally need trampolines for nested functions, always
2750 generate them instead of using descriptors.
2752 ; Zero means that floating-point math operations cannot generate a
2753 ; (user-visible) trap.  This is the case, for example, in nonstop
2754 ; IEEE 754 arithmetic.
2755 ftrapping-math
2756 Common Var(flag_trapping_math) Init(1) Optimization SetByCombined
2757 Assume floating-point operations can trap.
2759 ftrapv
2760 Common Var(flag_trapv) Optimization
2761 Trap for signed overflow in addition, subtraction and multiplication.
2763 ftree-ccp
2764 Common Var(flag_tree_ccp) Optimization
2765 Enable SSA-CCP optimization on trees.
2767 ftree-bit-ccp
2768 Common Var(flag_tree_bit_ccp) Optimization
2769 Enable SSA-BIT-CCP optimization on trees.
2771 ftree-store-ccp
2772 Common Ignore
2773 Does nothing.  Preserved for backward compatibility.
2775 ftree-ch
2776 Common Var(flag_tree_ch) Optimization
2777 Enable loop header copying on trees.
2779 ftree-coalesce-inlined-vars
2780 Common Ignore RejectNegative
2781 Does nothing.  Preserved for backward compatibility.
2783 ftree-coalesce-vars
2784 Common Var(flag_tree_coalesce_vars) Optimization
2785 Enable SSA coalescing of user variables.
2787 ftree-copyrename
2788 Common Ignore
2789 Does nothing.  Preserved for backward compatibility.
2791 ftree-copy-prop
2792 Common Var(flag_tree_copy_prop) Optimization
2793 Enable copy propagation on trees.
2795 ftree-store-copy-prop
2796 Common Ignore
2797 Does nothing.  Preserved for backward compatibility.
2799 ftree-cselim
2800 Common Var(flag_tree_cselim) Optimization
2801 Transform condition stores into unconditional ones.
2803 ftree-switch-conversion
2804 Common Var(flag_tree_switch_conversion) Optimization
2805 Perform conversions of switch initializations.
2807 ftree-dce
2808 Common Var(flag_tree_dce) Optimization
2809 Enable SSA dead code elimination optimization on trees.
2811 ftree-dominator-opts
2812 Common Var(flag_tree_dom) Optimization
2813 Enable dominator optimizations.
2815 ftree-tail-merge
2816 Common Var(flag_tree_tail_merge) Optimization
2817 Enable tail merging on trees.
2819 ftree-dse
2820 Common Var(flag_tree_dse) Optimization
2821 Enable dead store elimination.
2823 ftree-forwprop
2824 Common Var(flag_tree_forwprop) Init(1) Optimization
2825 Enable forward propagation on trees.
2827 ftree-fre
2828 Common Var(flag_tree_fre) Optimization
2829 Enable Full Redundancy Elimination (FRE) on trees.
2831 foptimize-strlen
2832 Common Var(flag_optimize_strlen) Optimization
2833 Enable string length optimizations on trees.
2835 fisolate-erroneous-paths-dereference
2836 Common Var(flag_isolate_erroneous_paths_dereference) Optimization
2837 Detect paths that trigger erroneous or undefined behavior due to
2838 dereferencing a null pointer.  Isolate those paths from the main control
2839 flow and turn the statement with erroneous or undefined behavior into a trap.
2841 fisolate-erroneous-paths-attribute
2842 Common Var(flag_isolate_erroneous_paths_attribute) Optimization
2843 Detect paths that trigger erroneous or undefined behavior due to a null value
2844 being used in a way forbidden by a returns_nonnull or nonnull
2845 attribute.  Isolate those paths from the main control flow and turn the
2846 statement with erroneous or undefined behavior into a trap.
2848 ftree-loop-distribution
2849 Common Var(flag_tree_loop_distribution) Optimization
2850 Enable loop distribution on trees.
2852 ftree-loop-distribute-patterns
2853 Common Var(flag_tree_loop_distribute_patterns) Optimization
2854 Enable loop distribution for patterns transformed into a library call.
2856 ftree-loop-im
2857 Common Var(flag_tree_loop_im) Init(1) Optimization
2858 Enable loop invariant motion on trees.
2860 ftree-loop-linear
2861 Common Alias(floop-nest-optimize)
2862 Enable loop nest transforms.  Same as -floop-nest-optimize.
2864 ftree-loop-ivcanon
2865 Common Var(flag_tree_loop_ivcanon) Init(1) Optimization
2866 Create canonical induction variables in loops.
2868 ftree-loop-optimize
2869 Common Var(flag_tree_loop_optimize) Init(1) Optimization
2870 Enable loop optimizations on tree level.
2872 ftree-parallelize-loops=
2873 Common Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
2874 -ftree-parallelize-loops=<number>       Enable automatic parallelization of loops.
2876 ftree-phiprop
2877 Common Var(flag_tree_phiprop) Init(1) Optimization
2878 Enable hoisting loads from conditional pointers.
2880 ftree-pre
2881 Common Var(flag_tree_pre) Optimization
2882 Enable SSA-PRE optimization on trees.
2884 ftree-partial-pre
2885 Common Var(flag_tree_partial_pre) Optimization
2886 In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
2888 ftree-pta
2889 Common Var(flag_tree_pta) Optimization
2890 Perform function-local points-to analysis on trees.
2892 ftree-reassoc
2893 Common Var(flag_tree_reassoc) Init(1) Optimization
2894 Enable reassociation on tree level.
2896 ftree-salias
2897 Common Ignore
2898 Does nothing.  Preserved for backward compatibility.
2900 ftree-sink
2901 Common Var(flag_tree_sink) Optimization
2902 Enable SSA code sinking on trees.
2904 ftree-slsr
2905 Common Var(flag_tree_slsr) Optimization
2906 Perform straight-line strength reduction.
2908 ftree-sra
2909 Common Var(flag_tree_sra) Optimization
2910 Perform scalar replacement of aggregates.
2912 ftree-ter
2913 Common Var(flag_tree_ter) Optimization
2914 Replace temporary expressions in the SSA->normal pass.
2916 ftree-lrs
2917 Common Var(flag_tree_live_range_split) Optimization
2918 Perform live range splitting during the SSA->normal pass.
2920 ftree-vrp
2921 Common Var(flag_tree_vrp) Init(0) Optimization
2922 Perform Value Range Propagation on trees.
2924 fsplit-paths
2925 Common Var(flag_split_paths) Init(0) Optimization
2926 Split paths leading to loop backedges.
2928 funconstrained-commons
2929 Common Var(flag_unconstrained_commons) Optimization
2930 Assume common declarations may be overridden with ones with a larger
2931 trailing array.
2933 funit-at-a-time
2934 Common Var(flag_unit_at_a_time) Init(1)
2935 Compile whole compilation unit at a time.
2937 funroll-loops
2938 Common Var(flag_unroll_loops) Optimization EnabledBy(funroll-all-loops)
2939 Perform loop unrolling when iteration count is known.
2941 funroll-all-loops
2942 Common Var(flag_unroll_all_loops) Optimization
2943 Perform loop unrolling for all loops.
2945 funroll-completely-grow-size
2946 Undocumented Var(flag_cunroll_grow_size) Optimization
2947 ; Internal undocumented flag, allow size growth during complete unrolling
2949 ; Nonzero means that loop optimizer may assume that the induction variables
2950 ; that control loops do not overflow and that the loops with nontrivial
2951 ; exit condition are not infinite
2952 funsafe-loop-optimizations
2953 Common Ignore
2954 Does nothing.  Preserved for backward compatibility.
2956 fassociative-math
2957 Common Var(flag_associative_math) SetByCombined Optimization
2958 Allow optimization for floating-point arithmetic which may change the
2959 result of the operation due to rounding.
2961 freciprocal-math
2962 Common Var(flag_reciprocal_math) SetByCombined Optimization
2963 Same as -fassociative-math for expressions which include division.
2965 ; Nonzero means that unsafe floating-point math optimizations are allowed
2966 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
2967 ; are allowed to assume that their arguments and results are "normal"
2968 ; (e.g., nonnegative for SQRT).
2969 funsafe-math-optimizations
2970 Common Var(flag_unsafe_math_optimizations) Optimization SetByCombined
2971 Allow math optimizations that may violate IEEE or ISO standards.
2973 funswitch-loops
2974 Common Var(flag_unswitch_loops) Optimization
2975 Perform loop unswitching.
2977 fsplit-loops
2978 Common Var(flag_split_loops) Optimization
2979 Perform loop splitting.
2981 fversion-loops-for-strides
2982 Common Var(flag_version_loops_for_strides) Optimization
2983 Version loops based on whether indices have a stride of one.
2985 funwind-tables
2986 Common Var(flag_unwind_tables) Optimization
2987 Just generate unwind tables for exception handling.
2989 fuse-ld=bfd
2990 Common Driver Negative(fuse-ld=gold)
2991 Use the bfd linker instead of the default linker.
2993 fuse-ld=gold
2994 Common Driver Negative(fuse-ld=bfd)
2995 Use the gold linker instead of the default linker.
2997 fuse-ld=lld
2998 Common Driver Negative(fuse-ld=lld)
2999 Use the lld LLVM linker instead of the default linker.
3001 fuse-linker-plugin
3002 Common Undocumented Var(flag_use_linker_plugin)
3004 ; Positive if we should track variables, negative if we should run
3005 ; the var-tracking pass only to discard debug annotations, zero if
3006 ; we're not to run it.
3007 fvar-tracking
3008 Common Var(flag_var_tracking) PerFunction EnabledBy(fvar-tracking-uninit)
3009 Perform variable tracking.
3011 ; Positive if we should track variables at assignments, negative if
3012 ; we should run the var-tracking pass only to discard debug
3013 ; annotations.
3014 fvar-tracking-assignments
3015 Common Var(flag_var_tracking_assignments) PerFunction
3016 Perform variable tracking by annotating assignments.
3018 ; Nonzero if we should toggle flag_var_tracking_assignments after
3019 ; processing options and computing its default.  */
3020 fvar-tracking-assignments-toggle
3021 Common Var(flag_var_tracking_assignments_toggle) PerFunction
3022 Toggle -fvar-tracking-assignments.
3024 ; Positive if we should track uninitialized variables, negative if
3025 ; we should run the var-tracking pass only to discard debug
3026 ; annotations.
3027 fvar-tracking-uninit
3028 Common Var(flag_var_tracking_uninit) PerFunction
3029 Perform variable tracking and also tag variables that are uninitialized.
3031 ; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
3032 ftree-vectorize
3033 Common Var(flag_tree_vectorize) Optimization
3034 Enable vectorization on trees.
3036 ftree-vectorizer-verbose=
3037 Common Joined RejectNegative Ignore
3038 Does nothing.  Preserved for backward compatibility.
3040 ftree-loop-vectorize
3041 Common Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
3042 Enable loop vectorization on trees.
3044 ftree-slp-vectorize
3045 Common Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
3046 Enable basic block vectorization (SLP) on trees.
3048 fvect-cost-model=
3049 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
3050 -fvect-cost-model=[unlimited|dynamic|cheap|very-cheap]  Specifies the cost model for vectorization.
3052 fsimd-cost-model=
3053 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
3054 -fsimd-cost-model=[unlimited|dynamic|cheap|very-cheap]  Specifies the vectorization cost model for code marked with a simd directive.
3056 Enum
3057 Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
3059 EnumValue
3060 Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
3062 EnumValue
3063 Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
3065 EnumValue
3066 Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
3068 EnumValue
3069 Enum(vect_cost_model) String(very-cheap) Value(VECT_COST_MODEL_VERY_CHEAP)
3071 fvect-cost-model
3072 Common Alias(fvect-cost-model=,dynamic,unlimited)
3073 Enables the dynamic vectorizer cost model.  Preserved for backward compatibility.
3075 ftree-vect-loop-version
3076 Common Ignore
3077 Does nothing. Preserved for backward compatibility.
3079 ftree-scev-cprop
3080 Common Var(flag_tree_scev_cprop) Init(1) Optimization
3081 Enable copy propagation of scalar-evolution information.
3083 ftrivial-auto-var-init=
3084 Common Joined RejectNegative Enum(auto_init_type) Var(flag_auto_var_init) Init(AUTO_INIT_UNINITIALIZED) Optimization
3085 -ftrivial-auto-var-init=[uninitialized|pattern|zero]    Add initializations to automatic variables.
3087 Enum
3088 Name(auto_init_type) Type(enum auto_init_type) UnknownError(unrecognized automatic variable initialization type %qs)
3090 EnumValue
3091 Enum(auto_init_type) String(uninitialized) Value(AUTO_INIT_UNINITIALIZED)
3093 EnumValue
3094 Enum(auto_init_type) String(pattern) Value(AUTO_INIT_PATTERN)
3096 EnumValue
3097 Enum(auto_init_type) String(zero) Value(AUTO_INIT_ZERO)
3099 ; -fverbose-asm causes extra commentary information to be produced in
3100 ; the generated assembly code (to make it more readable).  This option
3101 ; is generally only of use to those who actually need to read the
3102 ; generated assembly code (perhaps while debugging the compiler itself).
3103 ; -fno-verbose-asm, the default, causes the extra information
3104 ; to not be added and is useful when comparing two assembler files.
3105 fverbose-asm
3106 Common Var(flag_verbose_asm)
3107 Add extra commentary to assembler output.
3109 fvisibility=
3110 Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
3111 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility.
3113 Enum
3114 Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
3116 EnumValue
3117 Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
3119 EnumValue
3120 Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
3122 EnumValue
3123 Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
3125 EnumValue
3126 Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
3128 fvtable-verify=
3129 Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
3130 Validate vtable pointers before using them.
3132 Enum
3133 Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
3135 EnumValue
3136 Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
3138 EnumValue
3139 Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
3141 EnumValue
3142 Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
3144 fvtv-counts
3145 Common Var(flag_vtv_counts)
3146 Output vtable verification counters.
3148 fvtv-debug
3149 Common Var(flag_vtv_debug)
3150 Output vtable verification pointer sets information.
3152 fvpt
3153 Common Var(flag_value_profile_transformations) Optimization
3154 Use expression value profiles in optimizations.
3156 fweb
3157 Common Var(flag_web) Optimization EnabledBy(funroll-loops)
3158 Construct webs and split unrelated uses of single variable.
3160 ftree-builtin-call-dce
3161 Common Var(flag_tree_builtin_call_dce) Init(0) Optimization
3162 Enable conditional dead code elimination for builtin calls.
3164 fwhole-program
3165 Common Var(flag_whole_program) Init(0)
3166 Perform whole program optimizations.
3168 fwrapv-pointer
3169 Common Var(flag_wrapv_pointer) Optimization
3170 Assume pointer overflow wraps around.
3172 fwrapv
3173 Common Var(flag_wrapv) Optimization
3174 Assume signed arithmetic overflow wraps around.
3176 fzero-initialized-in-bss
3177 Common Var(flag_zero_initialized_in_bss) Init(1)
3178 Put zero initialized data in the bss section.
3180 fzero-call-used-regs=
3181 Common RejectNegative Joined
3182 Clear call-used registers upon function return.
3185 Common Driver RejectNegative JoinedOrMissing
3186 Generate debug information in default format.
3188 gas-loc-support
3189 Common Driver Var(dwarf2out_as_loc_support)
3190 Assume assembler support for (DWARF2+) .loc directives.
3192 gas-locview-support
3193 Common Driver Var(dwarf2out_as_locview_support)
3194 Assume assembler support for view in (DWARF2+) .loc directives.
3196 gcoff
3197 Common Driver WarnRemoved
3198 Does nothing.  Preserved for backward compatibility.
3200 gcoff1
3201 Common Driver WarnRemoved
3202 Does nothing.  Preserved for backward compatibility.
3204 gcoff2
3205 Common Driver WarnRemoved
3206 Does nothing.  Preserved for backward compatibility.
3208 gcoff3
3209 Common Driver WarnRemoved
3210 Does nothing.  Preserved for backward compatibility.
3212 gcolumn-info
3213 Common Driver Var(debug_column_info,1) Init(1)
3214 Record DW_AT_decl_column and DW_AT_call_column in DWARF.
3216 ; The CTF generation process feeds off DWARF dies.  This option implicitly
3217 ; updates the debug_info_level to DINFO_LEVEL_NORMAL.
3218 gctf
3219 Common Driver RejectNegative JoinedOrMissing
3220 Generate CTF debug information at default level.
3222 gbtf
3223 Common Driver RejectNegative JoinedOrMissing
3224 Generate BTF debug information at default level.
3226 gdwarf
3227 Common Driver JoinedOrMissing Negative(gdwarf-)
3228 Generate debug information in default version of DWARF format.
3230 gdwarf-
3231 Common Driver Joined UInteger Var(dwarf_version) Init(5) Negative(gstabs)
3232 Generate debug information in DWARF v2 (or later) format.
3234 gdwarf32
3235 Common Driver Var(dwarf_offset_size,4) Init(4) RejectNegative
3236 Use 32-bit DWARF format when emitting DWARF debug information.
3238 gdwarf64
3239 Common Driver Var(dwarf_offset_size,8) RejectNegative
3240 Use 64-bit DWARF format when emitting DWARF debug information.
3242 ggdb
3243 Common Driver JoinedOrMissing
3244 Generate debug information in default extended format.
3246 ginline-points
3247 Common Driver Var(debug_inline_points)
3248 Generate extended entry point information for inlined functions.
3250 ginternal-reset-location-views
3251 Common Driver Var(debug_internal_reset_location_views) Init(2)
3252 Compute locview reset points based on insn length estimates.
3254 gno-
3255 RejectNegative Joined Undocumented
3256 ; Catch the gno- prefix, so it doesn't backtrack to g<level>.
3258 gno-pubnames
3259 Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
3260 Don't generate DWARF pubnames and pubtypes sections.
3262 gpubnames
3263 Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
3264 Generate DWARF pubnames and pubtypes sections.
3266 ggnu-pubnames
3267 Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
3268 Generate DWARF pubnames and pubtypes sections with GNU extensions.
3270 grecord-gcc-switches
3271 Common Driver Var(dwarf_record_gcc_switches) Init(1)
3272 Record gcc command line switches in DWARF DW_AT_producer.
3274 gsplit-dwarf
3275 Common Driver Var(dwarf_split_debug_info) Init(0)
3276 Generate debug information in separate .dwo files.
3278 gstabs
3279 Common Driver JoinedOrMissing Negative(gstabs+)
3280 Generate debug information in STABS format.
3282 gstabs+
3283 Common Driver JoinedOrMissing Negative(gvms)
3284 Generate debug information in extended STABS format.
3286 gstatement-frontiers
3287 Common Driver Var(debug_nonbind_markers_p) PerFunction
3288 Emit progressive recommended breakpoint locations.
3290 gstrict-dwarf
3291 Common Driver Var(dwarf_strict) Init(0)
3292 Don't emit DWARF additions beyond selected version.
3294 gdescribe-dies
3295 Common Driver Var(flag_describe_dies) Init(0)
3296 Add description attributes to some DWARF DIEs that have no name attribute.
3298 gtoggle
3299 Common Driver Var(flag_gtoggle)
3300 Toggle debug information generation.
3302 gvariable-location-views
3303 Common Driver Var(debug_variable_location_views, 1)
3304 Augment variable location lists with progressive views.
3306 gvariable-location-views=incompat5
3307 Common Driver RejectNegative Var(debug_variable_location_views, -1) Init(2)
3309 gvms
3310 Common Driver JoinedOrMissing Negative(gxcoff)
3311 Generate debug information in VMS format.
3313 gxcoff
3314 Common Driver JoinedOrMissing Negative(gxcoff+)
3315 Generate debug information in XCOFF format.
3317 gxcoff+
3318 Common Driver JoinedOrMissing Negative(gdwarf)
3319 Generate debug information in extended XCOFF format.
3321 Enum
3322 Name(compressed_debug_sections) Type(int)
3324 ; Since -gz= is completely handled in specs, the values aren't used and we
3325 ; assign arbitrary constants.
3326 EnumValue
3327 Enum(compressed_debug_sections) String(none) Value(0)
3329 EnumValue
3330 Enum(compressed_debug_sections) String(zlib) Value(1)
3332 EnumValue
3333 Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
3336 Common Driver
3337 Generate compressed debug sections.
3340 Common Driver RejectNegative Joined Enum(compressed_debug_sections)
3341 -gz=<format>    Generate compressed debug sections in format <format>.
3344 Driver Joined Separate
3346 iplugindir=
3347 Common Joined Var(plugindir_string) Init(0)
3348 -iplugindir=<dir>       Set <dir> to be the default plugin directory.
3350 imultiarch
3351 Common Joined Separate RejectDriver Var(imultiarch) Init(0)
3352 -imultiarch <dir>       Set <dir> to be the multiarch include subdirectory.
3355 Driver Joined Separate
3358 Driver
3360 no-canonical-prefixes
3361 Driver
3363 nodefaultlibs
3364 Driver
3366 nostartfiles
3367 Driver
3369 nolibc
3370 Driver
3372 nostdlib
3373 Driver
3376 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
3377 -o <file>       Place output into <file>.
3380 Common Var(profile_flag)
3381 Enable function profiling.
3383 pass-exit-codes
3384 Driver Var(pass_exit_codes)
3386 pedantic
3387 Common Alias(Wpedantic)
3389 pedantic-errors
3390 Common Var(flag_pedantic_errors)
3391 Like -pedantic but issue them as errors.
3394 Driver
3396 pipe
3397 Driver Var(use_pipes)
3399 print-file-name=
3400 Driver JoinedOrMissing Var(print_file_name)
3402 print-libgcc-file-name
3403 Driver
3405 print-multi-directory
3406 Driver Var(print_multi_directory)
3408 print-multi-lib
3409 Driver Var(print_multi_lib)
3411 print-multi-os-directory
3412 Driver Var(print_multi_os_directory)
3414 print-multiarch
3415 Driver Var(print_multiarch)
3417 print-prog-name=
3418 Driver JoinedOrMissing Var(print_prog_name)
3420 print-search-dirs
3421 Driver Var(print_search_dirs)
3423 print-sysroot
3424 Driver Var(print_sysroot)
3426 print-sysroot-headers-suffix
3427 Driver Var(print_sysroot_headers_suffix)
3429 quiet
3430 Common Var(quiet_flag) RejectDriver
3431 Do not display functions compiled or elapsed time.
3434 Driver
3437 Driver
3439 save-temps
3440 Driver
3442 save-temps=
3443 Driver Joined
3446 Driver
3448 time
3449 Driver Var(report_times)
3451 time=
3452 Driver JoinedOrMissing
3455 Driver Joined Separate
3457 undef
3458 Driver
3459 ; C option, but driver must not handle as "-u ndef".
3462 Common Driver Var(verbose_flag)
3463 Enable verbose output.
3465 version
3466 Common Var(version_flag) RejectDriver
3467 Display the compiler's version.
3470 Common Var(inhibit_warnings)
3471 Suppress warnings.
3473 wrapper
3474 Driver Separate Var(wrapper_string)
3477 Driver Joined Separate
3479 shared
3480 Driver RejectNegative Negative(static-pie)
3481 Create a shared library.
3483 shared-libgcc
3484 Driver
3486 specs
3487 Driver Separate Alias(specs=)
3489 specs=
3490 Driver Joined
3492 static
3493 Driver
3495 static-libgcc
3496 Driver
3498 static-libgfortran
3499 Driver
3500 ; Documented for Fortran, but always accepted by driver.
3502 static-libstdc++
3503 Driver
3505 static-libgo
3506 Driver
3507 ; Documented for Go, but always accepted by driver.
3509 static-libasan
3510 Driver
3512 static-libhwasan
3513 Driver
3515 static-libtsan
3516 Driver
3518 static-liblsan
3519 Driver
3521 static-libubsan
3522 Driver
3524 symbolic
3525 Driver
3527 no-pie
3528 Driver RejectNegative Negative(shared)
3529 Don't create a dynamically linked position independent executable.
3532 Driver RejectNegative Negative(no-pie)
3533 Create a dynamically linked position independent executable.
3535 static-pie
3536 Driver RejectNegative Negative(pie)
3537 Create a static position independent executable.
3540 Driver Joined Separate
3542 fipa-ra
3543 Common Var(flag_ipa_ra) Optimization
3544 Use caller save register across calls if possible.
3546 ; This comment is to ensure we retain the blank line above.