xtensa: constantsynth: Add new 3-insns synthesis pattern
[official-gcc.git] / gcc / common.opt
blob06ef768ab7808cb518944c6882d0285e48cb7c19
1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003-2022 Free Software Foundation, Inc.
5 ; This file is part of GCC.
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
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 three 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 Variable
95 void *flag_ignored_attributes
97 ; Generic structs (e.g. templates not explicitly specialized)
98 ; may not have a compilation unit associated with them, and so
99 ; may need to be treated differently from ordinary structs.
101 ; Structs only handled by reference (indirectly), will also usually
102 ; not need as much debugging information.
104 Variable
105 enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
107 Variable
108 enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
110 ; True if we should exit after parsing options.
111 Variable
112 bool exit_after_options
114 ; Type(s) of debugging information we are producing (if any).  See
115 ; flag-types.h for the definitions of the different possible types of
116 ; debugging information.
117 Variable
118 uint32_t write_symbols = NO_DEBUG
120 ; Level of debugging information we are producing.  See flag-types.h
121 ; for the definitions of the different possible levels.
122 Variable
123 enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
125 ; Level of CTF debugging information we are producing.  See flag-types.h
126 ; for the definitions of the different possible levels.
127 Variable
128 enum ctf_debug_info_levels ctf_debug_info_level = CTFINFO_LEVEL_NONE
130 ; Original value of maximum field alignment in bytes, specified via
131 ; -fpack-struct=<value>.
132 Variable
133 unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
135 ; Type of stack check.
136 Variable
137 enum stack_check_type flag_stack_check = NO_STACK_CHECK
139 ; True if stack usage information needs to be computed.
140 Variable
141 bool flag_stack_usage_info = false
143 ; -dA causes debug commentary information to be produced in
144 ; the generated assembly code (to make it more readable).  This option
145 ; is generally only of use to those who actually need to read the
146 ; generated assembly code (perhaps while debugging the compiler itself).
147 ; Currently, this switch is only used by dwarf2out.cc; however, it is intended
148 ; to be a catchall for printing debug information in the assembler file.
149 Variable
150 int flag_debug_asm
152 ; Balance between GNAT encodings and standard DWARF to emit.
153 Variable
154 enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT
156 ; -dP causes the rtl to be emitted as a comment in assembly.
157 Variable
158 int flag_dump_rtl_in_asm
160 ; Whether -da was passed (used only in handle_common_deferred_options).
161 Variable
162 bool flag_dump_all_passed
164 ; Other flags saying which kinds of debugging dump have been requested.
166 Variable
167 int rtl_dump_and_exit
169 Variable
170 int flag_print_asm_name
172 ; Name of top-level original source file (what was input to cpp).
173 ; This comes from the #-command at the beginning of the actual input.
174 ; If there isn't any there, then this is the cc1 input file name.
175 Variable
176 const char *main_input_filename
178 ; Pointer to base name in main_input_filename, with directories and a
179 ; single final extension removed, and the length of this base
180 ; name.
182 Variable
183 const char *main_input_basename
185 Variable
186 int main_input_baselength
188 ; The base name used for auxiliary output files.
189 ; dump_base_name minus dump_base_ext.
191 Variable
192 const char *aux_base_name
194 ; Which options have been printed by --help.
195 Variable
196 char *help_printed
198 ; Which enums have been printed by --help.  0 = not printed, no
199 ; relevant options seen, 1 = relevant option seen, not yet printed, 2
200 ; = printed.
201 Variable
202 char *help_enum_printed
204 ; The number of columns for --help output.
205 Variable
206 unsigned int help_columns
208 ; Whether this options structure has been through finish_options
209 Variable
210 bool flag_opts_finished
212 ; What the sanitizer should instrument
213 Variable
214 unsigned int flag_sanitize
216 ; What sanitizers should recover from errors
217 Variable
218 unsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS | SANITIZE_KERNEL_HWADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN)
220 ; What sanitizers should use __builtin_trap () instead of runtime diagnostics
221 Variable
222 unsigned int flag_sanitize_trap
224 ; Flag whether a prefix has been added to dump_base_name
225 Variable
226 bool dump_base_name_prefixed = false
228 ; What subset of registers should be zeroed on function return
229 Variable
230 unsigned int flag_zero_call_used_regs
233 Driver
235 -assemble
236 Driver Alias(S)
238 -compile
239 Driver Alias(c)
241 -completion=
242 Common Driver Joined Undocumented
243 Provide bash completion for options starting with provided string.
245 -coverage
246 Driver Alias(coverage)
248 -debug
249 Common Alias(g)
251 -dump
252 Common Separate Alias(d)
254 -dump=
255 Common Joined Alias(d)
257 -dumpbase
258 Driver Common Separate Alias(dumpbase)
260 -dumpbase-ext
261 Driver Common Separate Alias(dumpbase-ext)
263 -dumpdir
264 Driver Common Separate Alias(dumpdir)
266 -entry
267 Driver Separate Alias(e)
269 -entry=
270 Driver Joined Alias(e)
272 -extra-warnings
273 Common Warning Alias(Wextra)
275 -for-assembler
276 Driver Separate Alias(Xassembler)
278 -for-assembler=
279 Driver JoinedOrMissing Alias(Xassembler)
281 -for-linker
282 Driver Separate Alias(Xlinker)
284 -for-linker=
285 Driver JoinedOrMissing Alias(Xlinker)
287 -force-link
288 Driver Separate Alias(u)
290 -force-link=
291 Driver Joined Alias(u)
293 -help
294 Common Driver Var(help_flag)
295 Display this information.
297 -help=
298 Common Driver Joined
299 --help=<class>  Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params.
301 -language
302 Driver Separate Alias(x)
304 -language=
305 Driver Joined Alias(x)
307 -library-directory
308 Driver Separate Alias(L)
310 -library-directory=
311 Driver Joined Alias(L)
313 -no-canonical-prefixes
314 Driver Alias(no-canonical-prefixes)
316 -no-standard-libraries
317 Driver Alias(nostdlib)
319 -no-sysroot-suffix
320 Driver Var(no_sysroot_suffix)
322 -no-warnings
323 Common Alias(w)
325 -optimize
326 Common Alias(O)
328 -output
329 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
331 -output=
332 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
334 -pass-exit-codes
335 Driver Alias(pass-exit-codes)
337 -pedantic
338 Common Alias(Wpedantic)
340 -pedantic-errors
341 Common Alias(pedantic-errors)
343 -pie
344 Driver Alias(pie)
346 -static-pie
347 Driver Alias(static-pie)
349 -pipe
350 Driver Alias(pipe)
352 -prefix
353 Driver Separate Alias(B)
355 -prefix=
356 Driver JoinedOrMissing Alias(B)
358 -preprocess
359 Driver Alias(E)
361 -print-file-name
362 Driver Separate Alias(print-file-name=)
364 -print-file-name=
365 Driver JoinedOrMissing Alias(print-file-name=)
367 -print-libgcc-file-name
368 Driver Alias(print-libgcc-file-name)
370 -print-multi-directory
371 Driver Alias(print-multi-directory)
373 -print-multi-lib
374 Driver Alias(print-multi-lib)
376 -print-multi-os-directory
377 Driver Alias(print-multi-os-directory)
379 -print-multiarch
380 Driver Alias(print-multiarch)
382 -print-prog-name
383 Driver Separate Alias(print-prog-name=)
385 -print-prog-name=
386 Driver JoinedOrMissing Alias(print-prog-name=)
388 -print-search-dirs
389 Driver Alias(print-search-dirs)
391 -print-sysroot
392 Driver Alias(print-sysroot)
394 -print-sysroot-headers-suffix
395 Driver Alias(print-sysroot-headers-suffix)
397 -profile
398 Common Alias(p)
400 -save-temps
401 Driver Alias(save-temps)
403 -shared
404 Driver Alias(shared)
406 -specs
407 Driver Separate Alias(specs=)
409 -specs=
410 Driver Joined Alias(specs=)
412 -static
413 Driver Alias(static)
415 -symbolic
416 Driver Alias(symbolic)
418 -target-help
419 Common Driver
420 Display target specific command line options (including assembler and linker options).
422 -time
423 Driver Alias(time)
425 -verbose
426 Driver Alias(v)
428 ;; The driver used to convert options such as --help into forms such
429 ;; as -fhelp; the following four entries are for compatibility with
430 ;; any direct uses of those (undocumented) -f forms
431 fhelp
432 Common Driver Alias(-help)
434 fhelp=
435 Common Driver Joined Alias(-help=)
437 ftarget-help
438 Common Driver Alias(-target-help)
440 fversion
441 Common Driver Alias(-version)
443 -sysroot
444 Driver Separate Alias(-sysroot=)
446 -sysroot=
447 Driver JoinedOrMissing
449 -version
450 Common Driver
453 Driver Joined Separate
456 Driver
459 Driver Joined Separate
462 Driver
465 Common JoinedOrMissing Optimization
466 -O<number>      Set optimization level to <number>.
469 Common Optimization
470 Optimize for space rather than speed.
472 Ofast
473 Common Optimization
474 Optimize for speed disregarding exact standards compliance.
477 Common Optimization
478 Optimize for debugging experience rather than speed or size.
481 Common Optimization
482 Optimize for space aggressively rather than speed.
485 Driver
488 Driver Negative(Qy)
491 Driver Negative(Qn)
494 Driver Joined Separate
497 Driver
500 Driver Joined Separate
502 Tbss
503 Driver Separate
505 Tbss=
506 Driver Joined
508 Tdata
509 Driver Separate
511 Tdata=
512 Driver Joined
514 Ttext
515 Driver Separate
517 Ttext=
518 Driver Joined
521 Common RejectNegative Warning Alias(Wextra)
522 This switch is deprecated; use -Wextra instead.
525 Driver JoinedOrMissing RejectNegative
528 Driver JoinedOrMissing RejectNegative
531 Driver JoinedOrMissing RejectNegative
533 Waggregate-return
534 Common Var(warn_aggregate_return) Warning
535 Warn about returning structures, unions or arrays.
537 Waggressive-loop-optimizations
538 Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
539 Warn if a loop with constant number of iterations triggers undefined behavior.
541 Warray-bounds
542 Common Var(warn_array_bounds) Warning
543 Warn if an array is accessed out of bounds.
545 Warray-bounds=
546 Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2)
547 Warn if an array is accessed out of bounds.
549 Wuse-after-free
550 Common Var(warn_use_after_free) Warning
551 Warn for uses of pointers to deallocated storage.
553 Wuse-after-free=
554 Common Joined RejectNegative UInteger Var(warn_use_after_free) Warning IntegerRange(0, 3)
555 Warn for uses of pointers to deallocated storage.
557 Wattributes
558 Common Var(warn_attributes) Init(1) Warning
559 Warn about inappropriate attribute usage.
561 Wattributes=
562 Common Joined
563 Do not warn about specified attributes.
565 Wattribute-alias
566 Common Alias(Wattribute_alias=, 1, 0) Warning
567 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
569 Wattribute-alias=
570 Common Joined RejectNegative UInteger Var(warn_attribute_alias) Init(1) Warning IntegerRange(0, 2)
571 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
573 Wcannot-profile
574 Common Var(warn_cannot_profile) Init(1) Warning
575 Warn when profiling instrumentation was requested, but could not be applied to
576 a certain function.
578 Wcast-align
579 Common Var(warn_cast_align) Warning
580 Warn about pointer casts which increase alignment.
582 Wcast-align=strict
583 Common Var(warn_cast_align,2) Warning
584 Warn about pointer casts which increase alignment.
586 Wcpp
587 Common Var(warn_cpp) Init(1) Warning
588 Warn when a #warning directive is encountered.
590 Wattribute-warning
591 Common Var(warn_attribute_warning) Init(1) Warning
592 Warn about uses of __attribute__((warning)) declarations.
594 Wdeprecated
595 Common Var(warn_deprecated) Init(1) Warning
596 Warn if a deprecated compiler feature, class, method, or field is used.
598 Wdeprecated-declarations
599 Common Var(warn_deprecated_decl) Init(1) Warning
600 Warn about uses of __attribute__((deprecated)) declarations.
602 Wdisabled-optimization
603 Common Var(warn_disabled_optimization) Warning
604 Warn when an optimization pass is disabled.
606 Werror
607 Common Var(warnings_are_errors)
608 Treat all warnings as errors.
610 Werror=
611 Common Joined
612 Treat specified warning as error.
614 Wextra
615 Common Var(extra_warnings) Warning
616 Print extra (possibly unwanted) warnings.
618 Wfatal-errors
619 Common Var(flag_fatal_errors)
620 Exit on the first error occurred.
622 Wframe-larger-than=
623 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_frame_larger_than_size) Init(HOST_WIDE_INT_MAX)
624 -Wframe-larger-than=<byte-size> Warn if a function's stack frame requires in excess of <byte-size>.
626 Wno-frame-larger-than
627 Common Alias(Wframe-larger-than=,18446744073709551615EiB,none) Warning
628 Disable -Wframe-larger-than= warning.  Equivalent to -Wframe-larger-than=<SIZE_MAX> or larger.
630 Wfree-nonheap-object
631 Common Var(warn_free_nonheap_object) Init(1) Warning
632 Warn when attempting to free a non-heap object.
634 Whsa
635 Common Ignore Warning
636 Does nothing.  Preserved for backward compatibility.
638 Wimplicit-fallthrough
639 Common Alias(Wimplicit-fallthrough=,3,0) Warning
641 Wimplicit-fallthrough=
642 Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5)
643 Warn when a switch case falls through.
645 Winfinite-recursion
646 Var(warn_infinite_recursion) Warning
647 Warn for infinitely recursive calls.
649 Winline
650 Common Var(warn_inline) Warning Optimization
651 Warn when an inlined function cannot be inlined.
653 Winvalid-memory-model
654 Common Var(warn_invalid_memory_model) Init(1) Warning
655 Warn when an atomic memory model parameter is known to be outside the valid range.
657 Wlarger-than-
658 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
660 Wlarger-than=
661 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_larger_than_size) Init(HOST_WIDE_INT_MAX)
662 -Wlarger-than=<byte-size>       Warn if an object's size exceeds <byte-size>.
664 Wno-larger-than
665 Common Alias(Wlarger-than=,18446744073709551615EiB,none) Warning
666 Disable -Wlarger-than= warning.  Equivalent to -Wlarger-than=<SIZE_MAX> or larger.
668 Wnonnull-compare
669 Var(warn_nonnull_compare) Warning
670 Warn if comparing pointer parameter with nonnull attribute with NULL.
672 Wnull-dereference
673 Common Var(warn_null_dereference) Warning
674 Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
676 Wunsafe-loop-optimizations
677 Common Ignore Warning
678 Does nothing. Preserved for backward compatibility.
680 Wmissing-noreturn
681 Common Warning Alias(Wsuggest-attribute=noreturn)
683 Wodr
684 Common Var(warn_odr_violations) Init(1) Warning
685 Warn about some C++ One Definition Rule violations during link time optimization.
687 Woverflow
688 Common Var(warn_overflow) Init(1) Warning
689 Warn about overflow in arithmetic expressions.
691 Wlto-type-mismatch
692 Common Var(warn_lto_type_mismatch) Init(1) Warning
693 During link time optimization warn about mismatched types of global declarations.
695 Wpacked
696 Common Var(warn_packed) Warning
697 Warn when the packed attribute has no effect on struct layout.
699 Wpadded
700 Common Var(warn_padded) Warning
701 Warn when padding is required to align structure members.
703 Wpedantic
704 Common Var(pedantic) Init(0) Warning
705 Issue warnings needed for strict compliance to the standard.
707 Wreturn-local-addr
708 Common Var(warn_return_local_addr) Init(1) Warning
709 Warn about returning a pointer/reference to a local or temporary variable.
711 Wshadow
712 Common Var(warn_shadow) Warning
713 Warn when one variable shadows another.  Same as -Wshadow=global.
715 Wshadow=global
716 Common Warning Alias(Wshadow)
717 Warn when one variable shadows another (globally).
719 Wshadow=local
720 Common Var(warn_shadow_local) Warning EnabledBy(Wshadow)
721 Warn when one local variable shadows another local variable or parameter.
723 Wshadow-local
724 Common Warning Undocumented Alias(Wshadow=local)
726 Wshadow=compatible-local
727 Common Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local)
728 Warn when one local variable shadows another local variable or parameter of compatible type.
730 Wshadow-compatible-local
731 Common Warning Undocumented Alias(Wshadow=compatible-local)
733 Wstack-protector
734 Common Var(warn_stack_protect) Warning
735 Warn when not issuing stack smashing protection for some reason.
737 Wstack-usage=
738 Common Joined RejectNegative Host_Wide_Int ByteSize Var(warn_stack_usage) Warning Init(HOST_WIDE_INT_MAX)
739 -Wstack-usage=<byte-size>       Warn if stack usage might exceed <byte-size>.
741 Wno-stack-usage
742 Common Alias(Wstack-usage=,18446744073709551615EiB,none) Warning
743 Disable Wstack-usage= warning.  Equivalent to Wstack-usage=<SIZE_MAX> or larger.
745 Wstrict-aliasing
746 Common Warning
747 Warn about code which might break strict aliasing rules.
749 Wstrict-aliasing=
750 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
751 Warn about code which might break strict aliasing rules.
753 Wstrict-overflow
754 Common Warning
755 Warn about optimizations that assume that signed overflow is undefined.
757 Wstrict-overflow=
758 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
759 Warn about optimizations that assume that signed overflow is undefined.
761 Wsuggest-attribute=cold
762 Common Var(warn_suggest_attribute_cold) Warning
763 Warn about functions which might be candidates for __attribute__((cold)).
765 Wsuggest-attribute=const
766 Common Var(warn_suggest_attribute_const) Warning
767 Warn about functions which might be candidates for __attribute__((const)).
769 Wsuggest-attribute=pure
770 Common Var(warn_suggest_attribute_pure) Warning
771 Warn about functions which might be candidates for __attribute__((pure)).
773 Wsuggest-attribute=noreturn
774 Common Var(warn_suggest_attribute_noreturn) Warning
775 Warn about functions which might be candidates for __attribute__((noreturn)).
777 Wsuggest-attribute=malloc
778 Common Var(warn_suggest_attribute_malloc) Warning
779 Warn about functions which might be candidates for __attribute__((malloc)).
781 Wsuggest-final-types
782 Common Var(warn_suggest_final_types) Warning
783 Warn about C++ polymorphic types where adding final keyword would improve code quality.
785 Wsuggest-final-methods
786 Common Var(warn_suggest_final_methods) Warning
787 Warn about C++ virtual methods where adding final keyword would improve code quality.
789 Wswitch-unreachable
790 Common Var(warn_switch_unreachable) Warning Init(1)
791 Warn about statements between switch's controlling expression and the first
792 case.
794 Wsystem-headers
795 Common Var(warn_system_headers) Warning
796 Do not suppress warnings from system headers.
798 Wtrampolines
799 Common Var(warn_trampolines) Warning
800 Warn whenever a trampoline is generated.
802 Wtrivial-auto-var-init
803 Common Var(warn_trivial_auto_var_init) Warning Init(0)
804 Warn about cases where -ftrivial-auto-var-init cannot initialize an auto variable.
806 Wtype-limits
807 Common Var(warn_type_limits) Warning EnabledBy(Wextra)
808 Warn if a comparison is always true or always false due to the limited range of the data type.
810 Wuninitialized
811 Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
812 Warn about uninitialized automatic variables.
814 Wmaybe-uninitialized
815 Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
816 Warn about maybe uninitialized automatic variables.
818 Wunreachable-code
819 Common Ignore Warning
820 Does nothing. Preserved for backward compatibility.
822 Wunused
823 Common Var(warn_unused) Init(0) Warning
824 Enable all -Wunused- warnings.
826 Wunused-but-set-parameter
827 Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
828 Warn when a function parameter is only set, otherwise unused.
830 Wunused-but-set-variable
831 Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
832 Warn when a variable is only set, otherwise unused.
834 Wunused-function
835 Common Var(warn_unused_function) Warning EnabledBy(Wunused)
836 Warn when a function is unused.
838 Wunused-label
839 Common Var(warn_unused_label) Warning EnabledBy(Wunused)
840 Warn when a label is unused.
842 Wunused-parameter
843 Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
844 Warn when a function parameter is unused.
846 Wunused-value
847 Common Var(warn_unused_value) Warning EnabledBy(Wunused)
848 Warn when an expression value is unused.
850 Wunused-variable
851 Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
852 Warn when a variable is unused.
854 Wcoverage-mismatch
855 Common Var(warn_coverage_mismatch) Init(1) Warning
856 Warn in case profiles in -fprofile-use do not match.
858 Wcoverage-invalid-line-number
859 Common Var(warn_coverage_invalid_linenum) Init(1) Warning
860 Warn in case a function ends earlier than it begins due to an invalid linenum macros.
862 Wmissing-profile
863 Common Var(warn_missing_profile) Init(1) Warning
864 Warn in case profiles in -fprofile-use do not exist.
866 Wvector-operation-performance
867 Common Var(warn_vector_operation_performance) Warning
868 Warn when a vector operation is compiled outside the SIMD.
870 Wtsan
871 Common Var(warn_tsan) Init(1) Warning
872 Warn about unsupported features in ThreadSanitizer.
874 Xassembler
875 Driver Separate
877 Xlinker
878 Driver Separate
880 Xpreprocessor
881 Driver Separate
884 Driver
886 aux-info
887 Common Separate Var(aux_info_file_name)
888 -aux-info <file>        Emit declaration information into <file>.
890 aux-info=
891 Common Joined Alias(aux-info)
893 coverage
894 Driver
897 Driver
900 Common Joined
901 -d<letters>     Enable dumps from specific passes of the compiler.
903 dumpbase
904 Driver Common Separate Var(dump_base_name)
905 -dumpbase <file>        Set the file basename to be used for dumps.
907 dumpbase-ext
908 Driver Common Separate Var(dump_base_ext)
909 -dumpbase-ext .<ext>    Drop a trailing .<ext> from the dump basename to name auxiliary output files.
911 dumpdir
912 Driver Common Separate Var(dump_dir_name)
913 -dumpdir <dir>  Set the directory name to be used for dumps.
915 dumpmachine
916 Driver
918 dumpspecs
919 Driver
921 dumpversion
922 Driver
924 dumpfullversion
925 Driver
928 Driver Joined Separate
930 ; This option has historically been passed down to the linker by an
931 ; accident of a %{e*} spec, so ensure it continues to be passed down
932 ; as a single option.  The supported option for this purpose is
933 ; -rdynamic.  See PR 47390.
934 export-dynamic
935 Driver Undocumented
937 ; The version of the C++ ABI in use.  The following values are allowed:
939 ; 0: The version of the ABI believed most conformant with the C++ ABI
940 ;    specification.  This ABI may change as bugs are discovered and fixed.
941 ;    Therefore, 0 will not necessarily indicate the same ABI in different
942 ;    versions of G++.
944 ; 1: The version of the ABI first used in G++ 3.2.  No longer selectable.
946 ; 2: The version of the ABI first used in G++ 3.4, and the default
947 ;    until GCC 4.9.
949 ; 3: The version of the ABI that fixes the missing underscore
950 ;    in template non-type arguments of pointer type.
952 ; 4: The version of the ABI that introduces unambiguous mangling of
953 ;    vector types.  First selectable in G++ 4.5.
955 ; 5: The version of the ABI that ignores attribute const/noreturn
956 ;    in function pointer mangling, and corrects mangling of decltype and
957 ;    function parameters used in other parameters and the return type.
958 ;    First selectable in G++ 4.6.
960 ; 6: The version of the ABI that doesn't promote scoped enums to int and
961 ;    changes the mangling of template argument packs, const/static_cast,
962 ;    prefix ++ and --, and a class scope function used as a template
963 ;    argument.
964 ;    First selectable in G++ 4.7.
966 ; 7: The version of the ABI that treats nullptr_t as a builtin type and
967 ;    corrects the mangling of lambdas in default argument scope.
968 ;    First selectable in G++ 4.8.
970 ; 8: The version of the ABI that corrects the substitution behavior of
971 ;    function types with function-cv-qualifiers.
972 ;    First selectable in G++ 4.9 and default in G++ 5.
974 ; 9: The version of the ABI that corrects the alignment of nullptr_t.
975 ;    First selectable and default in G++ 5.2.
977 ; 10: The version of the ABI that mangles attributes that affect type
978 ;     identity, such as ia32 calling convention attributes (stdcall, etc.)
979 ;     Default in G++ 6 (set in c_common_post_options).
981 ; 11: The version of the ABI that corrects mangling of sizeof... expressions
982 ;     and introduces new inheriting constructor handling.
983 ;     Default in G++ 7.
985 ; 12: Corrects the calling convention for classes with only deleted copy/move
986 ;     constructors and changes passing/returning of empty records.
987 ;     Default in G++ 8.1.
989 ; 13: Fixes the accidental change in 12 to the calling convention for classes
990 ;     with deleted copy constructor and trivial move constructor.
991 ;     Default in G++ 8.2.
993 ; 14: Corrects the mangling of nullptr expression.
994 ;     Default in G++ 10.
996 ; 15: Corrects G++ 10 ABI tag regression [PR98481].
997 ;     Available, but not default, in G++ 10.3.
999 ; 16: Changes the mangling of __alignof__ to be distinct from that of alignof.
1000 ;     Adds missing 'on' in mangling of operator names in some cases.
1001 ;     Default in G++ 11.
1003 ; 17: Fixes layout of classes that inherit from aggregate classes with default
1004 ;     member initializers in C++14 and up.
1005 ;     Default in G++ 12.
1007 ; Additional positive integers will be assigned as new versions of
1008 ; the ABI become the default version of the ABI.
1009 fabi-version=
1010 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
1011 The version of the C++ ABI in use.
1013 faggressive-loop-optimizations
1014 Common Var(flag_aggressive_loop_optimizations) Optimization Init(1)
1015 Aggressively optimize loops using language constraints.
1017 falign-functions
1018 Common Var(flag_align_functions) Optimization
1019 Align the start of functions.
1021 falign-functions=
1022 Common RejectNegative Joined Var(str_align_functions) Optimization
1024 flimit-function-alignment
1025 Common Var(flag_limit_function_alignment) Optimization Init(0)
1027 falign-jumps
1028 Common Var(flag_align_jumps) Optimization
1029 Align labels which are only reached by jumping.
1031 falign-jumps=
1032 Common RejectNegative Joined Var(str_align_jumps) Optimization
1034 falign-labels
1035 Common Var(flag_align_labels) Optimization
1036 Align all labels.
1038 falign-labels=
1039 Common RejectNegative Joined Var(str_align_labels) Optimization
1041 falign-loops
1042 Common Var(flag_align_loops) Optimization
1043 Align the start of loops.
1045 falign-loops=
1046 Common RejectNegative Joined Var(str_align_loops) Optimization
1048 fallow-store-data-races
1049 Common Var(flag_store_data_races) Optimization
1050 Allow the compiler to introduce new data races on stores.
1052 fanalyzer
1053 Common Var(flag_analyzer)
1054 Enable static analysis pass.
1056 fargument-alias
1057 Common Ignore
1058 Does nothing. Preserved for backward compatibility.
1060 fargument-noalias
1061 Common Ignore
1062 Does nothing. Preserved for backward compatibility.
1064 fargument-noalias-global
1065 Common Ignore
1066 Does nothing. Preserved for backward compatibility.
1068 fargument-noalias-anything
1069 Common Ignore
1070 Does nothing. Preserved for backward compatibility.
1072 fsanitize=
1073 Common Driver Joined
1074 Select what to sanitize.
1076 fsanitize-coverage=
1077 Common Joined Enum(sanitize_coverage) Var(flag_sanitize_coverage) EnumBitSet
1078 Select type of coverage sanitization.
1080 Enum
1081 Name(sanitize_coverage) Type(int)
1083 EnumValue
1084 Enum(sanitize_coverage) String(trace-pc) Value(SANITIZE_COV_TRACE_PC)
1086 EnumValue
1087 Enum(sanitize_coverage) String(trace-cmp) Value(SANITIZE_COV_TRACE_CMP)
1089 fasan-shadow-offset=
1090 Common Joined RejectNegative Var(common_deferred_options) Defer
1091 -fasan-shadow-offset=<number>   Use custom shadow memory offset.
1093 fsanitize-sections=
1094 Common Joined RejectNegative Var(common_deferred_options) Defer
1095 -fsanitize-sections=<sec1,sec2,...>     Sanitize global variables
1096 in user-defined sections.
1098 fsanitize-recover=
1099 Common Joined
1100 After diagnosing undefined behavior attempt to continue execution.
1102 fsanitize-recover
1103 Common
1104 This switch is deprecated; use -fsanitize-recover= instead.
1106 fsanitize-trap=
1107 Common Driver Joined
1108 Use traps instead of diagnostics of undefined behavior sanitizers.
1110 fsanitize-trap
1111 Common Driver
1113 fsanitize-address-use-after-scope
1114 Common Driver Var(flag_sanitize_address_use_after_scope) Init(0)
1116 fsanitize-undefined-trap-on-error
1117 Common Driver Alias(fsanitize-trap)
1118 This switch is deprecated; use -fsanitize-trap= instead.
1120 fasynchronous-unwind-tables
1121 Common Var(flag_asynchronous_unwind_tables) Optimization
1122 Generate unwind tables that are exact at each instruction boundary.
1124 fauto-inc-dec
1125 Common Var(flag_auto_inc_dec) Init(1) Optimization
1126 Generate auto-inc/dec instructions.
1128 fauto-profile
1129 Common Var(flag_auto_profile)
1130 Use sample profile information for call graph node weights. The default
1131 profile file is fbdata.afdo in 'pwd'.
1133 fauto-profile=
1134 Common Joined RejectNegative Var(auto_profile_file)
1135 Use sample profile information for call graph node weights. The profile
1136 file is specified in the argument.
1138 ; -fcheck-bounds causes gcc to generate array bounds checks.
1139 ; For C, C++ and ObjC: defaults off.
1140 ; For Java: defaults to on.
1141 ; For Fortran: defaults to off.
1142 fbounds-check
1143 Common Var(flag_bounds_check)
1144 Generate code to check bounds before indexing arrays.
1146 fbranch-count-reg
1147 Common Var(flag_branch_on_count_reg) Optimization
1148 Replace add, compare, branch with branch on count register.
1150 fbranch-probabilities
1151 Common Var(flag_branch_probabilities) Optimization
1152 Use profiling information for branch probabilities.
1154 fbranch-target-load-optimize
1155 Common Ignore
1156 Does nothing.  Preserved for backward compatibility.
1158 fbranch-target-load-optimize2
1159 Common Ignore
1160 Does nothing.  Preserved for backward compatibility.
1162 fbtr-bb-exclusive
1163 Common Ignore
1164 Does nothing.  Preserved for backward compatibility.
1166 fcallgraph-info
1167 Common RejectNegative Var(flag_callgraph_info) Init(NO_CALLGRAPH_INFO);
1168 Output callgraph information on a per-file basis.
1170 fcallgraph-info=
1171 Common RejectNegative Joined
1172 Output callgraph information on a per-file basis with decorations.
1174 fcall-saved-
1175 Common Joined RejectNegative Var(common_deferred_options) Defer
1176 -fcall-saved-<register> Mark <register> as being preserved across functions.
1178 fcall-used-
1179 Common Joined RejectNegative Var(common_deferred_options) Defer
1180 -fcall-used-<register>  Mark <register> as being corrupted by function calls.
1182 ; Nonzero for -fcaller-saves: allocate values in regs that need to
1183 ; be saved across function calls, if that produces overall better code.
1184 ; Optional now, so people can test it.
1185 fcaller-saves
1186 Common Var(flag_caller_saves) Optimization
1187 Save registers around function calls.
1189 fcheck-data-deps
1190 Common Ignore
1191 This switch is deprecated; do not use.
1193 fcheck-new
1194 Common Var(flag_check_new)
1195 Check the return value of new in C++.
1197 fchecking
1198 Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0)
1199 Perform internal consistency checkings.
1201 fchecking=
1202 Common Joined RejectNegative UInteger Var(flag_checking)
1203 Perform internal consistency checkings.
1205 fcode-hoisting
1206 Common Var(flag_code_hoisting) Optimization
1207 Enable code hoisting.
1209 fcombine-stack-adjustments
1210 Common Var(flag_combine_stack_adjustments) Optimization
1211 Looks for opportunities to reduce stack adjustments and stack references.
1213 fcommon
1214 Common Var(flag_no_common,0) Init(1)
1215 Put uninitialized globals in the common section.
1217 fcompare-debug
1218 Driver
1219 ; Converted by the driver to -fcompare-debug= options.
1221 fcompare-debug=
1222 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
1223 -fcompare-debug[=<opts>]        Compile with and without e.g. -gtoggle, and compare the final-insns dump.
1225 fcompare-debug-second
1226 Common Driver RejectNegative Var(flag_compare_debug)
1227 Run only the second compilation of -fcompare-debug.
1229 fcompare-elim
1230 Common Var(flag_compare_elim_after_reload) Optimization
1231 Perform comparison elimination after register allocation has finished.
1233 fconserve-stack
1234 Common Var(flag_conserve_stack) Optimization
1235 Do not perform optimizations increasing noticeably stack usage.
1237 fcprop-registers
1238 Common Var(flag_cprop_registers) Optimization
1239 Perform a register copy-propagation optimization pass.
1241 fcrossjumping
1242 Common Var(flag_crossjumping) Optimization
1243 Perform cross-jumping optimization.
1245 fcse-follow-jumps
1246 Common Var(flag_cse_follow_jumps) Optimization
1247 When running CSE, follow jumps to their targets.
1249 fcse-skip-blocks
1250 Common Ignore
1251 Does nothing.  Preserved for backward compatibility.
1253 fcx-limited-range
1254 Common Var(flag_cx_limited_range) Optimization SetByCombined
1255 Omit range reduction step when performing complex division.
1257 fcx-fortran-rules
1258 Common Var(flag_cx_fortran_rules) Optimization
1259 Complex multiplication and division follow Fortran rules.
1261 fdata-sections
1262 Common Var(flag_data_sections)
1263 Place data items into their own section.
1265 fdbg-cnt-list
1266 Common Var(flag_dbg_cnt_list)
1267 List all available debugging counters with their limits and counts.
1269 fdbg-cnt=
1270 Common RejectNegative Joined Var(common_deferred_options) Defer
1271 -fdbg-cnt=<counter>[:<lower_limit1>-]<upper_limit1>[:<lower_limit2>-<upper_limit2>:...][,<counter>:...] Set the debug counter limit.
1273 fdebug-prefix-map=
1274 Common Joined RejectNegative Var(common_deferred_options) Defer
1275 -fdebug-prefix-map=<old>=<new>  Map one directory name to another in debug information.
1277 ffile-prefix-map=
1278 Common Joined RejectNegative Var(common_deferred_options) Defer
1279 -ffile-prefix-map=<old>=<new>   Map one directory name to another in compilation result.
1281 fdebug-types-section
1282 Common Var(flag_debug_types_section) Init(0)
1283 Output .debug_types section when using DWARF v4 debuginfo.
1285 ; Nonzero for -fdefer-pop: don't pop args after each function call
1286 ; instead save them up to pop many calls' args with one insns.
1287 fdefer-pop
1288 Common Var(flag_defer_pop) Optimization
1289 Defer popping functions args from stack until later.
1291 fdelayed-branch
1292 Common Var(flag_delayed_branch) Optimization
1293 Attempt to fill delay slots of branch instructions.
1295 fdelete-dead-exceptions
1296 Common Var(flag_delete_dead_exceptions) Init(0) Optimization
1297 Delete dead instructions that may throw exceptions.
1299 fdelete-null-pointer-checks
1300 Common Var(flag_delete_null_pointer_checks) Init(-1) Optimization
1301 Delete useless null pointer checks.
1303 fdevirtualize-at-ltrans
1304 Common Var(flag_ltrans_devirtualize)
1305 Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
1307 fdevirtualize-speculatively
1308 Common Var(flag_devirtualize_speculatively) Optimization
1309 Perform speculative devirtualization.
1311 fdevirtualize
1312 Common Var(flag_devirtualize) Optimization
1313 Try to convert virtual calls to direct ones.
1315 fdiagnostics-show-location=
1316 Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
1317 -fdiagnostics-show-location=[once|every-line]   How often to emit source location at the beginning of line-wrapped diagnostics.
1319 ; Required for these enum values.
1320 SourceInclude
1321 pretty-print.h
1323 Enum
1324 Name(diagnostic_prefixing_rule) Type(int)
1326 EnumValue
1327 Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
1329 EnumValue
1330 Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
1332 fdiagnostics-show-caret
1333 Common Var(flag_diagnostics_show_caret) Init(1)
1334 Show the source line with a caret indicating the column.
1336 fdiagnostics-show-labels
1337 Common Var(flag_diagnostics_show_labels) Init(1)
1338 Show labels annotating ranges of source code when showing source.
1340 fdiagnostics-show-line-numbers
1341 Common Var(flag_diagnostics_show_line_numbers) Init(1)
1342 Show line numbers in the left margin when showing source.
1344 fdiagnostics-color
1345 Common Alias(fdiagnostics-color=,always,never)
1348 fdiagnostics-color=
1349 Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
1350 -fdiagnostics-color=[never|always|auto] Colorize diagnostics.
1352 ; Required for these enum values.
1353 SourceInclude
1354 diagnostic-color.h
1356 Enum
1357 Name(diagnostic_color_rule) Type(int)
1359 EnumValue
1360 Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
1362 EnumValue
1363 Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
1365 EnumValue
1366 Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
1368 fdiagnostics-urls=
1369 Driver Common Joined RejectNegative Var(flag_diagnostics_show_urls) Enum(diagnostic_url_rule) Init(DIAGNOSTICS_URL_AUTO)
1370 -fdiagnostics-urls=[never|always|auto]  Embed URLs in diagnostics.
1372 ; Required for these enum values.
1373 SourceInclude
1374 diagnostic-url.h
1376 Enum
1377 Name(diagnostic_url_rule) Type(int)
1379 EnumValue
1380 Enum(diagnostic_url_rule) String(never) Value(DIAGNOSTICS_URL_NO)
1382 EnumValue
1383 Enum(diagnostic_url_rule) String(always) Value(DIAGNOSTICS_URL_YES)
1385 EnumValue
1386 Enum(diagnostic_url_rule) String(auto) Value(DIAGNOSTICS_URL_AUTO)
1388 fdiagnostics-column-unit=
1389 Common Joined RejectNegative Enum(diagnostics_column_unit)
1390 -fdiagnostics-column-unit=[display|byte]        Select whether column numbers are output as display columns (default) or raw bytes.
1392 fdiagnostics-column-origin=
1393 Common Joined RejectNegative UInteger
1394 -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.
1396 fdiagnostics-format=
1397 Common Joined RejectNegative Enum(diagnostics_output_format)
1398 -fdiagnostics-format=[text|sarif-stderr|sarif-file|json|json-stderr|json-file]  Select output format.
1400 fdiagnostics-escape-format=
1401 Common Joined RejectNegative Enum(diagnostics_escape_format)
1402 -fdiagnostics-escape-format=[unicode|bytes]     Select how to escape non-printable-ASCII bytes in the source for diagnostics that suggest it.
1404 ; Required for these enum values.
1405 SourceInclude
1406 diagnostic.h
1408 Enum
1409 Name(diagnostics_column_unit) Type(int)
1411 EnumValue
1412 Enum(diagnostics_column_unit) String(display) Value(DIAGNOSTICS_COLUMN_UNIT_DISPLAY)
1414 EnumValue
1415 Enum(diagnostics_column_unit) String(byte) Value(DIAGNOSTICS_COLUMN_UNIT_BYTE)
1417 Enum
1418 Name(diagnostics_escape_format) Type(int)
1420 EnumValue
1421 Enum(diagnostics_escape_format) String(unicode) Value(DIAGNOSTICS_ESCAPE_FORMAT_UNICODE)
1423 EnumValue
1424 Enum(diagnostics_escape_format) String(bytes) Value(DIAGNOSTICS_ESCAPE_FORMAT_BYTES)
1426 Enum
1427 Name(diagnostics_output_format) Type(int)
1429 EnumValue
1430 Enum(diagnostics_output_format) String(text) Value(DIAGNOSTICS_OUTPUT_FORMAT_TEXT)
1432 EnumValue
1433 Enum(diagnostics_output_format) String(json) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR)
1435 EnumValue
1436 Enum(diagnostics_output_format) String(json-stderr) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR)
1438 EnumValue
1439 Enum(diagnostics_output_format) String(json-file) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE)
1441 EnumValue
1442 Enum(diagnostics_output_format) String(sarif-stderr) Value(DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR)
1444 EnumValue
1445 Enum(diagnostics_output_format) String(sarif-file) Value(DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE)
1447 fdiagnostics-parseable-fixits
1448 Common Var(flag_diagnostics_parseable_fixits)
1449 Print fix-it hints in machine-readable form.
1451 fdiagnostics-generate-patch
1452 Common Var(flag_diagnostics_generate_patch)
1453 Print fix-it hints to stderr in unified diff format.
1455 fdiagnostics-show-option
1456 Common Var(flag_diagnostics_show_option) Init(1)
1457 Amend appropriate diagnostic messages with the command line option that controls them.
1459 fdiagnostics-show-cwe
1460 Common Var(flag_diagnostics_show_cwe) Init(1)
1461 Print CWE identifiers for diagnostic messages, where available.
1463 fdiagnostics-show-rules
1464 Common Var(flag_diagnostics_show_rules) Init(1)
1465 Print any rules associated with diagnostic messages.
1467 fdiagnostics-path-format=
1468 Common Joined RejectNegative Var(flag_diagnostics_path_format) Enum(diagnostic_path_format) Init(DPF_INLINE_EVENTS)
1469 Specify how to print any control-flow path associated with a diagnostic.
1471 fdiagnostics-plain-output
1472 Driver Common RejectNegative
1473 Turn off any diagnostics features that complicate the output, such as line numbers, color, and warning URLs.
1475 ftabstop=
1476 Common Joined RejectNegative UInteger
1477 -ftabstop=<number>      Distance between tab stops for column reporting.
1479 Enum
1480 Name(diagnostic_path_format) Type(int)
1482 EnumValue
1483 Enum(diagnostic_path_format) String(none) Value(DPF_NONE)
1485 EnumValue
1486 Enum(diagnostic_path_format) String(separate-events) Value(DPF_SEPARATE_EVENTS)
1488 EnumValue
1489 Enum(diagnostic_path_format) String(inline-events) Value(DPF_INLINE_EVENTS)
1491 fdiagnostics-show-path-depths
1492 Common Var(flag_diagnostics_show_path_depths) Init(0)
1493 Show stack depths of events in paths.
1495 fdiagnostics-minimum-margin-width=
1496 Common Joined UInteger Var(diagnostics_minimum_margin_width) Init(6)
1497 Set minimum width of left margin of source code when showing source.
1499 fdisable-
1500 Common Joined RejectNegative Var(common_deferred_options) Defer
1501 -fdisable-[tree|rtl|ipa]-<pass>=range1+range2   Disable an optimization pass.
1503 fenable-
1504 Common Joined RejectNegative Var(common_deferred_options) Defer
1505 -fenable-[tree|rtl|ipa]-<pass>=range1+range2    Enable an optimization pass.
1507 fdump-
1508 Common Joined RejectNegative Var(common_deferred_options) Defer
1509 -fdump-<type>   Dump various compiler internals to a file.
1511 fdump-final-insns
1512 Driver RejectNegative
1514 fdump-final-insns=
1515 Common RejectNegative Joined Var(flag_dump_final_insns)
1516 -fdump-final-insns=filename     Dump to filename the insns at the end of translation.
1518 fdump-go-spec=
1519 Common RejectNegative Joined Var(flag_dump_go_spec)
1520 -fdump-go-spec=filename Write all declarations to file as Go code.
1522 fdump-noaddr
1523 Common Var(flag_dump_noaddr)
1524 Suppress output of addresses in debugging dumps.
1526 freport-bug
1527 Common Driver Var(flag_report_bug)
1528 Collect and dump debug information into temporary file if ICE in C/C++
1529 compiler occurred.
1531 fdump-internal-locations
1532 Common Var(flag_dump_locations) Init(0)
1533 Dump detailed information on GCC's internal representation of source code locations.
1535 fdump-passes
1536 Common Var(flag_dump_passes) Init(0)
1537 Dump optimization passes.
1539 fdump-unnumbered
1540 Common Var(flag_dump_unnumbered)
1541 Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
1543 fdump-unnumbered-links
1544 Common Var(flag_dump_unnumbered_links)
1545 Suppress output of previous and next insn numbers in debugging dumps.
1547 fdwarf2-cfi-asm
1548 Common Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1549 Enable CFI tables via GAS assembler directives.
1551 fearly-inlining
1552 Common Var(flag_early_inlining) Init(1) Optimization
1553 Perform early inlining.
1555 feliminate-dwarf2-dups
1556 Common Ignore
1557 Does nothing.  Preserved for backward compatibility.
1559 fipa-sra
1560 Common Var(flag_ipa_sra) Init(0) Optimization
1561 Perform interprocedural reduction of aggregates.
1563 feliminate-unused-debug-symbols
1564 Common Var(flag_debug_only_used_symbols) Init(1)
1565 Perform unused symbol elimination in debug info.
1567 feliminate-unused-debug-types
1568 Common Var(flag_eliminate_unused_debug_types) Init(1)
1569 Perform unused type elimination in debug info.
1571 femit-class-debug-always
1572 Common Var(flag_emit_class_debug_always) Init(0)
1573 Do not suppress C++ class debug information.
1575 fexceptions
1576 Common Var(flag_exceptions) Optimization EnabledBy(fnon-call-exceptions)
1577 Enable exception handling.
1579 fexpensive-optimizations
1580 Common Var(flag_expensive_optimizations) Optimization
1581 Perform a number of minor, expensive optimizations.
1583 fexcess-precision=
1584 Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision) Init(EXCESS_PRECISION_DEFAULT) Optimization SetByCombined
1585 -fexcess-precision=[fast|standard|16]   Specify handling of excess floating-point precision.
1587 Enum
1588 Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1590 EnumValue
1591 Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1593 EnumValue
1594 Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1596 EnumValue
1597 Enum(excess_precision) String(16) Value(EXCESS_PRECISION_FLOAT16)
1599 ; Whether we permit the extended set of values for FLT_EVAL_METHOD
1600 ; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11.
1601 fpermitted-flt-eval-methods=
1602 Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT)
1603 -fpermitted-flt-eval-methods=[c11|ts-18661]     Specify which values of FLT_EVAL_METHOD are permitted.
1605 Enum
1606 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)
1608 EnumValue
1609 Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11)
1611 EnumValue
1612 Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
1614 ffast-math
1615 Common Optimization
1617 ffat-lto-objects
1618 Common Var(flag_fat_lto_objects)
1619 Output lto objects containing both the intermediate language and binary output.
1621 ffinite-math-only
1622 Common Var(flag_finite_math_only) Optimization SetByCombined
1623 Assume no NaNs or infinities are generated.
1625 ffinite-loops
1626 Common Var(flag_finite_loops) Optimization Init(0)
1627 Assume that loops with an exit will terminate and not loop indefinitely.
1629 ffixed-
1630 Common Joined RejectNegative Var(common_deferred_options) Defer
1631 -ffixed-<register>      Mark <register> as being unavailable to the compiler.
1633 ffloat-store
1634 Common Var(flag_float_store) Optimization
1635 Don't allocate floats and doubles in extended-precision registers.
1637 fforce-addr
1638 Common Ignore
1639 Does nothing.  Preserved for backward compatibility.
1641 fforward-propagate
1642 Common Var(flag_forward_propagate) Optimization
1643 Perform a forward propagation pass on RTL.
1645 ffp-contract=
1646 Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
1647 -ffp-contract=[off|on|fast]     Perform floating-point expression contraction.
1649 Enum
1650 Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1652 EnumValue
1653 Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1655 ; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1656 EnumValue
1657 Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1659 EnumValue
1660 Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1662 ffp-int-builtin-inexact
1663 Common Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1664 Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1666 ; Nonzero means don't put addresses of constant functions in registers.
1667 ; Used for compiling the Unix kernel, where strange substitutions are
1668 ; done on the assembly output.
1669 ffunction-cse
1670 Common Var(flag_no_function_cse,0) Optimization
1671 Allow function addresses to be held in registers.
1673 ffunction-sections
1674 Common Var(flag_function_sections)
1675 Place each function into its own section.
1677 fgcse
1678 Common Var(flag_gcse) Optimization
1679 Perform global common subexpression elimination.
1681 fgcse-lm
1682 Common Var(flag_gcse_lm) Init(1) Optimization
1683 Perform enhanced load motion during global common subexpression elimination.
1685 fgcse-sm
1686 Common Var(flag_gcse_sm) Init(0) Optimization
1687 Perform store motion after global common subexpression elimination.
1689 fgcse-las
1690 Common Var(flag_gcse_las) Init(0) Optimization
1691 Perform redundant load after store elimination in global common subexpression
1692 elimination.
1694 fgcse-after-reload
1695 Common Var(flag_gcse_after_reload) Optimization
1696 Perform global common subexpression elimination after register allocation has
1697 finished.
1699 Enum
1700 Name(dwarf_gnat_encodings) Type(int)
1702 EnumValue
1703 Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1705 EnumValue
1706 Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1708 EnumValue
1709 Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1711 fgnat-encodings=
1712 Common Enum(dwarf_gnat_encodings) Joined RejectNegative Undocumented Var(gnat_encodings)
1713 -fgnat-encodings=[all|gdb|minimal]      Select the balance between GNAT encodings and standard DWARF emitted in the debug information.
1715 ; This option is not documented yet as its semantics will change.
1716 fgraphite
1717 Common Var(flag_graphite) Optimization
1718 Enable in and out of Graphite representation.
1720 fgraphite-identity
1721 Common Var(flag_graphite_identity) Optimization
1722 Enable Graphite Identity transformation.
1724 fhoist-adjacent-loads
1725 Common Var(flag_hoist_adjacent_loads) Optimization
1726 Enable hoisting adjacent loads to encourage generating conditional move
1727 instructions.
1729 fkeep-gc-roots-live
1730 Common Undocumented Var(flag_keep_gc_roots_live) Optimization
1731 ; Always keep a pointer to a live memory block
1733 flarge-source-files
1734 Common Var(flag_large_source_files) Init(0)
1735 Improve GCC's ability to track column numbers in large source files,
1736 at the expense of slower compilation.
1738 floop-parallelize-all
1739 Common Var(flag_loop_parallelize_all) Optimization
1740 Mark all loops as parallel.
1742 floop-strip-mine
1743 Common Alias(floop-nest-optimize)
1744 Enable loop nest transforms.  Same as -floop-nest-optimize.
1746 floop-interchange
1747 Common Var(flag_loop_interchange) Optimization
1748 Enable loop interchange on trees.
1750 floop-block
1751 Common Alias(floop-nest-optimize)
1752 Enable loop nest transforms.  Same as -floop-nest-optimize.
1754 floop-unroll-and-jam
1755 Common Var(flag_unroll_jam) Optimization
1756 Perform unroll-and-jam on loops.
1758 fgnu-tm
1759 Common Var(flag_tm)
1760 Enable support for GNU transactional memory.
1762 fgnu-unique
1763 Common Var(flag_gnu_unique) Init(1)
1764 Use STB_GNU_UNIQUE if supported by the assembler.
1766 floop-flatten
1767 Common Ignore
1768 Does nothing. Preserved for backward compatibility.
1770 floop-nest-optimize
1771 Common Var(flag_loop_nest_optimize) Optimization
1772 Enable the loop nest optimizer.
1774 fstrict-volatile-bitfields
1775 Common Var(flag_strict_volatile_bitfields) Init(-1) Optimization
1776 Force bitfield accesses to match their type width.
1778 fstore-merging
1779 Common Var(flag_store_merging) Optimization
1780 Merge adjacent stores.
1782 fguess-branch-probability
1783 Common Var(flag_guess_branch_prob) Optimization
1784 Enable guessing of branch probabilities.
1786 fharden-compares
1787 Common Var(flag_harden_compares) Optimization
1788 Harden conditionals not used in branches, checking reversed conditions.
1790 fharden-conditional-branches
1791 Common Var(flag_harden_conditional_branches) Optimization
1792 Harden conditional branches by checking reversed conditions.
1794 ; Nonzero means ignore `#ident' directives.  0 means handle them.
1795 ; Generate position-independent code for executables if possible
1796 ; On SVR4 targets, it also controls whether or not to emit a
1797 ; string identifying the compiler.
1798 fident
1799 Common Var(flag_no_ident,0)
1800 Process #ident directives.
1802 fif-conversion
1803 Common Var(flag_if_conversion) Optimization
1804 Perform conversion of conditional jumps to branchless equivalents.
1806 fif-conversion2
1807 Common Var(flag_if_conversion2) Optimization
1808 Perform conversion of conditional jumps to conditional execution.
1810 fstack-reuse=
1811 Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
1812 -fstack-reuse=[all|named_vars|none]     Set stack reuse level for local variables.
1814 Enum
1815 Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1817 EnumValue
1818 Enum(stack_reuse_level) String(all) Value(SR_ALL)
1820 EnumValue
1821 Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1823 EnumValue
1824 Enum(stack_reuse_level) String(none) Value(SR_NONE)
1826 ftree-loop-if-convert
1827 Common Var(flag_tree_loop_if_convert) Init(-1) Optimization
1828 Convert conditional jumps in innermost loops to branchless equivalents.
1830 ftree-loop-if-convert-stores
1831 Common Ignore
1832 Does nothing. Preserved for backward compatibility.
1834 ; -finhibit-size-directive inhibits output of .size for ELF.
1835 ; This is used only for compiling crtstuff.c,
1836 ; and it may be extended to other effects
1837 ; needed for crtstuff.c on other systems.
1838 finhibit-size-directive
1839 Common Var(flag_inhibit_size_directive)
1840 Do not generate .size directives.
1842 findirect-inlining
1843 Common Var(flag_indirect_inlining) Optimization
1844 Perform indirect inlining.
1846 ; General flag to enable inlining.  Specifying -fno-inline will disable
1847 ; all inlining apart from always-inline functions.
1848 finline
1849 Common Var(flag_no_inline,0) Init(0) Optimization
1850 Enable inlining of function declared \"inline\", disabling disables all inlining.
1852 finline-small-functions
1853 Common Var(flag_inline_small_functions) Optimization
1854 Integrate functions into their callers when code size is known not to grow.
1856 finline-functions
1857 Common Var(flag_inline_functions) Optimization
1858 Integrate functions not declared \"inline\" into their callers when profitable.
1860 finline-functions-called-once
1861 Common Var(flag_inline_functions_called_once) Optimization
1862 Integrate functions only required by their single caller.
1864 finline-limit-
1865 Common RejectNegative Joined Alias(finline-limit=)
1867 finline-limit=
1868 Common RejectNegative Joined UInteger
1869 -finline-limit=<number> Limit the size of inlined functions to <number>.
1871 finline-atomics
1872 Common Var(flag_inline_atomics) Init(1) Optimization
1873 Inline __atomic operations when a lock free instruction sequence is available.
1875 fcf-protection
1876 Common RejectNegative Alias(fcf-protection=,full)
1878 fcf-protection=
1879 Common Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
1880 -fcf-protection=[full|branch|return|none|check] Instrument functions with checks to verify jump/call/return control-flow transfer
1881 instructions have valid targets.
1883 Enum
1884 Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
1886 EnumValue
1887 Enum(cf_protection_level) String(full) Value(CF_FULL)
1889 EnumValue
1890 Enum(cf_protection_level) String(branch) Value(CF_BRANCH)
1892 EnumValue
1893 Enum(cf_protection_level) String(return) Value(CF_RETURN)
1895 EnumValue
1896 Enum(cf_protection_level) String(check) Value(CF_CHECK)
1898 EnumValue
1899 Enum(cf_protection_level) String(none) Value(CF_NONE)
1901 finstrument-functions
1902 Common Var(flag_instrument_function_entry_exit,1)
1903 Instrument function entry and exit with profiling calls.
1905 finstrument-functions-once
1906 Common Var(flag_instrument_function_entry_exit,2)
1907 Instrument function entry and exit with profiling calls invoked once.
1909 finstrument-functions-exclude-function-list=
1910 Common RejectNegative Joined
1911 -finstrument-functions-exclude-function-list=name,...   Do not instrument listed functions.
1913 finstrument-functions-exclude-file-list=
1914 Common RejectNegative Joined
1915 -finstrument-functions-exclude-file-list=filename,...   Do not instrument functions listed in files.
1917 fipa-cp
1918 Common Var(flag_ipa_cp) Optimization
1919 Perform interprocedural constant propagation.
1921 fipa-cp-clone
1922 Common Var(flag_ipa_cp_clone) Optimization
1923 Perform cloning to make Interprocedural constant propagation stronger.
1925 fipa-cp-alignment
1926 Common Ignore
1927 Does nothing.  Preserved for backward compatibility.
1929 fipa-bit-cp
1930 Common Var(flag_ipa_bit_cp) Optimization
1931 Perform interprocedural bitwise constant propagation.
1933 fipa-modref
1934 Common Var(flag_ipa_modref) Optimization
1935 Perform interprocedural modref analysis.
1937 fipa-profile
1938 Common Var(flag_ipa_profile) Init(0) Optimization
1939 Perform interprocedural profile propagation.
1941 fipa-pta
1942 Common Var(flag_ipa_pta) Init(0) Optimization
1943 Perform interprocedural points-to analysis.
1945 fipa-pure-const
1946 Common Var(flag_ipa_pure_const) Init(0) Optimization
1947 Discover pure and const functions.
1949 fipa-icf
1950 Common Var(flag_ipa_icf) Optimization
1951 Perform Identical Code Folding for functions and read-only variables.
1953 fipa-icf-functions
1954 Common Var(flag_ipa_icf_functions) Optimization
1955 Perform Identical Code Folding for functions.
1957 fipa-icf-variables
1958 Common Var(flag_ipa_icf_variables) Optimization
1959 Perform Identical Code Folding for variables.
1961 fipa-reference
1962 Common Var(flag_ipa_reference) Init(0) Optimization
1963 Discover read-only and non addressable static variables.
1965 fipa-reference-addressable
1966 Common Var(flag_ipa_reference_addressable) Init(0) Optimization
1967 Discover read-only, write-only and non-addressable static variables.
1969 fipa-stack-alignment
1970 Common Var(flag_ipa_stack_alignment) Init(1) Optimization
1971 Reduce stack alignment on call sites if possible.
1973 fipa-matrix-reorg
1974 Common Ignore
1975 Does nothing. Preserved for backward compatibility.
1977 fipa-struct-reorg
1978 Common Ignore
1979 Does nothing. Preserved for backward compatibility.
1981 fipa-vrp
1982 Common Var(flag_ipa_vrp) Optimization
1983 Perform IPA Value Range Propagation.
1985 fira-algorithm=
1986 Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
1987 -fira-algorithm=[CB|priority]   Set the used IRA algorithm.
1989 fipa-strict-aliasing
1990 Common Var(flag_ipa_strict_aliasing) Init(1) Optimization
1991 Assume strict aliasing rules apply across (uninlined) function boundaries.
1993 Enum
1994 Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1996 EnumValue
1997 Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1999 EnumValue
2000 Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
2002 fira-region=
2003 Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_ONE) Optimization
2004 -fira-region=[one|all|mixed]    Set regions for IRA.
2006 Enum
2007 Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
2009 EnumValue
2010 Enum(ira_region) String(one) Value(IRA_REGION_ONE)
2012 EnumValue
2013 Enum(ira_region) String(all) Value(IRA_REGION_ALL)
2015 EnumValue
2016 Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
2018 fira-hoist-pressure
2019 Common Var(flag_ira_hoist_pressure) Init(1) Optimization
2020 Use IRA based register pressure calculation
2021 in RTL hoist optimizations.
2023 fira-loop-pressure
2024 Common Var(flag_ira_loop_pressure) Optimization
2025 Use IRA based register pressure calculation
2026 in RTL loop optimizations.
2028 fira-share-save-slots
2029 Common Var(flag_ira_share_save_slots) Init(1) Optimization
2030 Share slots for saving different hard registers.
2032 fira-share-spill-slots
2033 Common Var(flag_ira_share_spill_slots) Init(1) Optimization
2034 Share stack slots for spilled pseudo-registers.
2036 fira-verbose=
2037 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
2038 -fira-verbose=<number>  Control IRA's level of diagnostic messages.
2040 fivopts
2041 Common Var(flag_ivopts) Init(1) Optimization
2042 Optimize induction variables on trees.
2044 fjump-tables
2045 Common Var(flag_jump_tables) Init(1) Optimization
2046 Use jump tables for sufficiently large switch statements.
2048 fbit-tests
2049 Common Var(flag_bit_tests) Init(1) Optimization
2050 Use bit tests for sufficiently large switch statements.
2052 fkeep-inline-functions
2053 Common Var(flag_keep_inline_functions)
2054 Generate code for functions even if they are fully inlined.
2056 fkeep-static-functions
2057 Common Var(flag_keep_static_functions)
2058 Generate code for static functions even if they are never called.
2060 fkeep-static-consts
2061 Common Var(flag_keep_static_consts) Init(1)
2062 Emit static const variables even if they are not used.
2064 fleading-underscore
2065 Common Var(flag_leading_underscore) Init(-1)
2066 Give external symbols a leading underscore.
2068 floop-optimize
2069 Common Ignore
2070 Does nothing.  Preserved for backward compatibility.
2072 flra-remat
2073 Common Var(flag_lra_remat) Optimization
2074 Do CFG-sensitive rematerialization in LRA.
2076 flto
2077 Common
2078 Enable link-time optimization.
2080 flto=
2081 Common RejectNegative Joined Var(flag_lto)
2082 Link-time optimization with number of parallel jobs or jobserver.
2084 Enum
2085 Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
2087 EnumValue
2088 Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
2090 EnumValue
2091 Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
2093 EnumValue
2094 Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
2096 EnumValue
2097 Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
2099 EnumValue
2100 Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
2102 flto-partition=
2103 Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
2104 Specify the algorithm to partition symbols and vars at linktime.
2106 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
2107 flto-compression-level=
2108 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 19)
2109 -flto-compression-level=<number>        Use zlib/zstd compression level <number> for IL.
2111 flto-odr-type-merging
2112 Common Ignore
2113 Does nothing.  Preserved for backward compatibility.
2115 flto-report
2116 Common Var(flag_lto_report) Init(0)
2117 Report various link-time optimization statistics.
2119 flto-report-wpa
2120 Common Var(flag_lto_report_wpa) Init(0)
2121 Report various link-time optimization statistics for WPA only.
2123 fmath-errno
2124 Common Var(flag_errno_math) Init(1) Optimization SetByCombined
2125 Set errno after built-in math functions.
2127 fmax-errors=
2128 Common Joined RejectNegative UInteger Var(flag_max_errors)
2129 -fmax-errors=<number>   Maximum number of errors to report.
2131 fmem-report
2132 Common Var(mem_report)
2133 Report on permanent memory allocation.
2135 fmem-report-wpa
2136 Common Var(mem_report_wpa)
2137 Report on permanent memory allocation in WPA only.
2139 ; This will attempt to merge constant section constants, if 1 only
2140 ; string constants and constants from constant pool, if 2 also constant
2141 ; variables.
2142 fmerge-all-constants
2143 Common Var(flag_merge_constants,2) Init(1)
2144 Attempt to merge identical constants and constant variables.
2146 fmerge-constants
2147 Common Var(flag_merge_constants,1)
2148 Attempt to merge identical constants across compilation units.
2150 fmerge-debug-strings
2151 Common Var(flag_merge_debug_strings) Init(1)
2152 Attempt to merge identical debug strings across compilation units.
2154 fmessage-length=
2155 Common RejectNegative Joined UInteger
2156 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping.
2158 fmodulo-sched
2159 Common Var(flag_modulo_sched) Optimization
2160 Perform SMS based modulo scheduling before the first scheduling pass.
2162 fmodulo-sched-allow-regmoves
2163 Common Var(flag_modulo_sched_allow_regmoves) Optimization
2164 Perform SMS based modulo scheduling with register moves allowed.
2166 fmove-loop-invariants
2167 Common Var(flag_move_loop_invariants) Optimization
2168 Move loop invariant computations out of loops.
2170 fmove-loop-stores
2171 Common Var(flag_move_loop_stores) Optimization
2172 Move stores out of loops.
2174 fdce
2175 Common Var(flag_dce) Init(1) Optimization
2176 Use the RTL dead code elimination pass.
2178 fdse
2179 Common Var(flag_dse) Init(0) Optimization
2180 Use the RTL dead store elimination pass.
2182 freschedule-modulo-scheduled-loops
2183 Common Var(flag_resched_modulo_sched) Optimization
2184 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
2186 fnon-call-exceptions
2187 Common Var(flag_non_call_exceptions) Optimization
2188 Support synchronous non-call exceptions.
2190 foffload=
2191 Driver Joined MissingArgError(targets missing after %qs)
2193 foffload-options=
2194 Common Driver Joined MissingArgError(options or targets=options missing after %qs)
2195 -foffload-options=<targets>=<options>   Specify options for the offloading targets.
2197 foffload-abi=
2198 Common Joined RejectNegative Enum(offload_abi)
2199 -foffload-abi=[lp64|ilp32]      Set the ABI to use in an offload compiler.
2201 Enum
2202 Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
2204 EnumValue
2205 Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
2207 EnumValue
2208 Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
2210 fomit-frame-pointer
2211 Common Var(flag_omit_frame_pointer) Optimization
2212 When possible do not generate stack frames.
2214 fopt-info
2215 Common Var(flag_opt_info) Optimization
2216 Enable all optimization info dumps on stderr.
2218 fopt-info-
2219 Common Joined RejectNegative Var(common_deferred_options) Defer
2220 -fopt-info[-<type>=filename]    Dump compiler optimization details.
2222 fsave-optimization-record
2223 Common Var(flag_save_optimization_record) Optimization
2224 Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
2226 foptimize-register-move
2227 Common Ignore
2228 Does nothing. Preserved for backward compatibility.
2230 foptimize-sibling-calls
2231 Common Var(flag_optimize_sibling_calls) Optimization
2232 Optimize sibling and tail recursive calls.
2234 fpartial-inlining
2235 Common Var(flag_partial_inlining) Optimization
2236 Perform partial inlining.
2238 fpre-ipa-mem-report
2239 Common Var(pre_ipa_mem_report)
2240 Report on memory allocation before interprocedural optimization.
2242 fpost-ipa-mem-report
2243 Common Var(post_ipa_mem_report)
2244 Report on memory allocation before interprocedural optimization.
2246 fpack-struct
2247 Common Var(flag_pack_struct) Optimization
2248 Pack structure members together without holes.
2250 fpack-struct=
2251 Common RejectNegative Joined UInteger Optimization
2252 -fpack-struct=<number>  Set initial maximum structure member alignment.
2254 fpcc-struct-return
2255 Common Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
2256 Return small aggregates in memory, not registers.
2258 fpeel-loops
2259 Common Var(flag_peel_loops) Optimization
2260 Perform loop peeling.
2262 fpeephole
2263 Common Var(flag_no_peephole,0) Optimization
2264 Enable machine specific peephole optimizations.
2266 fpeephole2
2267 Common Var(flag_peephole2) Optimization
2268 Enable an RTL peephole pass before sched2.
2270 fPIC
2271 Common Var(flag_pic,2) Negative(fPIE) Init(-1)
2272 Generate position-independent code if possible (large mode).
2274 fPIE
2275 Common Var(flag_pie,2) Negative(fpic) Init(-1)
2276 Generate position-independent code for executables if possible (large mode).
2278 fpic
2279 Common Var(flag_pic,1) Negative(fpie) Init(-1)
2280 Generate position-independent code if possible (small mode).
2282 fpie
2283 Common Var(flag_pie,1) Negative(fPIC) Init(-1)
2284 Generate position-independent code for executables if possible (small mode).
2286 fplt
2287 Common Var(flag_plt) Init(1) Optimization
2288 Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
2290 fplugin=
2291 Common Joined RejectNegative Var(common_deferred_options) Defer
2292 Specify a plugin to load.
2294 fplugin-arg-
2295 Common Joined RejectNegative Var(common_deferred_options) Defer
2296 -fplugin-arg-<name>-<key>[=<value>]     Specify argument <key>=<value> for plugin <name>.
2298 fpredictive-commoning
2299 Common Var(flag_predictive_commoning) Optimization
2300 Run predictive commoning optimization.
2302 fprefetch-loop-arrays
2303 Common Var(flag_prefetch_loop_arrays) Init(-1) Optimization
2304 Generate prefetch instructions, if available, for arrays in loops.
2306 fprofile
2307 Common Var(profile_flag)
2308 Enable basic program profiling code.
2310 fprofile-abs-path
2311 Common Var(profile_abs_path_flag)
2312 Generate absolute source path names for gcov.
2314 fprofile-arcs
2315 Common Var(profile_arc_flag)
2316 Insert arc-based program profiling code.
2318 fprofile-dir=
2319 Common Joined RejectNegative Var(profile_data_prefix)
2320 Set the top-level directory for storing the profile data.
2321 The default is 'pwd'.
2323 fprofile-note=
2324 Common Joined RejectNegative Var(profile_note_location)
2325 Select the name for storing the profile note file.
2327 fprofile-correction
2328 Common Var(flag_profile_correction)
2329 Enable correction of flow inconsistent profile data input.
2331 fprofile-update=
2332 Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
2333 -fprofile-update=[single|atomic|prefer-atomic]  Set the profile update method.
2335 fprofile-filter-files=
2336 Common Joined RejectNegative Var(flag_profile_filter_files)
2337 Instrument only functions from files whose name matches any of the regular expressions (separated by semi-colons).
2339 fprofile-exclude-files=
2340 Common Joined RejectNegative Var(flag_profile_exclude_files)
2341 Instrument only functions from files whose name does not match any of the regular expressions (separated by semi-colons).
2343 Enum
2344 Name(profile_reproducibility) Type(enum profile_reproducibility) UnknownError(unknown profile reproducibility method %qs)
2346 EnumValue
2347 Enum(profile_reproducibility) String(serial) Value(PROFILE_REPRODUCIBILITY_SERIAL)
2349 EnumValue
2350 Enum(profile_reproducibility) String(parallel-runs) Value(PROFILE_REPRODUCIBILITY_PARALLEL_RUNS)
2352 EnumValue
2353 Enum(profile_reproducibility) String(multithreaded) Value(PROFILE_REPRODUCIBILITY_MULTITHREADED)
2355 fprofile-reproducible=
2356 Common Joined RejectNegative Var(flag_profile_reproducible) Enum(profile_reproducibility) Init(PROFILE_REPRODUCIBILITY_SERIAL)
2357 -fprofile-reproducible=[serial|parallel-runs|multithreaded]     Control level of reproducibility of profile gathered by -fprofile-generate.
2359 Enum
2360 Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
2362 EnumValue
2363 Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
2365 EnumValue
2366 Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
2368 EnumValue
2369 Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC)
2371 fprofile-prefix-path=
2372 Common Joined RejectNegative Var(profile_prefix_path)
2373 Remove prefix from absolute path before mangling name for -fprofile-generate= and -fprofile-use=.
2375 fprofile-prefix-map=
2376 Common Joined RejectNegative Var(common_deferred_options) Defer
2377 -fprofile-prefix-map=<old>=<new>        Map one directory name to another in GCOV coverage result.
2379 fprofile-generate
2380 Common
2381 Enable common options for generating profile info for profile feedback directed optimizations.
2383 fprofile-generate=
2384 Common Joined RejectNegative
2385 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
2387 fprofile-info-section
2388 Common RejectNegative
2389 Register the profile information in the .gcov_info section instead of using a constructor/destructor.
2391 fprofile-info-section=
2392 Common Joined RejectNegative Var(profile_info_section)
2393 Register the profile information in the specified section instead of using a constructor/destructor.
2395 fprofile-partial-training
2396 Common Var(flag_profile_partial_training) Optimization
2397 Do not assume that functions never executed during the train run are cold.
2399 fprofile-use
2400 Common Var(flag_profile_use)
2401 Enable common options for performing profile feedback directed optimizations.
2403 fprofile-use=
2404 Common Joined RejectNegative
2405 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
2407 fprofile-values
2408 Common Var(flag_profile_values)
2409 Insert code to profile values of expressions.
2411 fprofile-report
2412 Common Var(profile_report)
2413 Report on consistency of profile.
2415 fprofile-reorder-functions
2416 Common Var(flag_profile_reorder_functions) Optimization
2417 Enable function reordering that improves code placement.
2419 fpatchable-function-entry=
2420 Common Var(flag_patchable_function_entry) Joined Optimization
2421 Insert NOP instructions at each function entry.
2423 frandom-seed
2424 Common Var(common_deferred_options) Defer
2426 frandom-seed=
2427 Common Joined RejectNegative Var(common_deferred_options) Defer
2428 -frandom-seed=<string>  Make compile reproducible using <string>.
2430 ; This switch causes the command line that was used to create an
2431 ; object file to be recorded into the object file.  The exact format
2432 ; of this recording is target and binary file format dependent.
2433 ; It is related to the -fverbose-asm switch, but that switch only
2434 ; records information in the assembler output file as comments, so
2435 ; they never reach the object file.
2436 frecord-gcc-switches
2437 Common Var(flag_record_gcc_switches)
2438 Record gcc command line switches in the object file.
2440 freg-struct-return
2441 Common Var(flag_pcc_struct_return,0) Optimization
2442 Return small aggregates in registers.
2444 fregmove
2445 Common Ignore
2446 Does nothing. Preserved for backward compatibility.
2448 flifetime-dse
2449 Common Var(flag_lifetime_dse,2) Init(2) Optimization
2450 Tell DSE that the storage for a C++ object is dead when the constructor
2451 starts and when the destructor finishes.
2453 flifetime-dse=
2454 Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
2456 flive-patching
2457 Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
2459 flive-patching=
2460 Common Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization
2461 -flive-patching=[inline-only-static|inline-clone]       Control IPA
2462 optimizations to provide a safe compilation for live-patching.  At the same
2463 time, provides multiple-level control on the enabled IPA optimizations.
2465 Enum
2466 Name(live_patching_level) Type(enum live_patching_level) UnknownError(unknown Live-Patching Level %qs)
2468 EnumValue
2469 Enum(live_patching_level) String(inline-only-static) Value(LIVE_PATCHING_INLINE_ONLY_STATIC)
2471 EnumValue
2472 Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE)
2474 fallocation-dce
2475 Common Var(flag_allocation_dce) Init(1) Optimization
2476 Tell DCE to remove unused C++ allocations.
2478 flive-range-shrinkage
2479 Common Var(flag_live_range_shrinkage) Init(0) Optimization
2480 Relief of register pressure through live range shrinkage.
2482 frename-registers
2483 Common Var(flag_rename_registers) Optimization EnabledBy(funroll-loops)
2484 Perform a register renaming optimization pass.
2486 fschedule-fusion
2487 Common Var(flag_schedule_fusion) Init(2) Optimization
2488 Perform a target dependent instruction fusion optimization pass.
2490 freorder-blocks
2491 Common Var(flag_reorder_blocks) Optimization
2492 Reorder basic blocks to improve code placement.
2494 freorder-blocks-algorithm=
2495 Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
2496 -freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
2498 Enum
2499 Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2501 EnumValue
2502 Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2504 EnumValue
2505 Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
2507 freorder-blocks-and-partition
2508 Common Var(flag_reorder_blocks_and_partition) Optimization
2509 Reorder basic blocks and partition into hot and cold sections.
2511 freorder-functions
2512 Common Var(flag_reorder_functions) Optimization
2513 Reorder functions to improve code placement.
2515 frerun-cse-after-loop
2516 Common Var(flag_rerun_cse_after_loop) Optimization
2517 Add a common subexpression elimination pass after loop optimizations.
2519 frerun-loop-opt
2520 Common Ignore
2521 Does nothing.  Preserved for backward compatibility.
2523 frounding-math
2524 Common Var(flag_rounding_math) Optimization SetByCombined
2525 Disable optimizations that assume default FP rounding behavior.
2527 fsched-interblock
2528 Common Var(flag_schedule_interblock) Init(1) Optimization
2529 Enable scheduling across basic blocks.
2531 fsched-pressure
2532 Common Var(flag_sched_pressure) Init(0) Optimization
2533 Enable register pressure sensitive insn scheduling.
2535 fsched-spec
2536 Common Var(flag_schedule_speculative) Init(1) Optimization
2537 Allow speculative motion of non-loads.
2539 fsched-spec-load
2540 Common Var(flag_schedule_speculative_load) Optimization
2541 Allow speculative motion of some loads.
2543 fsched-spec-load-dangerous
2544 Common Var(flag_schedule_speculative_load_dangerous) Optimization
2545 Allow speculative motion of more loads.
2547 fsched-verbose=
2548 Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
2549 -fsched-verbose=<number>        Set the verbosity level of the scheduler.
2551 fsched2-use-superblocks
2552 Common Var(flag_sched2_use_superblocks) Optimization
2553 If scheduling post reload, do superblock scheduling.
2555 fsched2-use-traces
2556 Common Ignore
2557 Does nothing.  Preserved for backward compatibility.
2559 fschedule-insns
2560 Common Var(flag_schedule_insns) Optimization
2561 Reschedule instructions before register allocation.
2563 fschedule-insns2
2564 Common Var(flag_schedule_insns_after_reload) Optimization
2565 Reschedule instructions after register allocation.
2567 ; This flag should be on when a target implements non-trivial
2568 ; scheduling hooks, maybe saving some information for its own sake.
2569 ; On IA64, for example, this is used for correct bundling.
2570 fselective-scheduling
2571 Common Var(flag_selective_scheduling) Optimization
2572 Schedule instructions using selective scheduling algorithm.
2574 fselective-scheduling2
2575 Common Var(flag_selective_scheduling2) Optimization
2576 Run selective scheduling after reload.
2578 fself-test=
2579 Common Undocumented Joined Var(flag_self_test)
2580 Run self-tests, using the given path to locate test files.
2582 fsel-sched-pipelining
2583 Common Var(flag_sel_sched_pipelining) Init(0) Optimization
2584 Perform software pipelining of inner loops during selective scheduling.
2586 fsel-sched-pipelining-outer-loops
2587 Common Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
2588 Perform software pipelining of outer loops during selective scheduling.
2590 fsel-sched-reschedule-pipelined
2591 Common Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
2592 Reschedule pipelined regions without pipelining.
2594 fsemantic-interposition
2595 Common Var(flag_semantic_interposition) Init(1) Optimization
2596 Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
2598 ; sched_stalled_insns means that insns can be moved prematurely from the queue
2599 ; of stalled insns into the ready list.
2600 fsched-stalled-insns
2601 Common Var(flag_sched_stalled_insns) Optimization UInteger
2602 Allow premature scheduling of queued insns.
2604 fsched-stalled-insns=
2605 Common RejectNegative Joined UInteger Optimization
2606 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled.
2608 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
2609 ; be examined for a dependency on a stalled insn that is candidate for
2610 ; premature removal from the queue of stalled insns into the ready list (has
2611 ; an effect only if the flag 'sched_stalled_insns' is set).
2612 fsched-stalled-insns-dep
2613 Common Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
2614 Set dependence distance checking in premature scheduling of queued insns.
2616 fsched-stalled-insns-dep=
2617 Common RejectNegative Joined UInteger Optimization
2618 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns.
2620 fsched-group-heuristic
2621 Common Var(flag_sched_group_heuristic) Init(1) Optimization
2622 Enable the group heuristic in the scheduler.
2624 fsched-critical-path-heuristic
2625 Common Var(flag_sched_critical_path_heuristic) Init(1) Optimization
2626 Enable the critical path heuristic in the scheduler.
2628 fsched-spec-insn-heuristic
2629 Common Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
2630 Enable the speculative instruction heuristic in the scheduler.
2632 fsched-rank-heuristic
2633 Common Var(flag_sched_rank_heuristic) Init(1) Optimization
2634 Enable the rank heuristic in the scheduler.
2636 fsched-last-insn-heuristic
2637 Common Var(flag_sched_last_insn_heuristic) Init(1) Optimization
2638 Enable the last instruction heuristic in the scheduler.
2640 fsched-dep-count-heuristic
2641 Common Var(flag_sched_dep_count_heuristic) Init(1) Optimization
2642 Enable the dependent count heuristic in the scheduler.
2644 fsection-anchors
2645 Common Var(flag_section_anchors) Optimization
2646 Access data in the same section from shared anchor points.
2648 fsee
2649 Common Ignore
2650 Does nothing.  Preserved for backward compatibility.
2652 fzee
2653 Common Ignore
2654 Does nothing.  Preserved for backward compatibility.
2656 free
2657 Common Var(flag_ree) Init(0) Optimization
2658 Turn on Redundant Extensions Elimination pass.
2660 fshow-column
2661 Common Var(flag_show_column) Init(1)
2662 Show column numbers in diagnostics, when available.  Default on.
2664 fshrink-wrap
2665 Common Var(flag_shrink_wrap) Optimization
2666 Emit function prologues only before parts of the function that need it,
2667 rather than at the top of the function.
2669 fshrink-wrap-separate
2670 Common Var(flag_shrink_wrap_separate) Init(1) Optimization
2671 Shrink-wrap parts of the prologue and epilogue separately.
2673 fsignaling-nans
2674 Common Var(flag_signaling_nans) Optimization SetByCombined
2675 Disable optimizations observable by IEEE signaling NaNs.
2677 fsigned-zeros
2678 Common Var(flag_signed_zeros) Init(1) Optimization SetByCombined
2679 Disable floating point optimizations that ignore the IEEE signedness of zero.
2681 fsingle-precision-constant
2682 Common Var(flag_single_precision_constant) Optimization
2683 Convert floating point constants to single precision constants.
2685 fsplit-ivs-in-unroller
2686 Common Var(flag_split_ivs_in_unroller) Init(1) Optimization
2687 Split lifetimes of induction variables when loops are unrolled.
2689 fsplit-stack
2690 Common Var(flag_split_stack) Init(-1)
2691 Generate discontiguous stack frames.
2693 fsplit-wide-types
2694 Common Var(flag_split_wide_types) Optimization
2695 Split wide types into independent registers.
2697 fsplit-wide-types-early
2698 Common Var(flag_split_wide_types_early) Optimization
2699 Split wide types into independent registers earlier.
2701 fssa-backprop
2702 Common Var(flag_ssa_backprop) Init(1) Optimization
2703 Enable backward propagation of use properties at the SSA level.
2705 fssa-phiopt
2706 Common Var(flag_ssa_phiopt) Optimization
2707 Optimize conditional patterns using SSA PHI nodes.
2709 fstdarg-opt
2710 Common Var(flag_stdarg_opt) Init(1) Optimization
2711 Optimize amount of stdarg registers saved to stack at start of function.
2713 fvariable-expansion-in-unroller
2714 Common Var(flag_variable_expansion_in_unroller) Optimization
2715 Apply variable expansion when loops are unrolled.
2717 fstack-check=
2718 Common RejectNegative Joined Optimization
2719 -fstack-check=[no|generic|specific]     Insert stack checking code into the program.
2721 fstack-check
2722 Common Alias(fstack-check=, specific, no)
2723 Insert stack checking code into the program.  Same as -fstack-check=specific.
2725 fstack-clash-protection
2726 Common Var(flag_stack_clash_protection) Optimization
2727 Insert code to probe each page of stack space as it is allocated to protect
2728 from stack-clash style attacks.
2730 fstack-limit
2731 Common Var(common_deferred_options) Defer
2733 fstack-limit-register=
2734 Common RejectNegative Joined Var(common_deferred_options) Defer
2735 -fstack-limit-register=<register>       Trap if the stack goes past <register>.
2737 fstack-limit-symbol=
2738 Common RejectNegative Joined Var(common_deferred_options) Defer
2739 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>.
2741 fstack-protector
2742 Common Var(flag_stack_protect, 1) Init(-1) Optimization
2743 Use propolice as a stack protection method.
2745 fstack-protector-all
2746 Common RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
2747 Use a stack protection method for every function.
2749 fstack-protector-strong
2750 Common RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
2751 Use a smart stack protection method for certain functions.
2753 fstack-protector-explicit
2754 Common RejectNegative Var(flag_stack_protect, 4) Optimization
2755 Use stack protection method only for functions with the stack_protect attribute.
2757 fstack-usage
2758 Common RejectNegative Var(flag_stack_usage)
2759 Output stack usage information on a per-function basis.
2761 fstrength-reduce
2762 Common Ignore
2763 Does nothing.  Preserved for backward compatibility.
2765 ; Nonzero if we should do (language-dependent) alias analysis.
2766 ; Typically, this analysis will assume that expressions of certain
2767 ; types do not alias expressions of certain other types.  Only used
2768 ; if alias analysis (in general) is enabled.
2769 fstrict-aliasing
2770 Common Var(flag_strict_aliasing) Optimization
2771 Assume strict aliasing rules apply.
2773 fstrict-overflow
2774 Common
2775 Treat signed overflow as undefined.  Negated as -fwrapv -fwrapv-pointer.
2777 fsync-libcalls
2778 Common Var(flag_sync_libcalls) Init(1)
2779 Implement __atomic operations via libcalls to legacy __sync functions.
2781 fsyntax-only
2782 Common Var(flag_syntax_only)
2783 Check for syntax errors, then stop.
2785 ftest-coverage
2786 Common Var(flag_test_coverage)
2787 Create data files needed by \"gcov\".
2789 fthread-jumps
2790 Common Var(flag_thread_jumps) Optimization
2791 Perform jump threading optimizations.
2793 ftime-report
2794 Common Var(time_report)
2795 Report the time taken by each compiler pass.
2797 ftime-report-details
2798 Common Var(time_report_details)
2799 Record times taken by sub-phases separately.
2801 ftls-model=
2802 Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
2803 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model.
2805 Enum
2806 Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2808 EnumValue
2809 Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2811 EnumValue
2812 Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2814 EnumValue
2815 Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2817 EnumValue
2818 Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2820 ftoplevel-reorder
2821 Common Var(flag_toplevel_reorder) Init(2) Optimization
2822 Reorder top level functions, variables, and asms.
2824 ftracer
2825 Common Var(flag_tracer) Optimization
2826 Perform superblock formation via tail duplication.
2828 ftrampolines
2829 Common Var(flag_trampolines) Init(0)
2830 For targets that normally need trampolines for nested functions, always
2831 generate them instead of using descriptors.
2833 ; Zero means that floating-point math operations cannot generate a
2834 ; (user-visible) trap.  This is the case, for example, in nonstop
2835 ; IEEE 754 arithmetic.
2836 ftrapping-math
2837 Common Var(flag_trapping_math) Init(1) Optimization SetByCombined
2838 Assume floating-point operations can trap.
2840 ftrapv
2841 Common Var(flag_trapv) Optimization
2842 Trap for signed overflow in addition, subtraction and multiplication.
2844 ftree-ccp
2845 Common Var(flag_tree_ccp) Optimization
2846 Enable SSA-CCP optimization on trees.
2848 ftree-bit-ccp
2849 Common Var(flag_tree_bit_ccp) Optimization
2850 Enable SSA-BIT-CCP optimization on trees.
2852 ftree-store-ccp
2853 Common Ignore
2854 Does nothing.  Preserved for backward compatibility.
2856 ftree-ch
2857 Common Var(flag_tree_ch) Optimization
2858 Enable loop header copying on trees.
2860 ftree-coalesce-inlined-vars
2861 Common Ignore RejectNegative
2862 Does nothing.  Preserved for backward compatibility.
2864 ftree-coalesce-vars
2865 Common Var(flag_tree_coalesce_vars) Optimization
2866 Enable SSA coalescing of user variables.
2868 ftree-copyrename
2869 Common Ignore
2870 Does nothing.  Preserved for backward compatibility.
2872 ftree-copy-prop
2873 Common Var(flag_tree_copy_prop) Optimization
2874 Enable copy propagation on trees.
2876 ftree-store-copy-prop
2877 Common Ignore
2878 Does nothing.  Preserved for backward compatibility.
2880 ftree-cselim
2881 Common Var(flag_tree_cselim) Optimization
2882 Transform condition stores into unconditional ones.
2884 ftree-switch-conversion
2885 Common Var(flag_tree_switch_conversion) Optimization
2886 Perform conversions of switch initializations.
2888 ftree-dce
2889 Common Var(flag_tree_dce) Optimization
2890 Enable SSA dead code elimination optimization on trees.
2892 ftree-dominator-opts
2893 Common Var(flag_tree_dom) Optimization
2894 Enable dominator optimizations.
2896 ftree-tail-merge
2897 Common Var(flag_tree_tail_merge) Optimization
2898 Enable tail merging on trees.
2900 ftree-dse
2901 Common Var(flag_tree_dse) Optimization
2902 Enable dead store elimination.
2904 ftree-forwprop
2905 Common Var(flag_tree_forwprop) Init(1) Optimization
2906 Enable forward propagation on trees.
2908 ftree-fre
2909 Common Var(flag_tree_fre) Optimization
2910 Enable Full Redundancy Elimination (FRE) on trees.
2912 foptimize-strlen
2913 Common Var(flag_optimize_strlen) Optimization
2914 Enable string length optimizations on trees.
2916 fisolate-erroneous-paths-dereference
2917 Common Var(flag_isolate_erroneous_paths_dereference) Optimization
2918 Detect paths that trigger erroneous or undefined behavior due to
2919 dereferencing a null pointer.  Isolate those paths from the main control
2920 flow and turn the statement with erroneous or undefined behavior into a trap.
2922 fisolate-erroneous-paths-attribute
2923 Common Var(flag_isolate_erroneous_paths_attribute) Optimization
2924 Detect paths that trigger erroneous or undefined behavior due to a null value
2925 being used in a way forbidden by a returns_nonnull or nonnull
2926 attribute.  Isolate those paths from the main control flow and turn the
2927 statement with erroneous or undefined behavior into a trap.
2929 ftree-loop-distribution
2930 Common Var(flag_tree_loop_distribution) Optimization
2931 Enable loop distribution on trees.
2933 ftree-loop-distribute-patterns
2934 Common Var(flag_tree_loop_distribute_patterns) Optimization
2935 Enable loop distribution for patterns transformed into a library call.
2937 ftree-loop-im
2938 Common Var(flag_tree_loop_im) Init(1) Optimization
2939 Enable loop invariant motion on trees.
2941 ftree-loop-linear
2942 Common Alias(floop-nest-optimize)
2943 Enable loop nest transforms.  Same as -floop-nest-optimize.
2945 ftree-loop-ivcanon
2946 Common Var(flag_tree_loop_ivcanon) Init(1) Optimization
2947 Create canonical induction variables in loops.
2949 ftree-loop-optimize
2950 Common Var(flag_tree_loop_optimize) Init(1) Optimization
2951 Enable loop optimizations on tree level.
2953 ftree-parallelize-loops=
2954 Common Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
2955 -ftree-parallelize-loops=<number>       Enable automatic parallelization of loops.
2957 ftree-phiprop
2958 Common Var(flag_tree_phiprop) Init(1) Optimization
2959 Enable hoisting loads from conditional pointers.
2961 ftree-pre
2962 Common Var(flag_tree_pre) Optimization
2963 Enable SSA-PRE optimization on trees.
2965 ftree-partial-pre
2966 Common Var(flag_tree_partial_pre) Optimization
2967 In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
2969 ftree-pta
2970 Common Var(flag_tree_pta) Optimization
2971 Perform function-local points-to analysis on trees.
2973 ftree-reassoc
2974 Common Var(flag_tree_reassoc) Init(1) Optimization
2975 Enable reassociation on tree level.
2977 ftree-salias
2978 Common Ignore
2979 Does nothing.  Preserved for backward compatibility.
2981 ftree-sink
2982 Common Var(flag_tree_sink) Optimization
2983 Enable SSA code sinking on trees.
2985 ftree-slsr
2986 Common Var(flag_tree_slsr) Optimization
2987 Perform straight-line strength reduction.
2989 ftree-sra
2990 Common Var(flag_tree_sra) Optimization
2991 Perform scalar replacement of aggregates.
2993 ftree-ter
2994 Common Var(flag_tree_ter) Optimization
2995 Replace temporary expressions in the SSA->normal pass.
2997 ftree-lrs
2998 Common Var(flag_tree_live_range_split) Optimization
2999 Perform live range splitting during the SSA->normal pass.
3001 ftree-vrp
3002 Common Var(flag_tree_vrp) Init(0) Optimization
3003 Perform Value Range Propagation on trees.
3005 fsplit-paths
3006 Common Var(flag_split_paths) Init(0) Optimization
3007 Split paths leading to loop backedges.
3009 funconstrained-commons
3010 Common Var(flag_unconstrained_commons) Optimization
3011 Assume common declarations may be overridden with ones with a larger
3012 trailing array.
3014 funit-at-a-time
3015 Common Var(flag_unit_at_a_time) Init(1)
3016 Compile whole compilation unit at a time.
3018 funreachable-traps
3019 Common Var(flag_unreachable_traps) Optimization
3020 Trap on __builtin_unreachable instead of using it for optimization.
3022 funroll-loops
3023 Common Var(flag_unroll_loops) Optimization EnabledBy(funroll-all-loops)
3024 Perform loop unrolling when iteration count is known.
3026 funroll-all-loops
3027 Common Var(flag_unroll_all_loops) Optimization
3028 Perform loop unrolling for all loops.
3030 funroll-completely-grow-size
3031 Undocumented Var(flag_cunroll_grow_size) Optimization
3032 ; Internal undocumented flag, allow size growth during complete unrolling
3034 ; Nonzero means that loop optimizer may assume that the induction variables
3035 ; that control loops do not overflow and that the loops with nontrivial
3036 ; exit condition are not infinite
3037 funsafe-loop-optimizations
3038 Common Ignore
3039 Does nothing.  Preserved for backward compatibility.
3041 fassociative-math
3042 Common Var(flag_associative_math) SetByCombined Optimization
3043 Allow optimization for floating-point arithmetic which may change the
3044 result of the operation due to rounding.
3046 freciprocal-math
3047 Common Var(flag_reciprocal_math) SetByCombined Optimization
3048 Same as -fassociative-math for expressions which include division.
3050 ; Nonzero means that unsafe floating-point math optimizations are allowed
3051 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
3052 ; are allowed to assume that their arguments and results are "normal"
3053 ; (e.g., nonnegative for SQRT).
3054 funsafe-math-optimizations
3055 Common Var(flag_unsafe_math_optimizations) Optimization SetByCombined
3056 Allow math optimizations that may violate IEEE or ISO standards.
3058 funswitch-loops
3059 Common Var(flag_unswitch_loops) Optimization
3060 Perform loop unswitching.
3062 fsplit-loops
3063 Common Var(flag_split_loops) Optimization
3064 Perform loop splitting.
3066 fversion-loops-for-strides
3067 Common Var(flag_version_loops_for_strides) Optimization
3068 Version loops based on whether indices have a stride of one.
3070 funwind-tables
3071 Common Var(flag_unwind_tables) Optimization
3072 Just generate unwind tables for exception handling.
3074 fuse-ld=bfd
3075 Common Driver Negative(fuse-ld=gold)
3076 Use the bfd linker instead of the default linker.
3078 fuse-ld=gold
3079 Common Driver Negative(fuse-ld=bfd)
3080 Use the gold linker instead of the default linker.
3082 fuse-ld=lld
3083 Common Driver Negative(fuse-ld=lld)
3084 Use the lld LLVM linker instead of the default linker.
3086 fuse-ld=mold
3087 Common Driver Negative(fuse-ld=mold)
3088 Use the Modern linker (MOLD) linker instead of the default linker.
3090 fuse-linker-plugin
3091 Common Undocumented Var(flag_use_linker_plugin)
3093 ; Positive if we should track variables, negative if we should run
3094 ; the var-tracking pass only to discard debug annotations, zero if
3095 ; we're not to run it.
3096 fvar-tracking
3097 Common Var(flag_var_tracking) PerFunction EnabledBy(fvar-tracking-uninit)
3098 Perform variable tracking.
3100 ; Positive if we should track variables at assignments, negative if
3101 ; we should run the var-tracking pass only to discard debug
3102 ; annotations.
3103 fvar-tracking-assignments
3104 Common Var(flag_var_tracking_assignments) PerFunction
3105 Perform variable tracking by annotating assignments.
3107 ; Nonzero if we should toggle flag_var_tracking_assignments after
3108 ; processing options and computing its default.  */
3109 fvar-tracking-assignments-toggle
3110 Common Var(flag_var_tracking_assignments_toggle) PerFunction
3111 Toggle -fvar-tracking-assignments.
3113 ; Positive if we should track uninitialized variables, negative if
3114 ; we should run the var-tracking pass only to discard debug
3115 ; annotations.
3116 fvar-tracking-uninit
3117 Common Var(flag_var_tracking_uninit) PerFunction
3118 Perform variable tracking and also tag variables that are uninitialized.
3120 ; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
3121 ftree-vectorize
3122 Common Var(flag_tree_vectorize) Optimization
3123 Enable vectorization on trees.
3125 ftree-vectorizer-verbose=
3126 Common Joined RejectNegative Ignore
3127 Does nothing.  Preserved for backward compatibility.
3129 ftree-loop-vectorize
3130 Common Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
3131 Enable loop vectorization on trees.
3133 ftree-slp-vectorize
3134 Common Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
3135 Enable basic block vectorization (SLP) on trees.
3137 fvect-cost-model=
3138 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
3139 -fvect-cost-model=[unlimited|dynamic|cheap|very-cheap]  Specifies the cost model for vectorization.
3141 fsimd-cost-model=
3142 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
3143 -fsimd-cost-model=[unlimited|dynamic|cheap|very-cheap]  Specifies the vectorization cost model for code marked with a simd directive.
3145 Enum
3146 Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
3148 EnumValue
3149 Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
3151 EnumValue
3152 Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
3154 EnumValue
3155 Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
3157 EnumValue
3158 Enum(vect_cost_model) String(very-cheap) Value(VECT_COST_MODEL_VERY_CHEAP)
3160 fvect-cost-model
3161 Common Alias(fvect-cost-model=,dynamic,unlimited)
3162 Enables the dynamic vectorizer cost model.  Preserved for backward compatibility.
3164 ftree-vect-loop-version
3165 Common Ignore
3166 Does nothing. Preserved for backward compatibility.
3168 ftree-scev-cprop
3169 Common Var(flag_tree_scev_cprop) Init(1) Optimization
3170 Enable copy propagation of scalar-evolution information.
3172 ftrivial-auto-var-init=
3173 Common Joined RejectNegative Enum(auto_init_type) Var(flag_auto_var_init) Init(AUTO_INIT_UNINITIALIZED) Optimization
3174 -ftrivial-auto-var-init=[uninitialized|pattern|zero]    Add initializations to automatic variables.
3176 Enum
3177 Name(auto_init_type) Type(enum auto_init_type) UnknownError(unrecognized automatic variable initialization type %qs)
3179 EnumValue
3180 Enum(auto_init_type) String(uninitialized) Value(AUTO_INIT_UNINITIALIZED)
3182 EnumValue
3183 Enum(auto_init_type) String(pattern) Value(AUTO_INIT_PATTERN)
3185 EnumValue
3186 Enum(auto_init_type) String(zero) Value(AUTO_INIT_ZERO)
3188 ; -fverbose-asm causes extra commentary information to be produced in
3189 ; the generated assembly code (to make it more readable).  This option
3190 ; is generally only of use to those who actually need to read the
3191 ; generated assembly code (perhaps while debugging the compiler itself).
3192 ; -fno-verbose-asm, the default, causes the extra information
3193 ; to not be added and is useful when comparing two assembler files.
3194 fverbose-asm
3195 Common Var(flag_verbose_asm)
3196 Add extra commentary to assembler output.
3198 fvisibility=
3199 Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
3200 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility.
3202 Enum
3203 Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
3205 EnumValue
3206 Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
3208 EnumValue
3209 Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
3211 EnumValue
3212 Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
3214 EnumValue
3215 Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
3217 fvtable-verify=
3218 Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
3219 Validate vtable pointers before using them.
3221 Enum
3222 Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
3224 EnumValue
3225 Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
3227 EnumValue
3228 Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
3230 EnumValue
3231 Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
3233 fvtv-counts
3234 Common Var(flag_vtv_counts)
3235 Output vtable verification counters.
3237 fvtv-debug
3238 Common Var(flag_vtv_debug)
3239 Output vtable verification pointer sets information.
3241 fvpt
3242 Common Var(flag_value_profile_transformations) Optimization
3243 Use expression value profiles in optimizations.
3245 fweb
3246 Common Var(flag_web) Optimization EnabledBy(funroll-loops)
3247 Construct webs and split unrelated uses of single variable.
3249 ftree-builtin-call-dce
3250 Common Var(flag_tree_builtin_call_dce) Init(0) Optimization
3251 Enable conditional dead code elimination for builtin calls.
3253 fwhole-program
3254 Common Var(flag_whole_program) Init(0)
3255 Perform whole program optimizations.
3257 fwrapv-pointer
3258 Common Var(flag_wrapv_pointer) Optimization
3259 Assume pointer overflow wraps around.
3261 fwrapv
3262 Common Var(flag_wrapv) Optimization
3263 Assume signed arithmetic overflow wraps around.
3265 fzero-initialized-in-bss
3266 Common Var(flag_zero_initialized_in_bss) Init(1)
3267 Put zero initialized data in the bss section.
3269 fzero-call-used-regs=
3270 Common RejectNegative Joined
3271 Clear call-used registers upon function return.
3274 Common Driver RejectNegative JoinedOrMissing
3275 Generate debug information in default format.
3277 gas-loc-support
3278 Common Driver Var(dwarf2out_as_loc_support)
3279 Assume assembler support for (DWARF2+) .loc directives.
3281 gas-locview-support
3282 Common Driver Var(dwarf2out_as_locview_support)
3283 Assume assembler support for view in (DWARF2+) .loc directives.
3285 gcoff
3286 Common Driver WarnRemoved
3287 Does nothing.  Preserved for backward compatibility.
3289 gcoff1
3290 Common Driver WarnRemoved
3291 Does nothing.  Preserved for backward compatibility.
3293 gcoff2
3294 Common Driver WarnRemoved
3295 Does nothing.  Preserved for backward compatibility.
3297 gcoff3
3298 Common Driver WarnRemoved
3299 Does nothing.  Preserved for backward compatibility.
3301 gcolumn-info
3302 Common Driver Var(debug_column_info,1) Init(1)
3303 Record DW_AT_decl_column and DW_AT_call_column in DWARF.
3305 ; The CTF generation process feeds off DWARF dies.  This option implicitly
3306 ; updates the debug_info_level to DINFO_LEVEL_NORMAL.
3307 gctf
3308 Common Driver RejectNegative JoinedOrMissing
3309 Generate CTF debug information at default level.
3311 gbtf
3312 Common Driver RejectNegative JoinedOrMissing
3313 Generate BTF debug information at default level.
3315 gdwarf
3316 Common Driver JoinedOrMissing Negative(gdwarf-)
3317 Generate debug information in default version of DWARF format.
3319 gdwarf-
3320 Common Driver Joined UInteger Var(dwarf_version) Init(5)
3321 Generate debug information in DWARF v2 (or later) format.
3323 gdwarf32
3324 Common Driver Var(dwarf_offset_size,4) Init(4) RejectNegative
3325 Use 32-bit DWARF format when emitting DWARF debug information.
3327 gdwarf64
3328 Common Driver Var(dwarf_offset_size,8) RejectNegative
3329 Use 64-bit DWARF format when emitting DWARF debug information.
3331 ggdb
3332 Common Driver JoinedOrMissing
3333 Generate debug information in default extended format.
3335 ginline-points
3336 Common Driver Var(debug_inline_points)
3337 Generate extended entry point information for inlined functions.
3339 ginternal-reset-location-views
3340 Common Driver Var(debug_internal_reset_location_views) Init(2)
3341 Compute locview reset points based on insn length estimates.
3343 gno-
3344 RejectNegative Joined Undocumented
3345 ; Catch the gno- prefix, so it doesn't backtrack to g<level>.
3347 gno-pubnames
3348 Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
3349 Don't generate DWARF pubnames and pubtypes sections.
3351 gpubnames
3352 Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
3353 Generate DWARF pubnames and pubtypes sections.
3355 ggnu-pubnames
3356 Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
3357 Generate DWARF pubnames and pubtypes sections with GNU extensions.
3359 grecord-gcc-switches
3360 Common Driver Var(dwarf_record_gcc_switches) Init(1)
3361 Record gcc command line switches in DWARF DW_AT_producer.
3363 gsplit-dwarf
3364 Common Driver Var(dwarf_split_debug_info) Init(0)
3365 Generate debug information in separate .dwo files.
3367 gstabs
3368 Common Driver WarnRemoved
3369 Does nothing.  Preserved for backward compatibility.
3371 gstabs+
3372 Common Driver WarnRemoved
3373 Does nothing.  Preserved for backward compatibility.
3375 gstatement-frontiers
3376 Common Driver Var(debug_nonbind_markers_p) PerFunction
3377 Emit progressive recommended breakpoint locations.
3379 gstrict-dwarf
3380 Common Driver Var(dwarf_strict) Init(0)
3381 Don't emit DWARF additions beyond selected version.
3383 gdescribe-dies
3384 Common Driver Var(flag_describe_dies) Init(0)
3385 Add description attributes to some DWARF DIEs that have no name attribute.
3387 gtoggle
3388 Common Driver Var(flag_gtoggle)
3389 Toggle debug information generation.
3391 gvariable-location-views
3392 Common Driver Var(debug_variable_location_views, 1)
3393 Augment variable location lists with progressive views.
3395 gvariable-location-views=incompat5
3396 Common Driver RejectNegative Var(debug_variable_location_views, -1) Init(2)
3398 gvms
3399 Common Driver JoinedOrMissing
3400 Generate debug information in VMS format.
3402 gxcoff
3403 Common Driver WarnRemoved
3404 Does nothing.  Preserved for backward compatibility.
3406 gxcoff+
3407 Common Driver JoinedOrMissing  WarnRemoved
3408 Does nothing.  Preserved for backward compatibility.
3410 Enum
3411 Name(compressed_debug_sections) Type(int)
3413 ; Since -gz= is completely handled in specs, the values aren't used and we
3414 ; assign arbitrary constants.
3415 EnumValue
3416 Enum(compressed_debug_sections) String(none) Value(0)
3418 EnumValue
3419 Enum(compressed_debug_sections) String(zlib) Value(1)
3421 EnumValue
3422 Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
3425 Common Driver
3426 Generate compressed debug sections.
3429 Common Driver RejectNegative Joined Enum(compressed_debug_sections)
3430 -gz=<format>    Generate compressed debug sections in format <format>.
3433 Driver Joined Separate
3435 iplugindir=
3436 Common Joined Var(plugindir_string) Init(0)
3437 -iplugindir=<dir>       Set <dir> to be the default plugin directory.
3439 imultiarch
3440 Common Joined Separate RejectDriver Var(imultiarch) Init(0)
3441 -imultiarch <dir>       Set <dir> to be the multiarch include subdirectory.
3444 Driver Joined Separate
3447 Driver
3449 no-canonical-prefixes
3450 Driver
3452 nodefaultlibs
3453 Driver
3455 nostartfiles
3456 Driver
3458 nolibc
3459 Driver
3461 nostdlib
3462 Driver
3464 nostdlib++
3465 Driver
3468 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
3469 -o <file>       Place output into <file>.
3472 Common Var(profile_flag)
3473 Enable function profiling.
3475 pass-exit-codes
3476 Driver Var(pass_exit_codes)
3478 pedantic
3479 Common Alias(Wpedantic)
3481 pedantic-errors
3482 Common Var(flag_pedantic_errors)
3483 Like -pedantic but issue them as errors.
3486 Driver
3488 pipe
3489 Driver Var(use_pipes)
3491 print-file-name=
3492 Driver JoinedOrMissing Var(print_file_name)
3494 print-libgcc-file-name
3495 Driver
3497 print-multi-directory
3498 Driver Var(print_multi_directory)
3500 print-multi-lib
3501 Driver Var(print_multi_lib)
3503 print-multi-os-directory
3504 Driver Var(print_multi_os_directory)
3506 print-multiarch
3507 Driver Var(print_multiarch)
3509 print-prog-name=
3510 Driver JoinedOrMissing Var(print_prog_name)
3512 print-search-dirs
3513 Driver Var(print_search_dirs)
3515 print-sysroot
3516 Driver Var(print_sysroot)
3518 print-sysroot-headers-suffix
3519 Driver Var(print_sysroot_headers_suffix)
3521 quiet
3522 Common Var(quiet_flag) RejectDriver
3523 Do not display functions compiled or elapsed time.
3526 Driver
3529 Driver
3531 save-temps
3532 Driver
3534 save-temps=
3535 Driver Joined
3538 Driver
3540 time
3541 Driver Var(report_times)
3543 time=
3544 Driver JoinedOrMissing
3547 Driver Joined Separate
3549 undef
3550 Driver
3551 ; C option, but driver must not handle as "-u ndef".
3554 Common Driver Var(verbose_flag)
3555 Enable verbose output.
3557 version
3558 Common Var(version_flag) RejectDriver
3559 Display the compiler's version.
3562 Common Var(inhibit_warnings)
3563 Suppress warnings.
3565 wrapper
3566 Driver Separate Var(wrapper_string)
3569 Driver Joined Separate
3571 shared
3572 Driver RejectNegative Negative(static-pie)
3573 Create a shared library.
3575 shared-libgcc
3576 Driver
3578 specs
3579 Driver Separate Alias(specs=)
3581 specs=
3582 Driver Joined
3584 static
3585 Driver
3587 static-libgcc
3588 Driver
3590 static-libgfortran
3591 Driver
3592 ; Documented for Fortran, but always accepted by driver.
3594 static-libphobos
3595 Driver
3596 ; Documented for D, but always accepted by driver.
3598 static-libquadmath
3599 Driver
3600 ; Documented for Fortran, but always accepted by driver.
3602 static-libstdc++
3603 Driver
3605 static-libgo
3606 Driver
3607 ; Documented for Go, but always accepted by driver.
3609 static-libasan
3610 Driver
3612 static-libhwasan
3613 Driver
3615 static-libtsan
3616 Driver
3618 static-liblsan
3619 Driver
3621 static-libubsan
3622 Driver
3624 symbolic
3625 Driver
3627 no-pie
3628 Driver RejectNegative Negative(shared)
3629 Don't create a dynamically linked position independent executable.
3632 Driver RejectNegative Negative(no-pie)
3633 Create a dynamically linked position independent executable.
3635 static-pie
3636 Driver RejectNegative Negative(pie)
3637 Create a static position independent executable.
3640 Driver Joined Separate
3642 fipa-ra
3643 Common Var(flag_ipa_ra) Optimization
3644 Use caller save register across calls if possible.
3646 ; This comment is to ensure we retain the blank line above.