Merged revisions 208012,208018-208019,208021,208023-208030,208033,208037,208040-20804...
[official-gcc.git] / main / gcc / common.opt
blob57187d49238b2dcc148625c383cea629a002a2e9
1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003-2014 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 ; 0 means straightforward implementation of complex divide acceptable.
50 ; 1 means wide ranges of inputs must work for complex divide.
51 ; 2 means C99-like requirements for complex multiply and divide.
52 Variable
53 int flag_complex_method = 1
55 ; Nonzero if subexpressions must be evaluated from left-to-right.
56 Variable
57 int flag_evaluation_order = 0
59 ; Language specific warning pass for unused results.
60 Variable
61 bool flag_warn_unused_result = false
63 Variable
64 int *param_values
66 ; Nonzero if we should write GIMPLE bytecode for link-time optimization.
67 Variable
68 int flag_generate_lto
70 ; True to warn about any objects definitions whose size is larger
71 ; than N bytes.  Also want about function definitions whose returned
72 ; values are larger than N bytes, where N is 'larger_than_size'.
73 Variable
74 bool warn_larger_than
76 Variable
77 HOST_WIDE_INT larger_than_size
79 ; True to warn about any function whose frame size is larger
80 ; than N bytes.
81 Variable
82 bool warn_frame_larger_than
84 Variable
85 HOST_WIDE_INT frame_larger_than_size
87 ; Nonzero means we should be saving declaration info into a .X file.
88 Variable
89 int flag_gen_aux_info = 0
91 ; Nonzero if we are compiling code for a shared library, zero for
92 ; executable.
93 Variable
94 int flag_shlib
96 ; These two are really VEC(char_p,heap) *.
98 Variable
99 void *flag_instrument_functions_exclude_functions
101 Variable
102 void *flag_instrument_functions_exclude_files
104 ; Generic structs (e.g. templates not explicitly specialized)
105 ; may not have a compilation unit associated with them, and so
106 ; may need to be treated differently from ordinary structs.
108 ; Structs only handled by reference (indirectly), will also usually
109 ; not need as much debugging information.
111 Variable
112 enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
114 Variable
115 enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
117 ; True if we should exit after parsing options.
118 Variable
119 bool exit_after_options
121 ; Type(s) of debugging information we are producing (if any).  See
122 ; flag-types.h for the definitions of the different possible types of
123 ; debugging information.
124 Variable
125 enum debug_info_type write_symbols = NO_DEBUG
127 ; Level of debugging information we are producing.  See flag-types.h
128 ; for the definitions of the different possible levels.
129 Variable
130 enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
132 ; Nonzero means use GNU-only extensions in the generated symbolic
133 ; debugging information.  Currently, this only has an effect when
134 ; write_symbols is set to DBX_DEBUG, XCOFF_DEBUG, or DWARF_DEBUG.
135 Variable
136 bool use_gnu_debug_info_extensions
138 ; Original value of maximum field alignment in bytes, specified via
139 ; -fpack-struct=<value>.
140 Variable
141 unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
143 ; Type of stack check.
144 Variable
145 enum stack_check_type flag_stack_check = NO_STACK_CHECK
147 ; True if stack usage information needs to be computed.
148 Variable
149 bool flag_stack_usage_info = false
151 ; -dA causes debug commentary information to be produced in
152 ; the generated assembly code (to make it more readable).  This option
153 ; is generally only of use to those who actually need to read the
154 ; generated assembly code (perhaps while debugging the compiler itself).
155 ; Currently, this switch is only used by dwarf2out.c; however, it is intended
156 ; to be a catchall for printing debug information in the assembler file.
157 Variable
158 int flag_debug_asm
160 ; -dP causes the rtl to be emitted as a comment in assembly.
161 Variable
162 int flag_dump_rtl_in_asm
164 ; Whether -da was passed (used only in handle_common_deferred_options).
165 Variable
166 bool flag_dump_all_passed
168 ; Other flags saying which kinds of debugging dump have been requested.
170 Variable
171 int rtl_dump_and_exit
173 Variable
174 int flag_print_asm_name
176 ; Name of top-level original source file (what was input to cpp).
177 ; This comes from the #-command at the beginning of the actual input.
178 ; If there isn't any there, then this is the cc1 input file name.
179 Variable
180 const char *main_input_filename
182 ; Pointer to base name in main_input_filename, with directories and a
183 ; single final extension removed, and the length of this base
184 ; name.
186 Variable
187 const char *main_input_basename
189 Variable
190 int main_input_baselength
192 ; Which options have been printed by --help.
193 Variable
194 char *help_printed
196 ; Which enums have been printed by --help.  0 = not printed, no
197 ; relevant options seen, 1 = relevant option seen, not yet printed, 2
198 ; = printed.
199 Variable
200 char *help_enum_printed
202 ; The number of columns for --help output.
203 Variable
204 unsigned int help_columns
206 ; Whether this options structure has been through finish_options
207 Variable
208 bool flag_opts_finished
210 ; What the sanitizer should instrument
211 Variable
212 unsigned int flag_sanitize
214 ; Flag whether a prefix has been added to dump_base_name
215 Variable
216 bool dump_base_name_prefixed = false
219 Driver
221 -assemble
222 Driver Alias(S)
224 -compile
225 Driver Alias(c)
227 -coverage
228 Driver Alias(coverage)
230 -debug
231 Common Alias(g)
233 -dump
234 Common Separate Alias(d)
236 -dump=
237 Common Joined Alias(d)
239 -dumpbase
240 Common Separate Alias(dumpbase)
242 -dumpdir
243 Common Separate Alias(dumpdir)
245 -entry
246 Driver Separate Alias(e)
248 -entry=
249 Driver Joined Alias(e)
251 -extra-warnings
252 Common Warning Alias(Wextra)
254 -for-assembler
255 Driver Separate Alias(Xassembler)
257 -for-assembler=
258 Driver JoinedOrMissing Alias(Xassembler)
260 -for-linker
261 Driver Separate Alias(Xlinker)
263 -for-linker=
264 Driver JoinedOrMissing Alias(Xlinker)
266 -force-link
267 Driver Separate Alias(u)
269 -force-link=
270 Driver Joined Alias(u)
272 -help
273 Common Driver Var(help_flag)
274 Display this information
276 -help=
277 Common Driver Report Joined
278 --help=<class>  Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params
280 -language
281 Driver Separate Alias(x)
283 -language=
284 Driver Joined Alias(x)
286 -library-directory
287 Driver Separate Alias(L)
289 -library-directory=
290 Driver Joined Alias(L)
292 -no-canonical-prefixes
293 Driver Alias(no-canonical-prefixes)
295 -canonical-prefixes
296 Driver Alias(canonical-prefixes)
298 -no-standard-libraries
299 Driver Alias(nostdlib)
301 -no-sysroot-suffix
302 Driver Var(no_sysroot_suffix)
304 -no-warnings
305 Common Alias(w)
307 -optimize
308 Common Alias(O)
310 -output
311 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
313 -output=
314 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
316 -pass-exit-codes
317 Driver Alias(pass-exit-codes)
319 -pedantic
320 Common Alias(Wpedantic)
322 -pedantic-errors
323 Common Alias(pedantic-errors)
325 -pie
326 Driver Alias(pie)
328 -pipe
329 Driver Alias(pipe)
331 -prefix
332 Driver Separate Alias(B)
334 -prefix=
335 Driver JoinedOrMissing Alias(B)
337 -preprocess
338 Driver Alias(E)
340 -print-file-name
341 Driver Separate Alias(print-file-name=)
343 -print-file-name=
344 Driver JoinedOrMissing Alias(print-file-name=)
346 -print-libgcc-file-name
347 Driver Alias(print-libgcc-file-name)
349 -print-multi-directory
350 Driver Alias(print-multi-directory)
352 -print-multi-lib
353 Driver Alias(print-multi-lib)
355 -print-multi-os-directory
356 Driver Alias(print-multi-os-directory)
358 -print-multiarch
359 Driver Alias(print-multiarch)
361 -print-prog-name
362 Driver Separate Alias(print-prog-name=)
364 -print-prog-name=
365 Driver JoinedOrMissing Alias(print-prog-name=)
367 -print-search-dirs
368 Driver Alias(print-search-dirs)
370 -print-sysroot
371 Driver Alias(print-sysroot)
373 -print-sysroot-headers-suffix
374 Driver Alias(print-sysroot-headers-suffix)
376 -profile
377 Common Alias(p)
379 -save-temps
380 Driver Alias(save-temps)
382 -shared
383 Driver Alias(shared)
385 -specs
386 Driver Separate Alias(specs=)
388 -specs=
389 Driver Joined Alias(specs=)
391 -static
392 Driver Alias(static)
394 -symbolic
395 Driver Alias(symbolic)
397 -target-help
398 Common Driver
399 Alias for --help=target
401 -time
402 Driver Alias(time)
404 -verbose
405 Driver Alias(v)
407 ;; The driver used to convert options such as --help into forms such
408 ;; as -fhelp; the following four entries are for compatibility with
409 ;; any direct uses of those (undocumented) -f forms
410 fhelp
411 Common Driver Alias(-help)
413 fhelp=
414 Common Driver Joined Alias(-help=)
416 ftarget-help
417 Common Driver Alias(-target-help)
419 fversion
420 Common Driver Alias(-version)
422 -param
423 Common Separate
424 --param <param>=<value> Set parameter <param> to value.  See below for a complete list of parameters
426 -param=
427 Common Joined Alias(-param)
429 -sysroot
430 Driver Separate Alias(-sysroot=)
432 -sysroot=
433 Driver JoinedOrMissing
435 -version
436 Common Driver
439 Driver Joined Separate
442 Driver
445 Driver Joined Separate
448 Driver
451 Common JoinedOrMissing Optimization
452 -O<number>      Set optimization level to <number>
455 Common Optimization
456 Optimize for space rather than speed
458 Ofast
459 Common Optimization
460 Optimize for speed disregarding exact standards compliance
463 Common Optimization
464 Optimize for debugging experience rather than speed or size
467 Driver
470 Driver Negative(Qy)
473 Driver Negative(Qn)
476 Driver Joined Separate
479 Driver
482 Driver Joined Separate
484 Tbss
485 Driver Separate
487 Tbss=
488 Driver Joined
490 Tdata
491 Driver Separate
493 Tdata=
494 Driver Joined
496 Ttext
497 Driver Separate
499 Ttext=
500 Driver Joined
503 Common RejectNegative Warning Alias(Wextra)
504 This switch is deprecated; use -Wextra instead
507 Driver JoinedOrMissing
510 Driver JoinedOrMissing
513 Driver JoinedOrMissing
515 Waggregate-return
516 Common Var(warn_aggregate_return) Warning
517 Warn about returning structures, unions or arrays
519 Waggressive-loop-optimizations
520 Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
521 Warn if a loop with constant number of iterations triggers undefined behavior
523 Warray-bounds
524 Common Var(warn_array_bounds) Warning
525 Warn if an array is accessed out of bounds
527 Wattributes
528 Common Var(warn_attributes) Init(1) Warning
529 Warn about inappropriate attribute usage
531 Wcast-align
532 Common Var(warn_cast_align) Warning
533 Warn about pointer casts which increase alignment
535 Wcpp
536 Common Var(warn_cpp) Init(1) Warning
537 Warn when a #warning directive is encountered
539 Wdeprecated-declarations
540 Common Var(warn_deprecated_decl) Init(1) Warning
541 Warn about uses of __attribute__((deprecated)) declarations
543 Wdisabled-optimization
544 Common Var(warn_disabled_optimization) Warning
545 Warn when an optimization pass is disabled
547 Werror
548 Common Var(warnings_are_errors)
549 Treat all warnings as errors
551 Werror=
552 Common Joined
553 Treat specified warning as error
555 Wextra
556 Common Var(extra_warnings) Warning
557 Print extra (possibly unwanted) warnings
559 Wfatal-errors
560 Common Var(flag_fatal_errors)
561 Exit on the first error occurred
563 Wforce-warnings
564 Common Var(flag_force_warnings)
565 Disable promoting warnings to errors
567 Wframe-larger-than=
568 Common RejectNegative Joined UInteger
569 -Wframe-larger-than=<number>    Warn if a function's stack frame requires more than <number> bytes
571 Wfree-nonheap-object
572 Common Var(warn_free_nonheap_object) Init(1) Warning
573 Warn when attempting to free a non-heap object
575 Winline
576 Common Var(warn_inline) Warning
577 Warn when an inlined function cannot be inlined
579 Winvalid-memory-model
580 Common Var(warn_invalid_memory_model) Init(1) Warning
581 Warn when an atomic memory model parameter is known to be outside the valid range.
583 Wlarger-than-
584 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
586 Wlarger-than=
587 Common RejectNegative Joined UInteger Warning
588 -Wlarger-than=<number>  Warn if an object is larger than <number> bytes
590 Wunsafe-loop-optimizations
591 Common Var(warn_unsafe_loop_optimizations) Warning
592 Warn if the loop cannot be optimized due to nontrivial assumptions.
594 Wmissing-noreturn
595 Common Alias(Wsuggest-attribute=noreturn)
597 Woverflow
598 Common Var(warn_overflow) Init(1) Warning
599 Warn about overflow in arithmetic expressions
601 Wpacked
602 Common Var(warn_packed) Warning
603 Warn when the packed attribute has no effect on struct layout
605 Wpadded
606 Common Var(warn_padded) Warning
607 Warn when padding is required to align structure members
609 Wripa-opt-mismatch
610 Common Var(warn_ripa_opt_mismatch) Warning EnabledBy(Wall)
611 Warn if primary and auxiliary modules have mismatched command line options
613 Wself-assign
614 Common Var(warn_self_assign) Init(0) Warning
615 Warn when a variable is assigned to itself
617 Wpedantic
618 Common Var(pedantic) Warning
619 Issue warnings needed for strict compliance to the standard
621 Wshadow
622 Common Var(warn_shadow) Warning
623 Warn when one local variable shadows another
625 Wshadow-local
626 Common Var(warn_shadow_local) Warning
627 Warn when one local variable shadows another local variable or parameter
629 Wshadow-compatible-local
630 Common Var(warn_shadow_compatible_local) Warning
631 Warn when one local variable shadows another local variable or parameter
632 of compatible type
634 Wstack-protector
635 Common Var(warn_stack_protect) Warning
636 Warn when not issuing stack smashing protection for some reason
638 Wstack-usage=
639 Common Joined RejectNegative UInteger Var(warn_stack_usage) Init(-1) Warning
640 Warn if stack usage might be larger than specified amount
642 Wstrict-aliasing
643 Common Warning
644 Warn about code which might break strict aliasing rules
646 Wstrict-aliasing=
647 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
648 Warn about code which might break strict aliasing rules
650 Wstrict-overflow
651 Common Warning
652 Warn about optimizations that assume that signed overflow is undefined
654 Wstrict-overflow=
655 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
656 Warn about optimizations that assume that signed overflow is undefined
658 Wsuggest-attribute=const
659 Common Var(warn_suggest_attribute_const) Warning
660 Warn about functions which might be candidates for __attribute__((const))
662 Wsuggest-attribute=pure
663 Common Var(warn_suggest_attribute_pure) Warning
664 Warn about functions which might be candidates for __attribute__((pure))
666 Wsuggest-attribute=noreturn
667 Common Var(warn_suggest_attribute_noreturn) Warning
668 Warn about functions which might be candidates for __attribute__((noreturn))
670 Wsystem-headers
671 Common Var(warn_system_headers) Warning
672 Do not suppress warnings from system headers
674 Wtrampolines
675 Common Var(warn_trampolines) Warning
676 Warn whenever a trampoline is generated
678 ; FIXME.  The following -Wthread-* flags are placeholders to prevent
679 ; confusing the compiler when applications are built with these flags.
680 ; Actual support for these flags is being implemented in the
681 ; thread-annotations branch.
682 Wthread-safety
683 Common Var(warn_thread_safety) Warning
684 Warn about potential thread safety issues when the code is annotated with thread safety attributes
686 Wthread-safety-analysis
687 Common Ignore
688 Does nothing.  For compatibility with clang thread safety analysis.
690 Wthread-safety-attributes
691 Common Ignore
692 Does nothing.  For compatibility with clang thread safety analysis.
694 Wthread-safety-precise
695 Common Ignore
696 Does nothing.  For compatibility with clang thread safety analysis.
698 Wthread-unguarded-var
699 Common Var(warn_thread_unguarded_var) Init(1) Warning
700 Warn about shared variables not properly protected by locks specified in the attributes
702 Wthread-unguarded-func
703 Common Var(warn_thread_unguarded_func) Init(1) Warning
704 Warn about function calls not properly protected by locks specified in the attributes
706 Wthread-mismatched-lock-order
707 Common Var(warn_thread_mismatched_lock_order) Init(1) Warning
708 Warn about lock acquisition order inconsistent with what specified in the attributes
710 Wthread-mismatched-lock-acq-rel
711 Common Var(warn_thread_mismatched_lock_acq_rel) Init(1) Warning
712 Warn about mismatched lock acquisition and release
714 Wthread-reentrant-lock
715 Common Var(warn_thread_reentrant_lock) Init(1) Warning
716 Warn about a lock being acquired recursively
718 Wthread-unsupported-lock-name
719 Common Var(warn_unsupported_lock_name) Init(0) Warning
720 Warn about uses of unsupported lock names in attributes
722 Wtype-limits
723 Common Var(warn_type_limits) Warning EnabledBy(Wextra)
724 Warn if a comparison is always true or always false due to the limited range of the data type
726 Wuninitialized
727 Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
728 Warn about uninitialized automatic variables
730 Wmaybe-uninitialized
731 Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
732 Warn about maybe uninitialized automatic variables
734 Wunreachable-code
735 Common Ignore
736 Does nothing. Preserved for backward compatibility.
738 Wunused
739 Common Var(warn_unused) Init(0) Warning
740 Enable all -Wunused- warnings
742 Wunused-but-set-parameter
743 Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
744 Warn when a function parameter is only set, otherwise unused
746 Wunused-but-set-variable
747 Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
748 Warn when a variable is only set, otherwise unused
750 Wunused-function
751 Common Var(warn_unused_function) Warning EnabledBy(Wunused)
752 Warn when a function is unused
754 Wunused-label
755 Common Var(warn_unused_label) Warning EnabledBy(Wunused)
756 Warn when a label is unused
758 Wunused-parameter
759 Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
760 Warn when a function parameter is unused
762 Wunused-value
763 Common Var(warn_unused_value) Warning EnabledBy(Wunused)
764 Warn when an expression value is unused
766 Wunused-variable
767 Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
768 Warn when a variable is unused
770 Wcoverage-mismatch
771 Common Var(warn_coverage_mismatch) Init(1) Warning
772 Warn in case profiles in -fprofile-use do not match
774 Wvector-operation-performance
775 Common Var(warn_vector_operation_performance) Warning
776 Warn when a vector operation is compiled outside the SIMD
778 Xassembler
779 Driver Separate
781 Xclang-only=
782 Driver Joined Ignore
784 Xlinker
785 Driver Separate
787 Xpreprocessor
788 Driver Separate
791 Driver
793 aux-info
794 Common Separate Var(aux_info_file_name)
795 -aux-info <file>        Emit declaration information into <file>
797 aux-info=
798 Common Joined Alias(aux-info)
800 auxbase
801 Common Separate RejectDriver Var(aux_base_name)
803 auxbase-strip
804 Common Separate RejectDriver
806 coverage
807 Driver
810 Driver
813 Common Joined
814 -d<letters>     Enable dumps from specific passes of the compiler
816 dumpbase
817 Common Separate Var(dump_base_name)
818 -dumpbase <file>        Set the file basename to be used for dumps
820 dumpdir
821 Common Separate Var(dump_dir_name)
822 -dumpdir <dir>  Set the directory name to be used for dumps
824 dumpmachine
825 Driver
827 dumpspecs
828 Driver
830 dumpversion
831 Driver
834 Driver Joined Separate
836 ; This option has historically been passed down to the linker by an
837 ; accident of a %{e*} spec, so ensure it continues to be passed down
838 ; as a single option.  The supported option for this purpose is
839 ; -rdynamic.  See PR 47390.
840 export-dynamic
841 Driver Undocumented
843 ; The version of the C++ ABI in use.  The following values are allowed:
845 ; 0: The version of the ABI believed most conformant with the C++ ABI
846 ;    specification.  This ABI may change as bugs are discovered and fixed.
847 ;    Therefore, 0 will not necessarily indicate the same ABI in different
848 ;    versions of G++.
850 ; 1: The version of the ABI first used in G++ 3.2.
852 ; 2: The version of the ABI first used in G++ 3.4 (and current default).
854 ; 3: The version of the ABI that fixes the missing underscore
855 ;    in template non-type arguments of pointer type.
857 ; 4: The version of the ABI that introduces unambiguous mangling of
858 ;    vector types.  First selectable in G++ 4.5.
860 ; 5: The version of the ABI that ignores attribute const/noreturn
861 ;    in function pointer mangling, and corrects mangling of decltype and
862 ;    function parameters used in other parameters and the return type.
863 ;    First selectable in G++ 4.6.
865 ; 6: The version of the ABI that doesn't promote scoped enums to int and
866 ;    changes the mangling of template argument packs, const/static_cast,
867 ;    prefix ++ and --, and a class scope function used as a template
868 ;    argument.
869 ;    First selectable in G++ 4.7.
871 ; 7: The version of the ABI that treats nullptr_t as a builtin type and
872 ;    corrects the mangling of lambdas in default argument scope.
873 ;    First selectable in G++ 4.8.
875 ; 8: The version of the ABI that corrects the substitution behavior of
876 ;    function types with function-cv-qualifiers.
877 ;    First selectable in G++ 4.9.
879 ; Additional positive integers will be assigned as new versions of
880 ; the ABI become the default version of the ABI.
881 fabi-version=
882 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
884 faggressive-loop-optimizations
885 Common Report Var(flag_aggressive_loop_optimizations) Optimization Init(1) 
886 Aggressively optimize loops using language constraints
888 falign-functions
889 Common Report Var(align_functions,0) Optimization UInteger
890 Align the start of functions
892 falign-functions=
893 Common RejectNegative Joined UInteger Var(align_functions)
895 falign-jumps
896 Common Report Var(align_jumps,0) Optimization UInteger
897 Align labels which are only reached by jumping
899 falign-jumps=
900 Common RejectNegative Joined UInteger Var(align_jumps)
902 falign-labels
903 Common Report Var(align_labels,0) Optimization UInteger
904 Align all labels
906 falign-labels=
907 Common RejectNegative Joined UInteger Var(align_labels)
909 falign-loops
910 Common Report Var(align_loops,0) Optimization UInteger
911 Align the start of loops
913 falign-loops=
914 Common RejectNegative Joined UInteger Var(align_loops)
916 fargument-alias
917 Common Ignore
918 Does nothing. Preserved for backward compatibility.
920 fargument-noalias
921 Common Ignore
922 Does nothing. Preserved for backward compatibility.
924 fargument-noalias-global
925 Common Ignore
926 Does nothing. Preserved for backward compatibility.
928 fargument-noalias-anything
929 Common Ignore
930 Does nothing. Preserved for backward compatibility.
932 fsanitize=
933 Common Driver Report Joined
934 Select what to sanitize
936 fasynchronous-unwind-tables
937 Common Report Var(flag_asynchronous_unwind_tables) Optimization
938 Generate unwind tables that are exact at each instruction boundary
940 fauto-inc-dec
941 Common Report Var(flag_auto_inc_dec) Init(1)
942 Generate auto-inc/dec instructions
944 ; -fcheck-bounds causes gcc to generate array bounds checks.
945 ; For C, C++ and ObjC: defaults off.
946 ; For Java: defaults to on.
947 ; For Fortran: defaults to off.
948 fbounds-check
949 Common Report Var(flag_bounds_check)
950 Generate code to check bounds before indexing arrays
952 fbranch-count-reg
953 Common Report Var(flag_branch_on_count_reg) Optimization
954 Replace add, compare, branch with branch on count register
956 fbranch-probabilities
957 Common Report Var(flag_branch_probabilities) Optimization
958 Use profiling information for branch probabilities
960 fbranch-target-load-optimize
961 Common Report Var(flag_branch_target_load_optimize) Optimization
962 Perform branch target load optimization before prologue / epilogue threading
964 fbranch-target-load-optimize2
965 Common Report Var(flag_branch_target_load_optimize2) Optimization
966 Perform branch target load optimization after prologue / epilogue threading
968 fbtr-bb-exclusive
969 Common Report Var(flag_btr_bb_exclusive) Optimization
970 Restrict target load migration not to re-use registers in any basic block
972 fcall-saved-
973 Common Joined RejectNegative Var(common_deferred_options) Defer
974 -fcall-saved-<register> Mark <register> as being preserved across functions
976 fcall-used-
977 Common Joined RejectNegative Var(common_deferred_options) Defer
978 -fcall-used-<register>  Mark <register> as being corrupted by function calls
980 ; Nonzero for -fcaller-saves: allocate values in regs that need to
981 ; be saved across function calls, if that produces overall better code.
982 ; Optional now, so people can test it.
983 fcaller-saves
984 Common Report Var(flag_caller_saves) Optimization
985 Save registers around function calls
987 fcallgraph-profiles-sections
988 Common Report Var(flag_callgraph_profiles_sections) Init(0)
989 Generate .note.callgraph.text sections listing callees and edge counts.
991 fcheck-data-deps
992 Common Report Var(flag_check_data_deps)
993 Compare the results of several data dependence analyzers.
995 fcheck-new
996 Common Var(flag_check_new)
997 Check the return value of new in C++
999 fcombine-stack-adjustments
1000 Common Report Var(flag_combine_stack_adjustments) Optimization
1001 Looks for opportunities to reduce stack adjustments and stack references.
1003 fcommon
1004 Common Report Var(flag_no_common,0) Optimization
1005 Do not put uninitialized globals in the common section
1007 fcompare-debug
1008 Driver
1009 ; Converted by the driver to -fcompare-debug= options.
1011 fcompare-debug=
1012 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
1013 -fcompare-debug[=<opts>]        Compile with and without e.g. -gtoggle, and compare the final-insns dump
1015 fcompare-debug-second
1016 Common Driver RejectNegative Var(flag_compare_debug)
1017 Run only the second compilation of -fcompare-debug
1019 fcompare-elim
1020 Common Report Var(flag_compare_elim_after_reload) Optimization
1021 Perform comparison elimination after register allocation has finished
1023 fconserve-stack
1024 Common Var(flag_conserve_stack) Optimization
1025 Do not perform optimizations increasing noticeably stack usage
1027 fcprop-registers
1028 Common Report Var(flag_cprop_registers) Optimization
1029 Perform a register copy-propagation optimization pass
1031 fcrossjumping
1032 Common Report Var(flag_crossjumping) Optimization
1033 Perform cross-jumping optimization
1035 fcse-follow-jumps
1036 Common Report Var(flag_cse_follow_jumps) Optimization
1037 When running CSE, follow jumps to their targets
1039 fcse-skip-blocks
1040 Common Ignore
1041 Does nothing.  Preserved for backward compatibility.
1043 fcx-limited-range
1044 Common Report Var(flag_cx_limited_range) Optimization SetByCombined
1045 Omit range reduction step when performing complex division
1047 fcx-fortran-rules
1048 Common Report Var(flag_cx_fortran_rules) Optimization
1049 Complex multiplication and division follow Fortran rules
1051 fdata-sections
1052 Common Report Var(flag_data_sections) Optimization
1053 Place data items into their own section
1055 fdbg-cnt-list
1056 Common Report Var(common_deferred_options) Defer
1057 List all available debugging counters with their limits and counts.
1059 fdbg-cnt=
1060 Common RejectNegative Joined Var(common_deferred_options) Defer
1061 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...]     Set the debug counter limit.   
1063 fdebug-prefix-map=
1064 Common Joined RejectNegative Var(common_deferred_options) Defer
1065 Map one directory name to another in debug information
1067 fdebug-types-section
1068 Common Report Var(flag_debug_types_section) Init(0)
1069 Output .debug_types section when using DWARF v4 debuginfo.
1071 ; Nonzero for -fdefer-pop: don't pop args after each function call
1072 ; instead save them up to pop many calls' args with one insns.
1073 fdefer-pop
1074 Common Report Var(flag_defer_pop) Optimization
1075 Defer popping functions args from stack until later
1077 fdelayed-branch
1078 Common Report Var(flag_delayed_branch) Optimization
1079 Attempt to fill delay slots of branch instructions
1081 fdelete-dead-exceptions
1082 Common Report Var(flag_delete_dead_exceptions) Init(0)
1083 Delete dead instructions that may throw exceptions
1085 fdelete-null-pointer-checks
1086 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
1087 Delete useless null pointer checks
1089 fdevirtualize-speculatively
1090 Common Report Var(flag_devirtualize_speculatively) Optimization
1091 Perform speculative devirtualization
1093 fdevirtualize
1094 Common Report Var(flag_devirtualize) Optimization
1095 Try to convert virtual calls to direct ones.
1097 fdiagnostics-show-location=
1098 Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
1099 -fdiagnostics-show-location=[once|every-line]   How often to emit source location at the beginning of line-wrapped diagnostics
1101 ; Required for these enum values.
1102 SourceInclude
1103 pretty-print.h
1105 Enum
1106 Name(diagnostic_prefixing_rule) Type(int)
1108 EnumValue
1109 Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
1111 EnumValue
1112 Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
1114 fdiagnostics-show-caret
1115 Common Var(flag_diagnostics_show_caret) Init(1)
1116 Show the source line with a caret indicating the column
1118 fdiagnostics-color
1119 Common Alias(fdiagnostics-color=,always,never)
1122 fdiagnostics-color=
1123 Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
1124 -fdiagnostics-color=[never|always|auto] Colorize diagnostics
1126 ; Required for these enum values.
1127 SourceInclude
1128 diagnostic-color.h
1130 Enum
1131 Name(diagnostic_color_rule) Type(int)
1133 EnumValue
1134 Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
1136 EnumValue
1137 Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
1139 EnumValue
1140 Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
1142 fdiagnostics-show-option
1143 Common Var(flag_diagnostics_show_option) Init(1)
1144 Amend appropriate diagnostic messages with the command line option that controls them
1146 fdisable-
1147 Common Joined RejectNegative Var(common_deferred_options) Defer
1148 -fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass
1150 fenable-
1151 Common Joined RejectNegative Var(common_deferred_options) Defer
1152 -fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass
1154 fdump-
1155 Common Joined RejectNegative Var(common_deferred_options) Defer
1156 -fdump-<type>   Dump various compiler internals to a file
1158 fdump-final-insns
1159 Driver RejectNegative
1161 fdump-final-insns=
1162 Common RejectNegative Joined Var(flag_dump_final_insns)
1163 -fdump-final-insns=filename     Dump to filename the insns at the end of translation
1165 fdump-go-spec=
1166 Common RejectNegative Joined Var(flag_dump_go_spec)
1167 -fdump-go-spec=filename Write all declarations to file as Go code
1169 fdump-noaddr
1170 Common Report Var(flag_dump_noaddr)
1171 Suppress output of addresses in debugging dumps
1173 fdump-passes
1174 Common Var(flag_dump_passes) Init(0)
1175 Dump optimization passes
1177 fdump-unnumbered
1178 Common Report Var(flag_dump_unnumbered)
1179 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
1181 fdump-unnumbered-links
1182 Common Report Var(flag_dump_unnumbered_links)
1183 Suppress output of previous and next insn numbers in debugging dumps
1185 fdwarf2-cfi-asm
1186 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1187 Enable CFI tables via GAS assembler directives.
1189 fripa
1190 Common Report Var(flag_dyn_ipa)
1191 Perform Dynamic Inter-Procedural Analysis.
1193 fripa-disallow-asm-modules
1194 Common Report Var(flag_ripa_disallow_asm_modules)
1195 Don't import an auxiliary module if it contains asm statements
1197 fripa-disallow-opt-mismatch
1198 Common Report Var(flag_ripa_disallow_opt_mismatch)
1199 Don't import an auxiliary module if the command line options mismatch with the primary module
1201 fripa-no-promote-always-inline-func
1202 Common Report Var(flag_ripa_no_promote_always_inline) Init(0)
1203 Don't promote always inline static functions assuming they
1204 will be inlined and no copy is needed.
1206 fripa-inc-path-sub=
1207 Common Joined RejectNegative Var(lipo_inc_path_pattern)
1208 Substitute substring in include paths with a new string to allow reuse profile data
1210 fripa-verbose
1211 Common Report Var(flag_ripa_verbose)
1212 Enable verbose informational messages for LIPO compilation
1214 fearly-inlining
1215 Common Report Var(flag_early_inlining) Init(1) Optimization
1216 Perform early inlining
1218 feliminate-dwarf2-dups
1219 Common Report Var(flag_eliminate_dwarf2_dups)
1220 Perform DWARF2 duplicate elimination
1222 fipa-sra
1223 Common Report Var(flag_ipa_sra) Init(0) Optimization
1224 Perform interprocedural reduction of aggregates
1226 feliminate-unused-debug-symbols
1227 Common Report Var(flag_debug_only_used_symbols)
1228 Perform unused type elimination in debug info
1230 feliminate-unused-debug-types
1231 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
1232 Perform unused type elimination in debug info
1234 femit-class-debug-always
1235 Common Report Var(flag_emit_class_debug_always) Init(0)
1236 Do not suppress C++ class debug information.
1238 fexceptions
1239 Common Report Var(flag_exceptions) Optimization
1240 Enable exception handling
1242 fexpensive-optimizations
1243 Common Report Var(flag_expensive_optimizations) Optimization
1244 Perform a number of minor, expensive optimizations
1246 fexcess-precision=
1247 Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT)
1248 -fexcess-precision=[fast|standard]      Specify handling of excess floating-point precision
1250 Enum
1251 Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1253 EnumValue
1254 Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1256 EnumValue
1257 Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1259 ffast-math
1260 Common
1262 ffat-lto-objects
1263 Common Var(flag_fat_lto_objects)
1264 Output lto objects containing both the intermediate language and binary output.
1266 ffinite-math-only
1267 Common Report Var(flag_finite_math_only) Optimization SetByCombined
1268 Assume no NaNs or infinities are generated
1270 ffixed-
1271 Common Joined RejectNegative Var(common_deferred_options) Defer
1272 -ffixed-<register>      Mark <register> as being unavailable to the compiler
1274 ffloat-store
1275 Common Report Var(flag_float_store) Optimization
1276 Don't allocate floats and doubles in extended-precision registers
1278 fforce-addr
1279 Common Ignore
1280 Does nothing.  Preserved for backward compatibility.
1282 fforward-propagate
1283 Common Report Var(flag_forward_propagate) Optimization
1284 Perform a forward propagation pass on RTL
1286 ffp-contract=
1287 Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST)
1288 -ffp-contract=[off|on|fast] Perform floating-point expression contraction.
1290 Enum
1291 Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1293 EnumValue
1294 Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1296 ; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1297 EnumValue
1298 Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1300 EnumValue
1301 Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1303 ; Nonzero means don't put addresses of constant functions in registers.
1304 ; Used for compiling the Unix kernel, where strange substitutions are
1305 ; done on the assembly output.
1306 ffunction-cse
1307 Common Report Var(flag_no_function_cse,0)
1308 Allow function addresses to be held in registers
1310 ffunction-sections
1311 Common Report Var(flag_function_sections)
1312 Place each function into its own section
1314 fgcse
1315 Common Report Var(flag_gcse) Optimization
1316 Perform global common subexpression elimination
1318 fgcse-lm
1319 Common Report Var(flag_gcse_lm) Init(1) Optimization
1320 Perform enhanced load motion during global common subexpression elimination
1322 fgcse-sm
1323 Common Report Var(flag_gcse_sm) Init(0) Optimization
1324 Perform store motion after global common subexpression elimination
1326 fgcse-las
1327 Common Report Var(flag_gcse_las) Init(0) Optimization
1328 Perform redundant load after store elimination in global common subexpression
1329 elimination
1331 fgcse-after-reload
1332 Common Report Var(flag_gcse_after_reload) Optimization
1333 Perform global common subexpression elimination after register allocation
1334 has finished
1336 ; This option is not documented yet as its semantics will change.
1337 fgraphite
1338 Common Report Var(flag_graphite)
1339 Enable in and out of Graphite representation
1341 fgraphite-identity
1342 Common Report Var(flag_graphite_identity) Optimization
1343 Enable Graphite Identity transformation
1345 fhoist-adjacent-loads
1346 Common Report Var(flag_hoist_adjacent_loads) Optimization
1347 Enable hoisting adjacent loads to encourage generating conditional move
1348 instructions
1350 floop-parallelize-all
1351 Common Report Var(flag_loop_parallelize_all) Optimization
1352 Mark all loops as parallel
1354 floop-strip-mine
1355 Common Report Var(flag_loop_strip_mine) Optimization
1356 Enable Loop Strip Mining transformation
1358 floop-interchange
1359 Common Report Var(flag_loop_interchange) Optimization
1360 Enable Loop Interchange transformation
1362 floop-block
1363 Common Report Var(flag_loop_block) Optimization
1364 Enable Loop Blocking transformation
1366 fgnu-tm
1367 Common Report Var(flag_tm)
1368 Enable support for GNU transactional memory
1370 floop-flatten
1371 Common Ignore
1372 Does nothing. Preserved for backward compatibility.
1374 floop-nest-optimize
1375 Common Report Var(flag_loop_optimize_isl) Optimization
1376 Enable the ISL based loop nest optimizer
1378 fstrict-volatile-bitfields
1379 Common Report Var(flag_strict_volatile_bitfields) Init(-1)
1380 Force bitfield accesses to match their type width
1382 fguess-branch-probability
1383 Common Report Var(flag_guess_branch_prob) Optimization
1384 Enable guessing of branch probabilities
1386 ; Nonzero means ignore `#ident' directives.  0 means handle them.
1387 ; Generate position-independent code for executables if possible
1388 ; On SVR4 targets, it also controls whether or not to emit a
1389 ; string identifying the compiler.
1390 fident
1391 Common Report Var(flag_no_ident,0)
1392 Process #ident directives
1394 fif-conversion
1395 Common Report Var(flag_if_conversion) Optimization
1396 Perform conversion of conditional jumps to branchless equivalents
1398 fif-conversion2
1399 Common Report Var(flag_if_conversion2) Optimization
1400 Perform conversion of conditional jumps to conditional execution
1402 fstack-reuse=
1403 Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL)
1404 -fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
1406 Enum
1407 Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1409 EnumValue
1410 Enum(stack_reuse_level) String(all) Value(SR_ALL)
1412 EnumValue
1413 Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1415 EnumValue
1416 Enum(stack_reuse_level) String(none) Value(SR_NONE)
1418 ftree-loop-if-convert
1419 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
1420 Convert conditional jumps in innermost loops to branchless equivalents
1422 ftree-loop-if-convert-stores
1423 Common Report Var(flag_tree_loop_if_convert_stores) Optimization
1424 Also if-convert conditional jumps containing memory writes
1426 ; -finhibit-size-directive inhibits output of .size for ELF.
1427 ; This is used only for compiling crtstuff.c,
1428 ; and it may be extended to other effects
1429 ; needed for crtstuff.c on other systems.
1430 finhibit-size-directive
1431 Common Report Var(flag_inhibit_size_directive)
1432 Do not generate .size directives
1434 findirect-inlining
1435 Common Report Var(flag_indirect_inlining)
1436 Perform indirect inlining
1438 ; General flag to enable inlining.  Specifying -fno-inline will disable
1439 ; all inlining apart from always-inline functions.
1440 finline
1441 Common Report Var(flag_no_inline,0) Init(0) Optimization
1442 Enable inlining of function declared \"inline\", disabling disables all inlining
1444 finline-small-functions
1445 Common Report Var(flag_inline_small_functions) Optimization
1446 Integrate functions into their callers when code size is known not to grow
1448 finline-functions
1449 Common Report Var(flag_inline_functions) Optimization
1450 Integrate functions not declared \"inline\" into their callers when profitable
1452 finline-functions-called-once
1453 Common Report Var(flag_inline_functions_called_once) Optimization
1454 Integrate functions only required by their single caller
1456 finline-limit-
1457 Common RejectNegative Joined Alias(finline-limit=)
1459 finline-limit=
1460 Common RejectNegative Joined UInteger
1461 -finline-limit=<number> Limit the size of inlined functions to <number>
1463 finline-atomics
1464 Common Report Var(flag_inline_atomics) Init(1) Optimization
1465 Inline __atomic operations when a lock free instruction sequence is available.
1467 finstrument-functions
1468 Common Report Var(flag_instrument_function_entry_exit)
1469 Instrument function entry and exit with profiling calls
1471 finstrument-functions-exclude-function-list=
1472 Common RejectNegative Joined
1473 -finstrument-functions-exclude-function-list=name,...  Do not instrument listed functions
1475 finstrument-functions-exclude-file-list=
1476 Common RejectNegative Joined
1477 -finstrument-functions-exclude-file-list=filename,...  Do not instrument functions listed in files
1479 fipa-cp
1480 Common Report Var(flag_ipa_cp) Optimization
1481 Perform interprocedural constant propagation
1483 fipa-cp-clone
1484 Common Report Var(flag_ipa_cp_clone) Optimization
1485 Perform cloning to make Interprocedural constant propagation stronger
1487 fipa-profile
1488 Common Report Var(flag_ipa_profile) Init(0) Optimization
1489 Perform interprocedural profile propagation
1491 fipa-pta
1492 Common Report Var(flag_ipa_pta) Init(0) Optimization
1493 Perform interprocedural points-to analysis
1495 fipa-pure-const
1496 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
1497 Discover pure and const functions
1499 fipa-reference
1500 Common Report Var(flag_ipa_reference) Init(0) Optimization
1501 Discover readonly and non addressable static variables
1503 fipa-matrix-reorg
1504 Common Ignore
1505 Does nothing. Preserved for backward compatibility.
1507 fipa-struct-reorg
1508 Common Ignore
1509 Does nothing. Preserved for backward compatibility.
1511 fira-algorithm=
1512 Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB)
1513 -fira-algorithm=[CB|priority] Set the used IRA algorithm
1515 Enum
1516 Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1518 EnumValue
1519 Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1521 EnumValue
1522 Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1524 fira-region=
1525 Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT)
1526 -fira-region=[one|all|mixed] Set regions for IRA
1528 Enum
1529 Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1531 EnumValue
1532 Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1534 EnumValue
1535 Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1537 EnumValue
1538 Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1540 fira-hoist-pressure
1541 Common Report Var(flag_ira_hoist_pressure) Init(1) Optimization
1542 Use IRA based register pressure calculation
1543 in RTL hoist optimizations.
1545 fira-loop-pressure
1546 Common Report Var(flag_ira_loop_pressure) Optimization
1547 Use IRA based register pressure calculation
1548 in RTL loop optimizations.
1550 fira-share-save-slots
1551 Common Report Var(flag_ira_share_save_slots) Init(1)
1552 Share slots for saving different hard registers.
1554 fira-share-spill-slots
1555 Common Report Var(flag_ira_share_spill_slots) Init(1)
1556 Share stack slots for spilled pseudo-registers.
1558 fira-verbose=
1559 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
1560 -fira-verbose=<number>  Control IRA's level of diagnostic messages.
1562 fivopts
1563 Common Report Var(flag_ivopts) Init(1) Optimization
1564 Optimize induction variables on trees
1566 fjump-tables
1567 Common Var(flag_jump_tables) Init(1) Optimization
1568 Use jump tables for sufficiently large switch statements
1570 fkeep-inline-functions
1571 Common Report Var(flag_keep_inline_functions)
1572 Generate code for functions even if they are fully inlined
1574 fkeep-static-consts
1575 Common Report Var(flag_keep_static_consts) Init(1)
1576 Emit static const variables even if they are not used
1578 fleading-underscore
1579 Common Report Var(flag_leading_underscore) Init(-1)
1580 Give external symbols a leading underscore
1582 floop-optimize
1583 Common Ignore
1584 Does nothing.  Preserved for backward compatibility.
1586 flto
1587 Common
1588 Enable link-time optimization.
1590 flto=
1591 Common RejectNegative Joined Var(flag_lto)
1592 Link-time optimization with number of parallel jobs or jobserver.
1594 flto-partition=1to1
1595 Common Var(flag_lto_partition_1to1)
1596 Partition symbols and vars at linktime based on object files they originate from
1598 flto-partition=balanced
1599 Common Var(flag_lto_partition_balanced)
1600 Partition functions and vars at linktime into approximately same sized buckets
1602 flto-partition=max
1603 Common Var(flag_lto_partition_max)
1604 Put every symbol into separate partition
1606 flto-partition=none
1607 Common Var(flag_lto_partition_none)
1608 Disable partioning and streaming
1610 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1611 flto-compression-level=
1612 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
1613 -flto-compression-level=<number>        Use zlib compression level <number> for IL
1615 flto-report
1616 Common Report Var(flag_lto_report) Init(0)
1617 Report various link-time optimization statistics
1619 flto-report-wpa
1620 Common Report Var(flag_lto_report_wpa) Init(0)
1621 Report various link-time optimization statistics for WPA only
1623 fmath-errno
1624 Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined
1625 Set errno after built-in math functions
1627 fmax-errors=
1628 Common Joined RejectNegative UInteger Var(flag_max_errors)
1629 -fmax-errors=<number>   Maximum number of errors to report
1631 fmem-report
1632 Common Report Var(mem_report)
1633 Report on permanent memory allocation
1635 fmem-report-wpa
1636 Common Report Var(mem_report_wpa)
1637 Report on permanent memory allocation in WPA only
1639 ; This will attempt to merge constant section constants, if 1 only
1640 ; string constants and constants from constant pool, if 2 also constant
1641 ; variables.
1642 fmerge-all-constants
1643 Common Report Var(flag_merge_constants,2) Init(1) Optimization
1644 Attempt to merge identical constants and constant variables
1646 fmerge-constants
1647 Common Report Var(flag_merge_constants,1) Optimization
1648 Attempt to merge identical constants across compilation units
1650 fmerge-debug-strings
1651 Common Report Var(flag_merge_debug_strings) Init(1)
1652 Attempt to merge identical debug strings across compilation units
1654 fmessage-length=
1655 Common RejectNegative Joined UInteger
1656 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping
1658 fmodulo-sched
1659 Common Report Var(flag_modulo_sched) Optimization
1660 Perform SMS based modulo scheduling before the first scheduling pass
1662 fmodulo-sched-allow-regmoves
1663 Common Report Var(flag_modulo_sched_allow_regmoves)
1664 Perform SMS based modulo scheduling with register moves allowed
1666 fmove-loop-invariants
1667 Common Report Var(flag_move_loop_invariants) Optimization
1668 Move loop invariant computations out of loops
1670 fdce
1671 Common Var(flag_dce) Init(1) Optimization
1672 Use the RTL dead code elimination pass
1674 fdse
1675 Common Var(flag_dse) Init(1) Optimization
1676 Use the RTL dead store elimination pass
1678 freschedule-modulo-scheduled-loops
1679 Common Report Var(flag_resched_modulo_sched) Optimization
1680 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
1682 fnon-call-exceptions
1683 Common Report Var(flag_non_call_exceptions) Optimization
1684 Support synchronous non-call exceptions
1686 fomit-frame-pointer
1687 Common Report Var(flag_omit_frame_pointer) Optimization
1688 When possible do not generate stack frames
1690 fopt-info
1691 Common Report Var(flag_opt_info) Optimization
1692 Enable all optimization info dumps on stderr
1694 fopt-info-
1695 Common Joined RejectNegative Var(common_deferred_options) Defer
1696 -fopt-info[-<type>=filename]    Dump compiler optimization details
1698 foptimize-register-move
1699 Common Ignore
1700 Does nothing. Preserved for backward compatibility.
1702 foptimize-sibling-calls
1703 Common Report Var(flag_optimize_sibling_calls) Optimization
1704 Optimize sibling and tail recursive calls
1706 fpartial-inlining
1707 Common Report Var(flag_partial_inlining)
1708 Perform partial inlining
1710 fpre-ipa-mem-report
1711 Common Report Var(pre_ipa_mem_report)
1712 Report on memory allocation before interprocedural optimization
1714 fpost-ipa-mem-report
1715 Common Report Var(post_ipa_mem_report)
1716 Report on memory allocation before interprocedural optimization
1718 fpack-struct
1719 Common Report Var(flag_pack_struct) Optimization
1720 Pack structure members together without holes
1722 fpack-struct=
1723 Common RejectNegative Joined UInteger Optimization
1724 -fpack-struct=<number>  Set initial maximum structure member alignment
1726 fpcc-struct-return
1727 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
1728 Return small aggregates in memory, not registers
1730 fpeel-codesize-limit
1731 Common Report Var(flag_peel_codesize_limit) Init(1) Optimization
1732 Limit non-const non-FP loop peeling under profile estimates of large code footprint
1734 fpeel-loops
1735 Common Report Var(flag_peel_loops) Optimization
1736 Perform loop peeling
1738 fpeephole
1739 Common Report Var(flag_no_peephole,0) Optimization
1740 Enable machine specific peephole optimizations
1742 fpeephole2
1743 Common Report Var(flag_peephole2) Optimization
1744 Enable an RTL peephole pass before sched2
1746 fPIC
1747 Common Report Var(flag_pic,2) Negative(fPIE)
1748 Generate position-independent code if possible (large mode)
1750 fPIE
1751 Common Report Var(flag_pie,2) Negative(fpic)
1752 Generate position-independent code for executables if possible (large mode)
1754 fpic
1755 Common Report Var(flag_pic,1) Negative(fpie)
1756 Generate position-independent code if possible (small mode)
1758 fpie
1759 Common Report Var(flag_pie,1) Negative(fPIC)
1760 Generate position-independent code for executables if possible (small mode)
1762 fplugin=
1763 Common Joined RejectNegative Var(common_deferred_options) Defer
1764 Specify a plugin to load
1766 fplugin-arg-
1767 Common Joined RejectNegative Var(common_deferred_options) Defer
1768 -fplugin-arg-<name>-<key>[=<value>]     Specify argument <key>=<value> for plugin <name>
1770 fpredictive-commoning
1771 Common Report Var(flag_predictive_commoning) Optimization
1772 Run predictive commoning optimization.
1774 fprefetch-loop-arrays
1775 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
1776 Generate prefetch instructions, if available, for arrays in loops
1778 fprofile
1779 Common Report Var(profile_flag)
1780 Enable basic program profiling code
1782 fprofile-arcs
1783 Common Report Var(profile_arc_flag)
1784 Insert arc-based program profiling code
1786 fprofile-dir=
1787 Common Joined RejectNegative Var(profile_data_prefix)
1788 Set the top-level directory for storing the profile data.
1789 The default is 'pwd'.
1791 fprofile-correction
1792 Common Report Var(flag_profile_correction)
1793 Enable correction of flow inconsistent profile data input
1795 fprofile-dump
1796 Common Report Var(flag_profile_dump) Init(0) Optimization
1797 Dump CFG profile for comparison.
1799 ; fprofile-generate-atomic=0: disable aotimically update.
1800 ; fprofile-generate-atomic=1: aotimically update edge profile counters.
1801 ; fprofile-generate-atomic=2: aotimically update value profile counters.
1802 ; fprofile-generate-atomic=3: aotimically update edge and value profile counters.
1803 ; other values will be ignored (fall back to the default of 0).
1804 fprofile-generate-atomic=
1805 Common Joined UInteger Report Var(flag_profile_gen_atomic) Init(0) Optimization
1806 fprofile-generate-atomic=[0..3] Atomically increments for profile counters.
1808 fprofile-generate
1809 Common
1810 Enable common options for generating profile info for profile feedback directed optimizations
1812 fprofile-generate=
1813 Common Joined RejectNegative
1814 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1816 fprofile-generate-sampling
1817 Common Var(flag_profile_generate_sampling)
1818 Turn on instrumentation sampling with -fprofile-generate with rate set by --param profile-generate-sampling-rate or environment variable GCOV_SAMPLING_RATE
1820 fprofile-strip=
1821 Common Joined RejectNegative Var(profile_base_name_suffix_to_strip)
1822 Specify a substring to be stripped from the profile base file name
1824 fprofile-use
1825 Common Var(flag_profile_use)
1826 Enable common options for performing profile feedback directed optimizations
1828 fprofile-use=
1829 Common Joined RejectNegative
1830 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1832 fprofile-values
1833 Common Report Var(flag_profile_values)
1834 Insert code to profile values of expressions
1836 fprofile-report
1837 Common Report Var(profile_report)
1838 Report on consistency of profile
1840 fprofile-reorder-functions
1841 Common Report Var(flag_profile_reorder_functions)
1842 Enable function reordering that improves code placement
1844 frandom-seed
1845 Common Var(common_deferred_options) Defer
1847 frandom-seed=
1848 Common Joined RejectNegative Var(common_deferred_options) Defer
1849 -frandom-seed=<string>  Make compile reproducible using <string>
1851 ; This switch causes the command line that was used to create an
1852 ; object file to be recorded into the object file.  The exact format
1853 ; of this recording is target and binary file format dependent.
1854 ; It is related to the -fverbose-asm switch, but that switch only
1855 ; records information in the assembler output file as comments, so
1856 ; they never reach the object file.
1857 frecord-gcc-switches
1858 Common Report Var(flag_record_gcc_switches)
1859 Record gcc command line switches in the object file.
1861 ; This option differs from frecord-gcc-switches in the way that it
1862 ; divide the command line options into several categories. And the
1863 ; section is not mergable so that linker can save gcc switches for
1864 ; each module.
1865 frecord-gcc-switches-in-elf
1866 Common Report Var(flag_record_gcc_switches_in_elf)
1867 Record the compiler optimizations in a .gnu.switches.text section.
1869 freg-struct-return
1870 Common Report Var(flag_pcc_struct_return,0) Optimization
1871 Return small aggregates in registers
1873 fregmove
1874 Common Ignore
1875 Does nothing. Preserved for backward compatibility.
1877 flive-range-shrinkage
1878 Common Report Var(flag_live_range_shrinkage) Init(0) Optimization
1879 Relief of register pressure through live range shrinkage
1881 frename-registers
1882 Common Report Var(flag_rename_registers) Init(2) Optimization
1883 Perform a register renaming optimization pass
1885 freorder-blocks
1886 Common Report Var(flag_reorder_blocks) Optimization
1887 Reorder basic blocks to improve code placement
1889 freorder-blocks-and-partition
1890 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1891 Reorder basic blocks and partition into hot and cold sections
1893 freorder-functions
1894 Common Report Var(flag_reorder_functions) Optimization
1895 Reorder functions to improve code placement
1897 frerun-cse-after-loop
1898 Common Report Var(flag_rerun_cse_after_loop) Optimization
1899 Add a common subexpression elimination pass after loop optimizations
1901 frerun-loop-opt
1902 Common Ignore
1903 Does nothing.  Preserved for backward compatibility.
1905 frounding-math
1906 Common Report Var(flag_rounding_math) Optimization SetByCombined
1907 Disable optimizations that assume default FP rounding behavior
1909 fsched-interblock
1910 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1911 Enable scheduling across basic blocks
1913 fsched-pressure
1914 Common Report Var(flag_sched_pressure) Init(0) Optimization
1915 Enable register pressure sensitive insn scheduling
1917 fsched-spec
1918 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1919 Allow speculative motion of non-loads
1921 fsched-spec-load
1922 Common Report Var(flag_schedule_speculative_load) Optimization
1923 Allow speculative motion of some loads
1925 fsched-spec-load-dangerous
1926 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1927 Allow speculative motion of more loads
1929 fsched-verbose=
1930 Common RejectNegative Joined UInteger Var(sched_verbose_param)
1931 -fsched-verbose=<number>        Set the verbosity level of the scheduler
1933 fsched2-use-superblocks
1934 Common Report Var(flag_sched2_use_superblocks) Optimization
1935 If scheduling post reload, do superblock scheduling
1937 fsched2-use-traces
1938 Common Ignore
1939 Does nothing.  Preserved for backward compatibility.
1941 fschedule-insns
1942 Common Report Var(flag_schedule_insns) Optimization
1943 Reschedule instructions before register allocation
1945 fschedule-insns2
1946 Common Report Var(flag_schedule_insns_after_reload) Optimization
1947 Reschedule instructions after register allocation
1949 ; This flag should be on when a target implements non-trivial
1950 ; scheduling hooks, maybe saving some information for its own sake.
1951 ; On IA64, for example, this is used for correct bundling. 
1952 fselective-scheduling
1953 Common Report Var(flag_selective_scheduling) Optimization
1954 Schedule instructions using selective scheduling algorithm
1956 fselective-scheduling2
1957 Common Report Var(flag_selective_scheduling2) Optimization 
1958 Run selective scheduling after reload
1960 fsel-sched-pipelining
1961 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1962 Perform software pipelining of inner loops during selective scheduling
1964 fsel-sched-pipelining-outer-loops
1965 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1966 Perform software pipelining of outer loops during selective scheduling
1968 fsel-sched-reschedule-pipelined
1969 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1970 Reschedule pipelined regions without pipelining
1972 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1973 ; of stalled insns into the ready list.
1974 fsched-stalled-insns
1975 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1976 Allow premature scheduling of queued insns
1978 fsched-stalled-insns=
1979 Common RejectNegative Joined UInteger
1980 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled
1982 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1983 ; be examined for a dependency on a stalled insn that is candidate for
1984 ; premature removal from the queue of stalled insns into the ready list (has
1985 ; an effect only if the flag 'sched_stalled_insns' is set).
1986 fsched-stalled-insns-dep
1987 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1988 Set dependence distance checking in premature scheduling of queued insns
1990 fsched-stalled-insns-dep=
1991 Common RejectNegative Joined UInteger
1992 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns
1994 fsched-group-heuristic
1995 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1996 Enable the group heuristic in the scheduler
1998 fsched-critical-path-heuristic
1999 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
2000 Enable the critical path heuristic in the scheduler
2002 fsched-spec-insn-heuristic
2003 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
2004 Enable the speculative instruction heuristic in the scheduler
2006 fsched-rank-heuristic
2007 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
2008 Enable the rank heuristic in the scheduler
2010 fsched-last-insn-heuristic
2011 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
2012 Enable the last instruction heuristic in the scheduler
2014 fsched-dep-count-heuristic
2015 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
2016 Enable the dependent count heuristic in the scheduler
2018 fsection-anchors
2019 Common Report Var(flag_section_anchors) Optimization
2020 Access data in the same section from shared anchor points
2022 fsee
2023 Common Ignore
2024 Does nothing.  Preserved for backward compatibility.
2026 fzee
2027 Common Ignore
2028 Does nothing.  Preserved for backward compatibility.
2030 free
2031 Common Report Var(flag_ree) Init(0)
2032 Turn on Redundant Extensions Elimination pass.
2034 fshow-column
2035 Common Report Var(flag_show_column) Init(1)
2036 Show column numbers in diagnostics, when available.  Default on
2038 fshrink-wrap
2039 Common Report Var(flag_shrink_wrap) Optimization
2040 Emit function prologues only before parts of the function that need it,
2041 rather than at the top of the function.
2043 fsignaling-nans
2044 Common Report Var(flag_signaling_nans) Optimization SetByCombined
2045 Disable optimizations observable by IEEE signaling NaNs
2047 fsigned-zeros
2048 Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined
2049 Disable floating point optimizations that ignore the IEEE signedness of zero
2051 fsingle-precision-constant
2052 Common Report Var(flag_single_precision_constant) Optimization
2053 Convert floating point constants to single precision constants
2055 fsized-delete
2056 Common Report Var(flag_sized_delete) Optimization
2057 Support delete operator with objetc's size as the second parameter.
2059 fsplit-ivs-in-unroller
2060 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
2061 Split lifetimes of induction variables when loops are unrolled
2063 fsplit-stack
2064 Common Report Var(flag_split_stack) Init(-1)
2065 Generate discontiguous stack frames
2067 fsplit-wide-types
2068 Common Report Var(flag_split_wide_types) Optimization
2069 Split wide types into independent registers
2071 fvariable-expansion-in-unroller
2072 Common Report Var(flag_variable_expansion_in_unroller) Optimization
2073 Apply variable expansion when loops are unrolled
2075 fstack-check=
2076 Common Report RejectNegative Joined
2077 -fstack-check=[no|generic|specific]     Insert stack checking code into the program
2079 fstack-check
2080 Common Alias(fstack-check=, specific, no)
2081 Insert stack checking code into the program.  Same as -fstack-check=specific
2083 fstack-limit
2084 Common Var(common_deferred_options) Defer
2086 fstack-limit-register=
2087 Common RejectNegative Joined Var(common_deferred_options) Defer
2088 -fstack-limit-register=<register>       Trap if the stack goes past <register>
2090 fstack-limit-symbol=
2091 Common RejectNegative Joined Var(common_deferred_options) Defer
2092 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>
2094 fstack-protector
2095 Common Report Var(flag_stack_protect, 1)
2096 Use propolice as a stack protection method
2098 fstack-protector-strong
2099 Common Report RejectNegative Var(flag_stack_protect, 2)
2100 Use a smart stack protection method for certain functions
2102 fstack-protector-all
2103 Common Report RejectNegative Var(flag_stack_protect, 3)
2104 Use a stack protection method for every function
2106 fstack-protector-strong
2107 Common Report RejectNegative Var(flag_stack_protect, 3)
2108 Use a smart stack protection method for certain functions
2110 fstack-usage
2111 Common RejectNegative Var(flag_stack_usage)
2112 Output stack usage information on a per-function basis
2114 fstrength-reduce
2115 Common Ignore
2116 Does nothing.  Preserved for backward compatibility.
2118 ; Nonzero if we should do (language-dependent) alias analysis.
2119 ; Typically, this analysis will assume that expressions of certain
2120 ; types do not alias expressions of certain other types.  Only used
2121 ; if alias analysis (in general) is enabled.
2122 fstrict-aliasing
2123 Common Report Var(flag_strict_aliasing) Optimization
2124 Assume strict aliasing rules apply
2126 fstrict-overflow
2127 Common Report Var(flag_strict_overflow)
2128 Treat signed overflow as undefined
2130 fsync-libcalls
2131 Common Report Var(flag_sync_libcalls) Init(1)
2132 Implement __atomic operations via libcalls to legacy __sync functions
2134 fsyntax-only
2135 Common Report Var(flag_syntax_only)
2136 Check for syntax errors, then stop
2138 ftest-coverage
2139 Common Report Var(flag_test_coverage)
2140 Create data files needed by \"gcov\"
2142 fthread-jumps
2143 Common Report Var(flag_thread_jumps) Optimization
2144 Perform jump threading optimizations
2146 ftime-report
2147 Common Report Var(time_report)
2148 Report the time taken by each compiler pass
2150 ftls-model=
2151 Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
2152 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model
2154 Enum
2155 Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2157 EnumValue
2158 Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2160 EnumValue
2161 Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2163 EnumValue
2164 Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2166 EnumValue
2167 Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2169 ftoplevel-reorder
2170 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
2171 Reorder top level functions, variables, and asms
2173 ftracer
2174 Common Report Var(flag_tracer)
2175 Perform superblock formation via tail duplication
2177 ; Zero means that floating-point math operations cannot generate a
2178 ; (user-visible) trap.  This is the case, for example, in nonstop
2179 ; IEEE 754 arithmetic.
2180 ftrapping-math
2181 Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined
2182 Assume floating-point operations can trap
2184 ftrapv
2185 Common Report Var(flag_trapv) Optimization
2186 Trap for signed overflow in addition, subtraction and multiplication
2188 ftree-ccp
2189 Common Report Var(flag_tree_ccp) Optimization
2190 Enable SSA-CCP optimization on trees
2192 ftree-bit-ccp
2193 Common Report Var(flag_tree_bit_ccp) Optimization
2194 Enable SSA-BIT-CCP optimization on trees
2196 ftree-store-ccp
2197 Common Ignore
2198 Does nothing.  Preserved for backward compatibility.
2200 ftree-ch
2201 Common Report Var(flag_tree_ch) Optimization
2202 Enable loop header copying on trees
2204 ftree-coalesce-inlined-vars
2205 Common Report Var(flag_ssa_coalesce_vars,1) Init(2) RejectNegative Optimization
2206 Enable coalescing of copy-related user variables that are inlined
2208 ftree-coalesce-vars
2209 Common Report Var(flag_ssa_coalesce_vars,2) Optimization
2210 Enable coalescing of all copy-related user variables
2212 ftree-copyrename
2213 Common Report Var(flag_tree_copyrename) Optimization
2214 Replace SSA temporaries with better names in copies
2216 ftree-copy-prop
2217 Common Report Var(flag_tree_copy_prop) Optimization
2218 Enable copy propagation on trees
2220 ftree-store-copy-prop
2221 Common Ignore
2222 Does nothing.  Preserved for backward compatibility.
2224 ftree-cselim
2225 Common Report Var(flag_tree_cselim) Init(2) Optimization
2226 Transform condition stores into unconditional ones
2228 ftree-switch-conversion
2229 Common Report Var(flag_tree_switch_conversion) Optimization
2230 Perform conversions of switch initializations.
2232 ftree-dce
2233 Common Report Var(flag_tree_dce) Optimization
2234 Enable SSA dead code elimination optimization on trees
2236 ftree-dominator-opts
2237 Common Report Var(flag_tree_dom) Optimization
2238 Enable dominator optimizations
2240 ftree-tail-merge
2241 Common Report Var(flag_tree_tail_merge) Optimization
2242 Enable tail merging on trees
2244 ftree-dse
2245 Common Report Var(flag_tree_dse) Optimization
2246 Enable dead store elimination
2248 ftree-forwprop
2249 Common Report Var(flag_tree_forwprop) Init(1) Optimization
2250 Enable forward propagation on trees
2252 ftree-fre
2253 Common Report Var(flag_tree_fre) Optimization
2254 Enable Full Redundancy Elimination (FRE) on trees
2256 foptimize-strlen
2257 Common Report Var(flag_optimize_strlen) Optimization
2258 Enable string length optimizations on trees
2260 fisolate-erroneous-paths-dereference
2261 Common Report Var(flag_isolate_erroneous_paths_dereference) Optimization
2262 Detect paths which trigger erroneous or undefined behaviour due to
2263 dereferencing a NULL pointer.  Isolate those paths from the main control
2264 flow and turn the statement with erroneous or undefined behaviour into a trap.
2266 fisolate-erroneous-paths-attribute
2267 Common Report Var(flag_isolate_erroneous_paths_attribute) Optimization
2268 Detect paths which trigger erroneous or undefined behaviour due a NULL value
2269 being used in a way which is forbidden by a returns_nonnull or nonnull
2270 attribute.  Isolate those paths from the main control flow and turn the
2271 statement with erroneous or undefined behaviour into a trap. 
2273 ftree-loop-distribution
2274 Common Report Var(flag_tree_loop_distribution) Optimization
2275 Enable loop distribution on trees
2277 ftree-loop-distribute-patterns
2278 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
2279 Enable loop distribution for patterns transformed into a library call
2281 ftree-loop-im
2282 Common Report Var(flag_tree_loop_im) Init(1) Optimization
2283 Enable loop invariant motion on trees
2285 ftree-loop-linear
2286 Common Alias(floop-interchange)
2287 Enable loop interchange transforms.  Same as -floop-interchange
2289 ftree-loop-ivcanon
2290 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
2291 Create canonical induction variables in loops
2293 ftree-loop-optimize
2294 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
2295 Enable loop optimizations on tree level
2297 ftree-parallelize-loops=
2298 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
2299 Enable automatic parallelization of loops
2301 ftree-phiprop
2302 Common Report Var(flag_tree_phiprop) Init(1) Optimization
2303 Enable hoisting loads from conditional pointers.
2305 ftree-pre
2306 Common Report Var(flag_tree_pre) Optimization
2307 Enable SSA-PRE optimization on trees
2309 ftree-partial-pre
2310 Common Report Var(flag_tree_partial_pre) Optimization
2311 In SSA-PRE optimization on trees, enable partial-partial redundancy elimination
2313 ftree-pta
2314 Common Report Var(flag_tree_pta) Optimization
2315 Perform function-local points-to analysis on trees.
2317 ftree-reassoc
2318 Common Report Var(flag_tree_reassoc) Init(1) Optimization
2319 Enable reassociation on tree level
2321 ftree-salias
2322 Common Ignore
2323 Does nothing.  Preserved for backward compatibility.
2325 ftree-sink
2326 Common Report Var(flag_tree_sink) Optimization
2327 Enable SSA code sinking on trees
2329 ftree-slsr
2330 Common Report Var(flag_tree_slsr) Optimization
2331 Perform straight-line strength reduction
2333 ftree-sra
2334 Common Report Var(flag_tree_sra) Optimization
2335 Perform scalar replacement of aggregates
2337 ftree-ter
2338 Common Report Var(flag_tree_ter) Optimization
2339 Replace temporary expressions in the SSA->normal pass
2341 ftree-lrs
2342 Common Report Var(flag_tree_live_range_split) Optimization
2343 Perform live range splitting during the SSA->normal pass
2345 ftree-vrp
2346 Common Report Var(flag_tree_vrp) Init(0) Optimization
2347 Perform Value Range Propagation on trees
2349 fstrict-enum-precision
2350 Common Report Var(flag_strict_enum_precision) Init(1) Optimization
2351 Perform transformations based on enum precision
2353 funit-at-a-time
2354 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
2355 Compile whole compilation unit at a time
2357 funroll-loops
2358 Common Report Var(flag_unroll_loops) Optimization
2359 Perform loop unrolling when iteration count is known
2361 funroll-all-loops
2362 Common Report Var(flag_unroll_all_loops) Optimization
2363 Perform loop unrolling for all loops
2365 funroll-codesize-limit
2366 Common Report Var(flag_unroll_codesize_limit) Init(1) Optimization
2367 Limit non-const non-FP loop unrolling under profile estimates of large code footprint
2369 ; Nonzero means that loop optimizer may assume that the induction variables
2370 ; that control loops do not overflow and that the loops with nontrivial
2371 ; exit condition are not infinite
2372 funsafe-loop-optimizations
2373 Common Report Var(flag_unsafe_loop_optimizations) Optimization
2374 Allow loop optimizations to assume that the loops behave in normal way
2376 fassociative-math
2377 Common Report Var(flag_associative_math) SetByCombined
2378 Allow optimization for floating-point arithmetic which may change the
2379 result of the operation due to rounding.
2381 freciprocal-math
2382 Common Report Var(flag_reciprocal_math) SetByCombined
2383 Same as -fassociative-math for expressions which include division.
2385 ; Nonzero means that unsafe floating-point math optimizations are allowed
2386 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
2387 ; are allowed to assume that their arguments and results are "normal"
2388 ; (e.g., nonnegative for SQRT).
2389 funsafe-math-optimizations
2390 Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined
2391 Allow math optimizations that may violate IEEE or ISO standards
2393 funswitch-loops
2394 Common Report Var(flag_unswitch_loops) Optimization
2395 Perform loop unswitching
2397 funwind-tables
2398 Common Report Var(flag_unwind_tables) Optimization
2399 Just generate unwind tables for exception handling
2401 fuse-ld=bfd
2402 Common Driver Negative(fuse-ld=gold)
2403 Use the bfd linker instead of the default linker
2405 fuse-ld=gold
2406 Common Driver Negative(fuse-ld=bfd)
2407 Use the gold linker instead of the default linker
2409 fuse-linker-plugin
2410 Common Undocumented Var(flag_use_linker_plugin)
2412 ; Positive if we should track variables, negative if we should run
2413 ; the var-tracking pass only to discard debug annotations, zero if
2414 ; we're not to run it.  When flag_var_tracking == 2 (AUTODETECT_VALUE) it
2415 ; will be set according to optimize, debug_info_level and debug_hooks
2416 ; in process_options ().
2417 fvar-tracking
2418 Common Report Var(flag_var_tracking) Init(2) Optimization
2419 Perform variable tracking
2421 ; Positive if we should track variables at assignments, negative if
2422 ; we should run the var-tracking pass only to discard debug
2423 ; annotations.  When flag_var_tracking_assignments ==
2424 ; AUTODETECT_VALUE it will be set according to flag_var_tracking.
2425 fvar-tracking-assignments
2426 Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
2427 Perform variable tracking by annotating assignments
2429 ; Nonzero if we should toggle flag_var_tracking_assignments after
2430 ; processing options and computing its default.  */
2431 fvar-tracking-assignments-toggle
2432 Common Report Var(flag_var_tracking_assignments_toggle) Optimization
2433 Toggle -fvar-tracking-assignments
2435 ; Positive if we should track uninitialized variables, negative if
2436 ; we should run the var-tracking pass only to discard debug
2437 ; annotations.  When flag_var_tracking_uninit == AUTODETECT_VALUE it
2438 ; will be set according to flag_var_tracking.
2439 fvar-tracking-uninit
2440 Common Report Var(flag_var_tracking_uninit) Optimization
2441 Perform variable tracking and also tag variables that are uninitialized
2443 ftree-vectorize
2444 Common Report Var(flag_tree_vectorize) Optimization
2445 Enable vectorization on trees
2447 ftree-vectorizer-verbose=
2448 Common Joined RejectNegative Ignore
2449 Does nothing.  Preserved for backward compatibility.
2451 ftree-loop-vectorize
2452 Common Report Var(flag_tree_loop_vectorize) Optimization
2453 Enable loop vectorization on trees
2455 ftree-slp-vectorize
2456 Common Report Var(flag_tree_slp_vectorize) Optimization
2457 Enable basic block vectorization (SLP) on trees
2459 fvect-cost-model=
2460 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT)
2461 Specifies the cost model for vectorization
2463 fsimd-cost-model=
2464 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED)
2465 Specifies the vectorization cost model for code marked with a simd directive
2467 Enum
2468 Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
2470 EnumValue
2471 Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
2473 EnumValue
2474 Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
2476 EnumValue
2477 Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
2479 fvect-cost-model
2480 Common RejectNegative Alias(fvect-cost-model=,dynamic)
2481 Enables the dynamic vectorizer cost model.  Preserved for backward compatibility.
2483 fno-vect-cost-model
2484 Common RejectNegative Alias(fvect-cost-model=,unlimited)
2485 Enables the unlimited vectorizer cost model.  Preserved for backward compatibility.
2487 ftree-vect-loop-version
2488 Common Ignore
2489 Does nothing. Preserved for backward compatibility.
2491 ftree-scev-cprop
2492 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
2493 Enable copy propagation of scalar-evolution information.
2495 ; -fverbose-asm causes extra commentary information to be produced in
2496 ; the generated assembly code (to make it more readable).  This option
2497 ; is generally only of use to those who actually need to read the
2498 ; generated assembly code (perhaps while debugging the compiler itself).
2499 ; -fno-verbose-asm, the default, causes the extra information
2500 ; to not be added and is useful when comparing two assembler files.
2501 fverbose-asm
2502 Common Report Var(flag_verbose_asm)
2503 Add extra commentary to assembler output
2505 fvisibility=
2506 Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
2507 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility
2509 Enum
2510 Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
2512 EnumValue
2513 Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
2515 EnumValue
2516 Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
2518 EnumValue
2519 Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
2521 EnumValue
2522 Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
2524 fvtable-verify=
2525 Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
2526 Validate vtable pointers before using them.
2528 Enum
2529 Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
2531 EnumValue
2532 Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
2534 EnumValue
2535 Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
2537 EnumValue
2538 Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
2540 fvtv-counts
2541 Common Var(flag_vtv_counts)
2542 Output vtable verification counters.
2544 fvtv-debug
2545 Common Var(flag_vtv_debug)
2546 Output vtable verification pointer sets information.
2548 fvpt
2549 Common Report Var(flag_value_profile_transformations) Optimization
2550 Use expression value profiles in optimizations
2552 fweb
2553 Common Report Var(flag_web) Init(2) Optimization
2554 Construct webs and split unrelated uses of single variable
2556 ftree-builtin-call-dce
2557 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
2558 Enable conditional dead code elimination for builtin calls
2560 fwhole-program
2561 Common Report Var(flag_whole_program) Init(0) Optimization
2562 Perform whole program optimizations
2564 fwrapv
2565 Common Report Var(flag_wrapv) Optimization
2566 Assume signed arithmetic overflow wraps around
2568 fzero-initialized-in-bss
2569 Common Report Var(flag_zero_initialized_in_bss) Init(1)
2570 Put zero initialized data in the bss section
2573 Common JoinedOrMissing
2574 Generate debug information in default format
2576 gcoff
2577 Common JoinedOrMissing Negative(gdwarf)
2578 Generate debug information in COFF format
2580 gdwarf
2581 Common JoinedOrMissing Negative(gdwarf-)
2582 Generate debug information in default version of DWARF format
2584 gdwarf-
2585 Common Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs)
2586 Generate debug information in DWARF v2 (or later) format
2588 ggdb
2589 Common JoinedOrMissing
2590 Generate debug information in default extended format
2592 gno-pubnames
2593 Common Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
2594 Don't generate DWARF pubnames and pubtypes sections.
2596 gpubnames
2597 Common Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
2598 Generate DWARF pubnames and pubtypes sections.
2600 ggnu-pubnames
2601 Common Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
2602 Generate DWARF pubnames and pubtypes sections with GNU extensions.
2604 gno-record-gcc-switches
2605 Common RejectNegative Var(dwarf_record_gcc_switches,0) Init(1)
2606 Don't record gcc command line switches in DWARF DW_AT_producer.
2608 grecord-gcc-switches
2609 Common RejectNegative Var(dwarf_record_gcc_switches,1)
2610 Record gcc command line switches in DWARF DW_AT_producer.
2612 gmlt
2613 Common RejectNegative
2614 Generate debug information at level 1 with minimal line table
2616 gno-split-dwarf
2617 Common Driver RejectNegative Var(dwarf_split_debug_info,0) Init(0)
2618 Don't generate debug information in separate .dwo files
2620 gsplit-dwarf
2621 Common Driver RejectNegative Var(dwarf_split_debug_info,1)
2622 Generate debug information in separate .dwo files
2624 gfission
2625 Common Driver Alias(gsplit-dwarf)
2627 gno-fission
2628 Common Driver Alias(gno-split-dwarf)
2630 gstabs
2631 Common JoinedOrMissing Negative(gstabs+)
2632 Generate debug information in STABS format
2634 gstabs+
2635 Common JoinedOrMissing Negative(gvms)
2636 Generate debug information in extended STABS format
2638 gno-strict-dwarf
2639 Common RejectNegative Var(dwarf_strict,0) Init(0)
2640 Emit DWARF additions beyond selected version
2642 gstrict-dwarf
2643 Common Report RejectNegative Var(dwarf_strict,1)
2644 Don't emit DWARF additions beyond selected version
2646 gtoggle
2647 Common Report Var(flag_gtoggle)
2648 Toggle debug information generation
2650 gvms
2651 Common JoinedOrMissing Negative(gxcoff)
2652 Generate debug information in VMS format
2654 gxcoff
2655 Common JoinedOrMissing Negative(gxcoff+)
2656 Generate debug information in XCOFF format
2658 gxcoff+
2659 Common JoinedOrMissing Negative(gcoff)
2660 Generate debug information in extended XCOFF format
2663 Driver Joined Separate
2665 iplugindir=
2666 Common Joined Var(plugindir_string) Init(0)
2667 -iplugindir=<dir>       Set <dir> to be the default plugin directory
2669 imultiarch
2670 Common Joined Separate RejectDriver Var(imultiarch) Init(0)
2671 -imultiarch <dir>       Set <dir> to be the multiarch include subdirectory
2674 Driver Joined Separate
2677 Driver
2679 no-canonical-prefixes
2680 Driver
2682 canonical-prefixes
2683 Driver
2685 nodefaultlibs
2686 Driver
2688 nostartfiles
2689 Driver
2691 nostdlib
2692 Driver
2695 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
2696 -o <file>       Place output into <file>
2699 Common Var(profile_flag)
2700 Enable function profiling
2702 pass-exit-codes
2703 Driver Var(pass_exit_codes)
2705 pedantic
2706 Common Alias(Wpedantic)
2708 pedantic-errors
2709 Common Var(flag_pedantic_errors)
2710 Like -pedantic but issue them as errors
2713 Driver
2715 pipe
2716 Driver Var(use_pipes)
2718 print-file-name=
2719 Driver JoinedOrMissing Var(print_file_name)
2721 print-libgcc-file-name
2722 Driver
2724 print-multi-directory
2725 Driver Var(print_multi_directory)
2727 print-multi-lib
2728 Driver Var(print_multi_lib)
2730 print-multi-os-directory
2731 Driver Var(print_multi_os_directory)
2733 print-multiarch
2734 Driver Var(print_multiarch)
2736 print-prog-name=
2737 Driver JoinedOrMissing Var(print_prog_name)
2739 print-search-dirs
2740 Driver Var(print_search_dirs)
2742 print-sysroot
2743 Driver Var(print_sysroot)
2745 print-sysroot-headers-suffix
2746 Driver Var(print_sysroot_headers_suffix)
2748 quiet
2749 Common Var(quiet_flag) RejectDriver
2750 Do not display functions compiled or elapsed time
2753 Driver
2756 Driver
2758 save-temps
2759 Driver
2761 save-temps=
2762 Driver Joined
2765 Driver
2767 time
2768 Driver Var(report_times)
2770 time=
2771 Driver JoinedOrMissing
2774 Driver Joined Separate
2776 undef
2777 Driver
2778 ; C option, but driver must not handle as "-u ndef".
2781 Common Driver Var(verbose_flag)
2782 Enable verbose output
2784 version
2785 Common Var(version_flag) RejectDriver
2786 Display the compiler's version
2789 Common Var(inhibit_warnings)
2790 Suppress warnings
2792 wrapper
2793 Driver Separate Var(wrapper_string)
2796 Driver Joined Separate
2798 shared
2799 Driver RejectNegative Negative(pie)
2800 Create a shared library
2802 shared-libgcc
2803 Driver
2805 specs
2806 Driver Separate Alias(specs=)
2808 specs=
2809 Driver Joined
2811 static
2812 Driver
2814 static-libgcc
2815 Driver
2817 static-libgfortran
2818 Driver
2819 ; Documented for Fortran, but always accepted by driver.
2821 static-libstdc++
2822 Driver
2824 static-libgo
2825 Driver
2826 ; Documented for Go, but always accepted by driver.
2828 static-libasan
2829 Driver
2831 static-libtsan
2832 Driver
2834 static-liblsan
2835 Driver
2837 static-libubsan
2838 Driver
2840 symbolic
2841 Driver
2844 Driver RejectNegative Negative(shared)
2845 Create a position independent executable
2848 Driver Joined Separate
2850 ; This comment is to ensure we retain the blank line above.