2010-11-11 Jakub Jelinek <jakub@redhat.com>
[official-gcc.git] / gcc / common.opt
blob85eaa37bff347d8136edcb4cad1b0e288790dc03
1 ; Options for the language- and target-independent parts of the compiler.
3 ; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
4 ; Free Software Foundation, Inc.
6 ; This file is part of GCC.
8 ; GCC is free software; you can redistribute it and/or modify it under
9 ; the terms of the GNU General Public License as published by the Free
10 ; Software Foundation; either version 3, or (at your option) any later
11 ; version.
13 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 ; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
16 ; for more details.
18 ; You should have received a copy of the GNU General Public License
19 ; along with GCC; see the file COPYING3.  If not see
20 ; <http://www.gnu.org/licenses/>.
22 ; See the GCC internals manual (options.texi) for a description of this file's format.
24 ; Please try to keep this file in ASCII collating order.
26 Variable
27 int target_flags
29 Variable
30 int optimize
32 Variable
33 int optimize_size
35 ; 0 means straightforward implementation of complex divide acceptable.
36 ; 1 means wide ranges of inputs must work for complex divide.
37 ; 2 means C99-like requirements for complex multiply and divide.
38 Variable
39 int flag_complex_method = 1
41 ; Nonzero if subexpressions must be evaluated from left-to-right.
42 Variable
43 int flag_evaluation_order = 0
45 ; Set the default region and algorithm for the integrated register
46 ; allocator.
48 Variable
49 enum ira_algorithm flag_ira_algorithm = IRA_ALGORITHM_CB
51 Variable
52 enum ira_region flag_ira_region = IRA_REGION_MIXED
54 ; Language specific warning pass for unused results.
55 Variable
56 bool flag_warn_unused_result = false
58 Variable
59 int *param_values
61 ; Floating-point contraction mode, fast by default.
62 Variable
63 enum fp_contract_mode flag_fp_contract_mode = FP_CONTRACT_FAST
65 ; The excess precision specified on the command line, or defaulted by
66 ; the front end.
67 Variable
68 enum excess_precision flag_excess_precision_cmdline = EXCESS_PRECISION_DEFAULT
70 ; Nonzero if we should write GIMPLE bytecode for link-time optimization.
71 Variable
72 int flag_generate_lto
74 ; True to warn about any objects definitions whose size is larger
75 ; than N bytes.  Also want about function definitions whose returned
76 ; values are larger than N bytes, where N is 'larger_than_size'.
77 Variable
78 bool warn_larger_than
80 Variable
81 HOST_WIDE_INT larger_than_size
83 ; True to warn about any function whose frame size is larger
84 ; than N bytes.
85 Variable
86 bool warn_frame_larger_than
88 Variable
89 HOST_WIDE_INT frame_larger_than_size
91 ; Nonzero means we should be saving declaration info into a .X file.
92 Variable
93 int flag_gen_aux_info = 0
95 ; Nonzero if we are compiling code for a shared library, zero for
96 ; executable.
97 Variable
98 int flag_shlib
100 ; The default visibility for all symbols (unless overridden).
101 Variable
102 enum symbol_visibility default_visibility = VISIBILITY_DEFAULT
104 ; Set to the default thread-local storage (tls) model to use.
105 Variable
106 enum tls_model flag_tls_default = TLS_MODEL_GLOBAL_DYNAMIC
109 Driver
111 -assemble
112 Driver Alias(S)
114 -compile
115 Driver Alias(c)
117 -coverage
118 Driver Alias(coverage)
120 -debug
121 Common Alias(g)
123 -dump
124 Common Separate Alias(d)
126 -dump=
127 Common Joined Alias(d)
129 -dumpbase
130 Common Separate Alias(dumpbase)
132 -dumpdir
133 Common Separate Alias(dumpdir)
135 -entry
136 Driver Separate Alias(e)
138 -entry=
139 Driver Joined Alias(e)
141 -extra-warnings
142 Common Warning Alias(Wextra)
144 -for-assembler
145 Driver Separate Alias(Xassembler)
147 -for-assembler=
148 Driver JoinedOrMissing Alias(Xassembler)
150 -for-linker
151 Driver Separate Alias(Xlinker)
153 -for-linker=
154 Driver JoinedOrMissing Alias(Xlinker)
156 -force-link
157 Driver Separate Alias(u)
159 -force-link=
160 Driver Joined Alias(u)
162 -help
163 Common Driver Var(help_flag)
164 Display this information
166 -help=
167 Common Driver Report Joined
168 --help=<class>  Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params
170 -language
171 Driver Separate Alias(x)
173 -language=
174 Driver Joined Alias(x)
176 -library-directory
177 Driver Separate Alias(L)
179 -library-directory=
180 Driver Joined Alias(L)
182 -no-canonical-prefixes
183 Driver Alias(no-canonical-prefixes)
185 -no-standard-libraries
186 Driver Alias(nostdlib)
188 -no-warnings
189 Common Alias(w)
191 -optimize
192 Common Alias(O)
194 -output
195 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
197 -output=
198 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
200 -pass-exit-codes
201 Driver Alias(pass-exit-codes)
203 -pedantic
204 Common Alias(pedantic)
206 -pedantic-errors
207 Common Alias(pedantic-errors)
209 -pie
210 Common Alias(pie)
212 -pipe
213 Driver Alias(pipe)
215 -prefix
216 Driver Separate Alias(B)
218 -prefix=
219 Driver JoinedOrMissing Alias(B)
221 -preprocess
222 Driver Alias(E)
224 -print-file-name
225 Driver Separate Alias(print-file-name=)
227 -print-file-name=
228 Driver JoinedOrMissing Alias(print-file-name=)
230 -print-libgcc-file-name
231 Driver Alias(print-libgcc-file-name)
233 -print-multi-directory
234 Driver Alias(print-multi-directory)
236 -print-multi-lib
237 Driver Alias(print-multi-lib)
239 -print-multi-os-directory
240 Driver Alias(print-multi-os-directory)
242 -print-prog-name
243 Driver Separate Alias(print-prog-name=)
245 -print-prog-name=
246 Driver JoinedOrMissing Alias(print-prog-name=)
248 -print-search-dirs
249 Driver Alias(print-search-dirs)
251 -print-sysroot
252 Driver Alias(print-sysroot)
254 -print-sysroot-headers-suffix
255 Driver Alias(print-sysroot-headers-suffix)
257 -profile
258 Common Alias(p)
260 -save-temps
261 Driver Alias(save-temps)
263 -shared
264 Common Alias(shared)
266 -specs
267 Driver Separate Alias(specs=)
269 -specs=
270 Driver Joined Alias(specs=)
272 -static
273 Driver Alias(static)
275 -symbolic
276 Driver Alias(symbolic)
278 -target-help
279 Common Driver
280 Alias for --help=target
282 -time
283 Driver Alias(time)
285 -verbose
286 Driver Alias(v)
288 ;; The driver used to convert options such as --help into forms such
289 ;; as -fhelp; the following four entries are for compatibility with
290 ;; any direct uses of those (undocumented) -f forms
291 fhelp
292 Common Driver Alias(-help)
294 fhelp=
295 Common Driver Joined Alias(-help=)
297 ftarget-help
298 Common Driver Alias(-target-help)
300 fversion
301 Common Driver Alias(-version)
303 -param
304 Common Separate
305 --param <param>=<value> Set parameter <param> to value.  See below for a complete list of parameters
307 -param=
308 Common Joined Alias(-param)
310 -sysroot
311 Driver Separate Alias(-sysroot=)
313 -sysroot=
314 Driver JoinedOrMissing
316 -version
317 Common Driver
320 Driver Joined Separate
323 Driver
326 Driver Joined Separate
329 Common JoinedOrMissing Optimization
330 -O<number>      Set optimization level to <number>
333 Common Optimization
334 Optimize for space rather than speed
336 Ofast
337 Common Optimization
338 Optimize for speed disregarding exact standards compliance
341 Driver Joined Separate
344 Driver
347 Driver Joined Separate
349 Tbss
350 Driver Separate
352 Tdata
353 Driver Separate
355 Ttext
356 Driver Separate
359 Common RejectNegative Warning Alias(Wextra)
360 This switch is deprecated; use -Wextra instead
363 Driver JoinedOrMissing
366 Driver JoinedOrMissing
369 Driver JoinedOrMissing
371 Waggregate-return
372 Common Var(warn_aggregate_return) Warning
373 Warn about returning structures, unions or arrays
375 Warray-bounds
376 Common Var(warn_array_bounds) Warning
377 Warn if an array is accessed out of bounds
379 Wattributes
380 Common Var(warn_attributes) Init(1) Warning
381 Warn about inappropriate attribute usage
383 Wcast-align
384 Common Var(warn_cast_align) Warning
385 Warn about pointer casts which increase alignment
387 Wcpp
388 Common Var(warn_cpp) Init(1) Warning
389 Warn when a #warning directive is encountered
391 Wdeprecated-declarations
392 Common Var(warn_deprecated_decl) Init(1) Warning
393 Warn about uses of __attribute__((deprecated)) declarations
395 Wdisabled-optimization
396 Common Var(warn_disabled_optimization) Warning
397 Warn when an optimization pass is disabled
399 Werror
400 Common Var(warnings_are_errors)
401 Treat all warnings as errors
403 Werror=
404 Common Joined
405 Treat specified warning as error
407 Wextra
408 Common Var(extra_warnings) Warning
409 Print extra (possibly unwanted) warnings
411 Wfatal-errors
412 Common Var(flag_fatal_errors)
413 Exit on the first error occurred
415 Wframe-larger-than=
416 Common RejectNegative Joined UInteger
417 -Wframe-larger-than=<number>    Warn if a function's stack frame requires more than <number> bytes
419 Winline
420 Common Var(warn_inline) Warning
421 Warn when an inlined function cannot be inlined
423 Wlarger-than-
424 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
426 Wlarger-than=
427 Common RejectNegative Joined UInteger Warning
428 -Wlarger-than=<number>  Warn if an object is larger than <number> bytes
430 Wunsafe-loop-optimizations
431 Common Var(warn_unsafe_loop_optimizations) Warning
432 Warn if the loop cannot be optimized due to nontrivial assumptions.
434 Wmissing-noreturn
435 Common Var(warn_missing_noreturn) Warning
436 Warn about functions which might be candidates for __attribute__((noreturn))
438 Wmudflap
439 Common Var(warn_mudflap) Init(1) Warning
440 Warn about constructs not instrumented by -fmudflap
442 Woverflow
443 Common Var(warn_overflow) Init(1) Warning
444 Warn about overflow in arithmetic expressions
446 Wpacked
447 Common Var(warn_packed) Warning
448 Warn when the packed attribute has no effect on struct layout
450 Wpadded
451 Common Var(warn_padded) Warning
452 Warn when padding is required to align structure members
454 Wshadow
455 Common Var(warn_shadow) Warning
456 Warn when one local variable shadows another
458 Wstack-protector
459 Common Var(warn_stack_protect) Warning
460 Warn when not issuing stack smashing protection for some reason
462 Wstrict-aliasing
463 Common Warning
464 Warn about code which might break strict aliasing rules
466 Wstrict-aliasing=
467 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
468 Warn about code which might break strict aliasing rules
470 Wstrict-overflow
471 Common Warning
472 Warn about optimizations that assume that signed overflow is undefined
474 Wstrict-overflow=
475 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
476 Warn about optimizations that assume that signed overflow is undefined
478 Wsuggest-attribute=const
479 Common Var(warn_suggest_attribute_const) Warning
480 Warn about functions which might be candidates for __attribute__((const))
482 Wsuggest-attribute=pure
483 Common Var(warn_suggest_attribute_pure) Warning
484 Warn about functions which might be candidates for __attribute__((pure))
486 Wsuggest-attribute=noreturn
487 Common Var(warn_suggest_attribute_noreturn) Warning
488 Warn about functions which might be candidates for __attribute__((noreturn))
490 Wswitch
491 Common Var(warn_switch) Warning
492 Warn about enumerated switches, with no default, missing a case
494 Wswitch-default
495 Common Var(warn_switch_default) Warning
496 Warn about enumerated switches missing a \"default:\" statement
498 Wswitch-enum
499 Common Var(warn_switch_enum) Warning
500 Warn about all enumerated switches missing a specific case
502 Wsystem-headers
503 Common Var(warn_system_headers) Warning
504 Do not suppress warnings from system headers
506 Wtrampolines
507 Common Var(warn_trampolines) Warning
508 Warn whenever a trampoline is generated
510 Wtype-limits
511 Common Var(warn_type_limits) Init(-1) Warning
512 Warn if a comparison is always true or always false due to the limited range of the data type
514 Wuninitialized
515 Common Var(warn_uninitialized) Init(-1) Warning
516 Warn about uninitialized automatic variables
518 Wunreachable-code
519 Common Ignore
520 Does nothing. Preserved for backward compatibility.
522 Wunused
523 Common Var(warn_unused) Init(0) Warning
524 Enable all -Wunused- warnings
526 Wunused-but-set-parameter
527 Common Var(warn_unused_but_set_parameter) Init(-1) Warning
528 Warn when a function parameter is only set, otherwise unused
530 Wunused-but-set-variable
531 Common Var(warn_unused_but_set_variable) Init(-1) Warning
532 Warn when a variable is only set, otherwise unused
534 Wunused-function
535 Common Var(warn_unused_function) Init(-1) Warning
536 Warn when a function is unused
538 Wunused-label
539 Common Var(warn_unused_label) Init(-1) Warning
540 Warn when a label is unused
542 Wunused-parameter
543 Common Var(warn_unused_parameter) Init(-1) Warning
544 Warn when a function parameter is unused
546 Wunused-value
547 Common Var(warn_unused_value) Init(-1) Warning
548 Warn when an expression value is unused
550 Wunused-variable
551 Common Var(warn_unused_variable) Init(-1) Warning
552 Warn when a variable is unused
554 Wcoverage-mismatch
555 Common Var(warn_coverage_mismatch) Init(1) Warning
556 Warn in case profiles in -fprofile-use do not match
558 Xassembler
559 Driver Separate
561 Xlinker
562 Driver Separate
564 Xpreprocessor
565 Driver Separate
567 aux-info
568 Common Separate Var(aux_info_file_name)
569 -aux-info <file>        Emit declaration information into <file>
571 aux-info=
572 Common Joined Alias(aux-info)
574 auxbase
575 Common Separate RejectDriver Var(aux_base_name)
577 auxbase-strip
578 Common Separate RejectDriver
580 coverage
581 Driver
584 Driver
587 Common Joined
588 -d<letters>     Enable dumps from specific passes of the compiler
590 dumpbase
591 Common Separate Var(dump_base_name)
592 -dumpbase <file>        Set the file basename to be used for dumps
594 dumpdir
595 Common Separate Var(dump_dir_name)
596 -dumpdir <dir>  Set the directory name to be used for dumps
598 dumpmachine
599 Driver
601 dumpspecs
602 Driver
604 dumpversion
605 Driver
608 Driver Joined Separate
610 ; The version of the C++ ABI in use.  The following values are allowed:
612 ; 0: The version of the ABI believed most conformant with the C++ ABI
613 ;    specification.  This ABI may change as bugs are discovered and fixed.
614 ;    Therefore, 0 will not necessarily indicate the same ABI in different
615 ;    versions of G++.
617 ; 1: The version of the ABI first used in G++ 3.2.
619 ; 2: The version of the ABI first used in G++ 3.4 (and current default).
621 ; 3: The version of the ABI that fixes the missing underscore
622 ;    in template non-type arguments of pointer type.
624 ; 4: The version of the ABI that introduces unambiguous mangling of
625 ;    vector types.
627 ; Additional positive integers will be assigned as new versions of
628 ; the ABI become the default version of the ABI.
629 fabi-version=
630 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
632 falign-functions
633 Common Report Var(align_functions,0) Optimization UInteger
634 Align the start of functions
636 falign-functions=
637 Common RejectNegative Joined UInteger Var(align_functions)
639 falign-jumps
640 Common Report Var(align_jumps,0) Optimization UInteger
641 Align labels which are only reached by jumping
643 falign-jumps=
644 Common RejectNegative Joined UInteger Var(align_jumps)
646 falign-labels
647 Common Report Var(align_labels,0) Optimization UInteger
648 Align all labels
650 falign-labels=
651 Common RejectNegative Joined UInteger Var(align_labels)
653 falign-loops
654 Common Report Var(align_loops,0) Optimization UInteger
655 Align the start of loops
657 falign-loops=
658 Common RejectNegative Joined UInteger Var(align_loops)
660 fargument-alias
661 Common Ignore
662 Does nothing. Preserved for backward compatibility.
664 fargument-noalias
665 Common Ignore
666 Does nothing. Preserved for backward compatibility.
668 fargument-noalias-global
669 Common Ignore
670 Does nothing. Preserved for backward compatibility.
672 fargument-noalias-anything
673 Common Ignore
674 Does nothing. Preserved for backward compatibility.
676 fasynchronous-unwind-tables
677 Common Report Var(flag_asynchronous_unwind_tables) Optimization
678 Generate unwind tables that are exact at each instruction boundary
680 fauto-inc-dec
681 Common Report Var(flag_auto_inc_dec) Init(1)
682 Generate auto-inc/dec instructions
684 ; -fcheck-bounds causes gcc to generate array bounds checks.
685 ; For C, C++ and ObjC: defaults off.
686 ; For Java: defaults to on.
687 ; For Fortran: defaults to off.
688 fbounds-check
689 Common Report Var(flag_bounds_check)
690 Generate code to check bounds before indexing arrays
692 fbranch-count-reg
693 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
694 Replace add, compare, branch with branch on count register
696 fbranch-probabilities
697 Common Report Var(flag_branch_probabilities) Optimization
698 Use profiling information for branch probabilities
700 fbranch-target-load-optimize
701 Common Report Var(flag_branch_target_load_optimize) Optimization
702 Perform branch target load optimization before prologue / epilogue threading
704 fbranch-target-load-optimize2
705 Common Report Var(flag_branch_target_load_optimize2) Optimization
706 Perform branch target load optimization after prologue / epilogue threading
708 fbtr-bb-exclusive
709 Common Report Var(flag_btr_bb_exclusive) Optimization
710 Restrict target load migration not to re-use registers in any basic block
712 fcall-saved-
713 Common Joined RejectNegative
714 -fcall-saved-<register> Mark <register> as being preserved across functions
716 fcall-used-
717 Common Joined RejectNegative
718 -fcall-used-<register>  Mark <register> as being corrupted by function calls
720 ; Nonzero for -fcaller-saves: allocate values in regs that need to
721 ; be saved across function calls, if that produces overall better code.
722 ; Optional now, so people can test it.
723 fcaller-saves
724 Common Report Var(flag_caller_saves) Optimization
725 Save registers around function calls
727 fcheck-data-deps
728 Common Report Var(flag_check_data_deps)
729 Compare the results of several data dependence analyzers.
731 fcombine-stack-adjustments
732 Common Report Var(flag_combine_stack_adjustments) Optimization
733 Looks for opportunities to reduce stack adjustments and stack references.
735 fcommon
736 Common Report Var(flag_no_common,0) Optimization
737 Do not put uninitialized globals in the common section
739 fcompare-debug
740 Driver
741 ; Converted by the driver to -fcompare-debug= options.
743 fcompare-debug=
744 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
745 -fcompare-debug[=<opts>]        Compile with and without e.g. -gtoggle, and compare the final-insns dump
747 fcompare-debug-second
748 Common Driver RejectNegative
749 Run only the second compilation of -fcompare-debug
751 fconserve-stack
752 Common Var(flag_conserve_stack) Optimization
753 Do not perform optimizations increasing noticeably stack usage
755 fcprop-registers
756 Common Report Var(flag_cprop_registers) Optimization
757 Perform a register copy-propagation optimization pass
759 fcrossjumping
760 Common Report Var(flag_crossjumping) Optimization
761 Perform cross-jumping optimization
763 fcse-follow-jumps
764 Common Report Var(flag_cse_follow_jumps) Optimization
765 When running CSE, follow jumps to their targets
767 fcse-skip-blocks
768 Common Ignore
769 Does nothing.  Preserved for backward compatibility.
771 fcx-limited-range
772 Common Report Var(flag_cx_limited_range) Optimization
773 Omit range reduction step when performing complex division
775 fcx-fortran-rules
776 Common Report Var(flag_cx_fortran_rules) Optimization
777 Complex multiplication and division follow Fortran rules
779 fdata-sections
780 Common Report Var(flag_data_sections) Optimization
781 Place data items into their own section
783 fdbg-cnt-list
784 Common Report
785 List all available debugging counters with their limits and counts.
787 fdbg-cnt=
788 Common RejectNegative Joined
789 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...]     Set the debug counter limit.   
791 fdebug-prefix-map=
792 Common Joined RejectNegative
793 Map one directory name to another in debug information
795 ; Nonzero for -fdefer-pop: don't pop args after each function call
796 ; instead save them up to pop many calls' args with one insns.
797 fdefer-pop
798 Common Report Var(flag_defer_pop) Optimization
799 Defer popping functions args from stack until later
801 fdelayed-branch
802 Common Report Var(flag_delayed_branch) Optimization
803 Attempt to fill delay slots of branch instructions
805 fdelete-null-pointer-checks
806 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
807 Delete useless null pointer checks
809 fdiagnostics-show-location=
810 Common Joined RejectNegative
811 -fdiagnostics-show-location=[once|every-line]   How often to emit source location at the beginning of line-wrapped diagnostics
813 fdiagnostics-show-option
814 Common Var(flag_diagnostics_show_option) Init(1)
815 Amend appropriate diagnostic messages with the command line option that controls them
817 fdump-
818 Common Joined RejectNegative
819 -fdump-<type>   Dump various compiler internals to a file
821 fdump-final-insns
822 Driver RejectNegative
824 fdump-final-insns=
825 Common RejectNegative Joined Var(flag_dump_final_insns)
826 -fdump-final-insns=filename     Dump to filename the insns at the end of translation
828 fdump-noaddr
829 Common Report Var(flag_dump_noaddr)
830 Suppress output of addresses in debugging dumps
832 fdump-unnumbered
833 Common Report Var(flag_dump_unnumbered)
834 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
836 fdump-unnumbered-links
837 Common Report Var(flag_dump_unnumbered_links)
838 Suppress output of previous and next insn numbers in debugging dumps
840 fdwarf2-cfi-asm
841 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
842 Enable CFI tables via GAS assembler directives.
844 fearly-inlining
845 Common Report Var(flag_early_inlining) Init(1) Optimization
846 Perform early inlining
848 feliminate-dwarf2-dups
849 Common Report Var(flag_eliminate_dwarf2_dups)
850 Perform DWARF2 duplicate elimination
852 fipa-sra
853 Common Report Var(flag_ipa_sra) Init(0) Optimization
854 Perform interprocedural reduction of aggregates
856 feliminate-unused-debug-symbols
857 Common Report Var(flag_debug_only_used_symbols)
858 Perform unused type elimination in debug info
860 feliminate-unused-debug-types
861 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
862 Perform unused type elimination in debug info
864 femit-class-debug-always
865 Common Report Var(flag_emit_class_debug_always) Init(0)
866 Do not suppress C++ class debug information.
868 fenable-icf-debug
869 Common Report Var(flag_enable_icf_debug)
870 Generate debug information to support Identical Code Folding (ICF)
872 fexceptions
873 Common Report Var(flag_exceptions) Optimization
874 Enable exception handling
876 fexpensive-optimizations
877 Common Report Var(flag_expensive_optimizations) Optimization
878 Perform a number of minor, expensive optimizations
880 fexcess-precision=
881 Common Joined RejectNegative
882 -fexcess-precision=[fast|standard]      Specify handling of excess floating-point precision
884 ffast-math
885 Common
887 ffinite-math-only
888 Common Report Var(flag_finite_math_only) Optimization
889 Assume no NaNs or infinities are generated
891 ffixed-
892 Common Joined RejectNegative
893 -ffixed-<register>      Mark <register> as being unavailable to the compiler
895 ffloat-store
896 Common Report Var(flag_float_store) Optimization
897 Don't allocate floats and doubles in extended-precision registers
899 fforce-addr
900 Common Ignore
901 Does nothing.  Preserved for backward compatibility.
903 fforward-propagate
904 Common Report Var(flag_forward_propagate) Optimization
905 Perform a forward propagation pass on RTL
907 ffp-contract=
908 Common Joined RejectNegative
909 -ffp-contract=[off|on|fast] Perform floating-point expression contraction.
911 ; Nonzero means don't put addresses of constant functions in registers.
912 ; Used for compiling the Unix kernel, where strange substitutions are
913 ; done on the assembly output.
914 ffunction-cse
915 Common Report Var(flag_no_function_cse,0)
916 Allow function addresses to be held in registers
918 ffunction-sections
919 Common Report Var(flag_function_sections)
920 Place each function into its own section
922 fgcse
923 Common Report Var(flag_gcse) Optimization
924 Perform global common subexpression elimination
926 fgcse-lm
927 Common Report Var(flag_gcse_lm) Init(1) Optimization
928 Perform enhanced load motion during global common subexpression elimination
930 fgcse-sm
931 Common Report Var(flag_gcse_sm) Init(0) Optimization
932 Perform store motion after global common subexpression elimination
934 fgcse-las
935 Common Report Var(flag_gcse_las) Init(0) Optimization
936 Perform redundant load after store elimination in global common subexpression
937 elimination
939 fgcse-after-reload
940 Common Report Var(flag_gcse_after_reload) Optimization
941 Perform global common subexpression elimination after register allocation
942 has finished
944 ; This option is not documented yet as its semantics will change.
945 fgraphite
946 Common Report Var(flag_graphite)
947 Enable in and out of Graphite representation
949 fgraphite-identity
950 Common Report Var(flag_graphite_identity) Optimization
951 Enable Graphite Identity transformation
953 floop-parallelize-all
954 Common Report Var(flag_loop_parallelize_all) Optimization
955 Mark all loops as parallel
957 floop-strip-mine
958 Common Report Var(flag_loop_strip_mine) Optimization
959 Enable Loop Strip Mining transformation
961 floop-interchange
962 Common Report Var(flag_loop_interchange) Optimization
963 Enable Loop Interchange transformation
965 floop-block
966 Common Report Var(flag_loop_block) Optimization
967 Enable Loop Blocking transformation
969 floop-flatten
970 Common Report Var(flag_loop_flatten) Optimization
971 Enable Loop Flattening transformation
973 fstrict-volatile-bitfields
974 Common Report Var(flag_strict_volatile_bitfields) Init(-1)
975 Force bitfield accesses to match their type width
977 fguess-branch-probability
978 Common Report Var(flag_guess_branch_prob) Optimization
979 Enable guessing of branch probabilities
981 ; Nonzero means ignore `#ident' directives.  0 means handle them.
982 ; Generate position-independent code for executables if possible
983 ; On SVR4 targets, it also controls whether or not to emit a
984 ; string identifying the compiler.
985 fident
986 Common Report Var(flag_no_ident,0)
987 Process #ident directives
989 fif-conversion
990 Common Report Var(flag_if_conversion) Optimization
991 Perform conversion of conditional jumps to branchless equivalents
993 fif-conversion2
994 Common Report Var(flag_if_conversion2) Optimization
995 Perform conversion of conditional jumps to conditional execution
997 ftree-loop-if-convert
998 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
999 Convert conditional jumps in innermost loops to branchless equivalents
1001 ftree-loop-if-convert-stores
1002 Common Report Var(flag_tree_loop_if_convert_stores) Optimization
1003 Also if-convert conditional jumps containing memory writes
1005 ; -finhibit-size-directive inhibits output of .size for ELF.
1006 ; This is used only for compiling crtstuff.c,
1007 ; and it may be extended to other effects
1008 ; needed for crtstuff.c on other systems.
1009 finhibit-size-directive
1010 Common Report Var(flag_inhibit_size_directive)
1011 Do not generate .size directives
1013 findirect-inlining
1014 Common Report Var(flag_indirect_inlining)
1015 Perform indirect inlining
1017 ; Nonzero means that functions declared `inline' will be treated
1018 ; as `static'.  Prevents generation of zillions of copies of unused
1019 ; static inline functions; instead, `inlines' are written out
1020 ; only when actually used.  Used in conjunction with -g.  Also
1021 ; does the right thing with #pragma interface.
1022 finline
1023 Common Report Var(flag_no_inline,0) Init(0)
1024 Pay attention to the \"inline\" keyword
1026 finline-small-functions
1027 Common Report Var(flag_inline_small_functions) Optimization
1028 Integrate simple functions into their callers when code size is known to not growth
1030 finline-functions
1031 Common Report Var(flag_inline_functions) Optimization
1032 Integrate simple functions into their callers
1034 finline-functions-called-once
1035 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
1036 Integrate functions called once into their callers
1038 finline-limit-
1039 Common RejectNegative Joined Alias(finline-limit=)
1041 finline-limit=
1042 Common RejectNegative Joined UInteger
1043 -finline-limit=<number> Limit the size of inlined functions to <number>
1045 finstrument-functions
1046 Common Report Var(flag_instrument_function_entry_exit)
1047 Instrument function entry and exit with profiling calls
1049 finstrument-functions-exclude-function-list=
1050 Common RejectNegative Joined
1051 -finstrument-functions-exclude-function-list=name,...  Do not instrument listed functions
1053 finstrument-functions-exclude-file-list=
1054 Common RejectNegative Joined
1055 -finstrument-functions-exclude-file-list=filename,...  Do not instrument functions listed in files
1057 fipa-cp
1058 Common Report Var(flag_ipa_cp) Optimization
1059 Perform Interprocedural constant propagation
1061 fipa-cp-clone
1062 Common Report Var(flag_ipa_cp_clone) Optimization
1063 Perform cloning to make Interprocedural constant propagation stronger
1065 fipa-profile
1066 Common Report Var(flag_ipa_profile) Init(0) Optimization
1067 Perform interprocedural profile propagation
1069 fipa-pta
1070 Common Report Var(flag_ipa_pta) Init(0) Optimization
1071 Perform interprocedural points-to analysis
1073 fipa-pure-const
1074 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
1075 Discover pure and const functions
1077 fipa-reference
1078 Common Report Var(flag_ipa_reference) Init(0) Optimization
1079 Discover readonly and non addressable static variables
1081 fipa-matrix-reorg
1082 Common Report Var(flag_ipa_matrix_reorg) Optimization
1083 Perform matrix layout flattening and transposing based
1084 on profiling information.
1086 fipa-struct-reorg
1087 Common Report Var(flag_ipa_struct_reorg)
1088 Perform structure layout optimizations based
1089 on profiling information.
1091 fira-algorithm=
1092 Common Joined RejectNegative
1093 -fira-algorithm=[CB|priority] Set the used IRA algorithm
1095 fira-region=
1096 Common Joined RejectNegative
1097 -fira-region=[one|all|mixed] Set regions for IRA
1099 fira-loop-pressure
1100 Common Report Var(flag_ira_loop_pressure)
1101 Use IRA based register pressure calculation
1102 in RTL loop optimizations.
1104 fira-share-save-slots
1105 Common Report Var(flag_ira_share_save_slots) Init(1)
1106 Share slots for saving different hard registers.
1108 fira-share-spill-slots
1109 Common Report Var(flag_ira_share_spill_slots) Init(1)
1110 Share stack slots for spilled pseudo-registers.
1112 fira-verbose=
1113 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
1114 -fira-verbose=<number>  Control IRA's level of diagnostic messages.
1116 fivopts
1117 Common Report Var(flag_ivopts) Init(1) Optimization
1118 Optimize induction variables on trees
1120 fjump-tables
1121 Common Var(flag_jump_tables) Init(1) Optimization
1122 Use jump tables for sufficiently large switch statements
1124 fkeep-inline-functions
1125 Common Report Var(flag_keep_inline_functions)
1126 Generate code for functions even if they are fully inlined
1128 fkeep-static-consts
1129 Common Report Var(flag_keep_static_consts) Init(1)
1130 Emit static const variables even if they are not used
1132 fleading-underscore
1133 Common Report Var(flag_leading_underscore) Init(-1)
1134 Give external symbols a leading underscore
1136 floop-optimize
1137 Common Ignore
1138 Does nothing.  Preserved for backward compatibility.
1140 flto
1141 Common
1142 Enable link-time optimization.
1144 flto=
1145 Common RejectNegative Joined Var(flag_lto)
1146 Link-time optimization with number of parallel jobs or jobserver.
1148 flto-partition=1to1
1149 Common Var(flag_lto_partition_1to1)
1150 Partition functions and vars at linktime based on object files they originate from
1152 flto-partition=balanced
1153 Common Var(flag_lto_partition_balanced)
1154 Partition functions and vars at linktime into approximately same sized buckets
1156 flto-partition=none
1157 Common Var(flag_lto_partition_none)
1158 Disable partioning and streaming
1160 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1161 flto-compression-level=
1162 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
1163 -flto-compression-level=<number>        Use zlib compression level <number> for IL
1165 flto-report
1166 Common Report Var(flag_lto_report) Init(0) Optimization
1167 Report various link-time optimization statistics
1169 fmath-errno
1170 Common Report Var(flag_errno_math) Init(1) Optimization
1171 Set errno after built-in math functions
1173 fmem-report
1174 Common Report Var(mem_report)
1175 Report on permanent memory allocation
1177 ; This will attempt to merge constant section constants, if 1 only
1178 ; string constants and constants from constant pool, if 2 also constant
1179 ; variables.
1180 fmerge-all-constants
1181 Common Report Var(flag_merge_constants,2) Init(1) Optimization
1182 Attempt to merge identical constants and constant variables
1184 fmerge-constants
1185 Common Report Var(flag_merge_constants,1) Optimization
1186 Attempt to merge identical constants across compilation units
1188 fmerge-debug-strings
1189 Common Report Var(flag_merge_debug_strings) Init(1)
1190 Attempt to merge identical debug strings across compilation units
1192 fmessage-length=
1193 Common RejectNegative Joined UInteger
1194 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping
1196 fmodulo-sched
1197 Common Report Var(flag_modulo_sched) Optimization
1198 Perform SMS based modulo scheduling before the first scheduling pass
1200 fmodulo-sched-allow-regmoves
1201 Common Report Var(flag_modulo_sched_allow_regmoves)
1202 Perform SMS based modulo scheduling with register moves allowed
1204 fmove-loop-invariants
1205 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
1206 Move loop invariant computations out of loops
1208 fmudflap
1209 Common RejectNegative Report Var(flag_mudflap)
1210 Add mudflap bounds-checking instrumentation for single-threaded program
1212 fmudflapth
1213 Common RejectNegative Report Var(flag_mudflap,2)
1214 Add mudflap bounds-checking instrumentation for multi-threaded program
1216 fmudflapir
1217 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
1218 Ignore read operations when inserting mudflap instrumentation
1220 fdce
1221 Common Var(flag_dce) Init(1) Optimization
1222 Use the RTL dead code elimination pass
1224 fdse
1225 Common Var(flag_dse) Init(1) Optimization
1226 Use the RTL dead store elimination pass
1228 freschedule-modulo-scheduled-loops
1229 Common Report Var(flag_resched_modulo_sched) Optimization
1230 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
1232 fnon-call-exceptions
1233 Common Report Var(flag_non_call_exceptions) Optimization
1234 Support synchronous non-call exceptions
1236 fomit-frame-pointer
1237 Common Report Var(flag_omit_frame_pointer) Optimization
1238 When possible do not generate stack frames
1240 foptimize-register-move
1241 Common Report Var(flag_regmove) Optimization
1242 Do the full register move optimization pass
1244 foptimize-sibling-calls
1245 Common Report Var(flag_optimize_sibling_calls) Optimization
1246 Optimize sibling and tail recursive calls
1248 fpartial-inlining
1249 Common Report Var(flag_partial_inlining)
1250 Perform partial inlining
1252 fpre-ipa-mem-report
1253 Common Report Var(pre_ipa_mem_report)
1254 Report on memory allocation before interprocedural optimization
1256 fpost-ipa-mem-report
1257 Common Report Var(post_ipa_mem_report)
1258 Report on memory allocation before interprocedural optimization
1260 fpack-struct
1261 Common Report Var(flag_pack_struct) Optimization
1262 Pack structure members together without holes
1264 fpack-struct=
1265 Common RejectNegative Joined UInteger Optimization
1266 -fpack-struct=<number>  Set initial maximum structure member alignment
1268 fpcc-struct-return
1269 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
1270 Return small aggregates in memory, not registers
1272 fpeel-loops
1273 Common Report Var(flag_peel_loops) Optimization
1274 Perform loop peeling
1276 fpeephole
1277 Common Report Var(flag_no_peephole,0) Optimization
1278 Enable machine specific peephole optimizations
1280 fpeephole2
1281 Common Report Var(flag_peephole2) Optimization
1282 Enable an RTL peephole pass before sched2
1284 fPIC
1285 Common Report Var(flag_pic,2)
1286 Generate position-independent code if possible (large mode)
1288 fPIE
1289 Common Report Var(flag_pie,2)
1290 Generate position-independent code for executables if possible (large mode)
1292 fpic
1293 Common Report Var(flag_pic,1)
1294 Generate position-independent code if possible (small mode)
1296 fpie
1297 Common Report Var(flag_pie,1)
1298 Generate position-independent code for executables if possible (small mode)
1300 fplugin=
1301 Common Joined RejectNegative
1302 Specify a plugin to load
1304 fplugin-arg-
1305 Common Joined RejectNegative
1306 -fplugin-arg-<name>-<key>[=<value>]     Specify argument <key>=<value> for plugin <name>
1308 fpredictive-commoning
1309 Common Report Var(flag_predictive_commoning) Optimization
1310 Run predictive commoning optimization.
1312 fprefetch-loop-arrays
1313 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
1314 Generate prefetch instructions, if available, for arrays in loops
1316 fprofile
1317 Common Report Var(profile_flag)
1318 Enable basic program profiling code
1320 fprofile-arcs
1321 Common Report Var(profile_arc_flag)
1322 Insert arc-based program profiling code
1324 fprofile-dir=
1325 Common Joined RejectNegative
1326 Set the top-level directory for storing the profile data.
1327 The default is 'pwd'.
1329 fprofile-correction
1330 Common Report Var(flag_profile_correction)
1331 Enable correction of flow inconsistent profile data input
1333 fprofile-generate
1334 Common
1335 Enable common options for generating profile info for profile feedback directed optimizations
1337 fprofile-generate=
1338 Common Joined RejectNegative
1339 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1341 fprofile-use
1342 Common Var(flag_profile_use)
1343 Enable common options for performing profile feedback directed optimizations
1345 fprofile-use=
1346 Common Joined RejectNegative
1347 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1349 fprofile-values
1350 Common Report Var(flag_profile_values)
1351 Insert code to profile values of expressions
1353 frandom-seed
1354 Common
1356 frandom-seed=
1357 Common Joined RejectNegative
1358 -frandom-seed=<string>  Make compile reproducible using <string>
1360 ; This switch causes the command line that was used to create an
1361 ; object file to be recorded into the object file.  The exact format
1362 ; of this recording is target and binary file format dependent.
1363 ; It is related to the -fverbose-asm switch, but that switch only
1364 ; records information in the assembler output file as comments, so
1365 ; they never reach the object file.
1366 frecord-gcc-switches
1367 Common Report Var(flag_record_gcc_switches)
1368 Record gcc command line switches in the object file.
1370 freg-struct-return
1371 Common Report Var(flag_pcc_struct_return,0) Optimization
1372 Return small aggregates in registers
1374 fregmove
1375 Common Report Var(flag_regmove) Optimization
1376 Enables a register move optimization
1378 frename-registers
1379 Common Report Var(flag_rename_registers) Init(2) Optimization
1380 Perform a register renaming optimization pass
1382 freorder-blocks
1383 Common Report Var(flag_reorder_blocks) Optimization
1384 Reorder basic blocks to improve code placement
1386 freorder-blocks-and-partition
1387 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1388 Reorder basic blocks and partition into hot and cold sections
1390 freorder-functions
1391 Common Report Var(flag_reorder_functions) Optimization
1392 Reorder functions to improve code placement
1394 frerun-cse-after-loop
1395 Common Report Var(flag_rerun_cse_after_loop) Optimization
1396 Add a common subexpression elimination pass after loop optimizations
1398 frerun-loop-opt
1399 Common Ignore
1400 Does nothing.  Preserved for backward compatibility.
1402 frounding-math
1403 Common Report Var(flag_rounding_math) Optimization
1404 Disable optimizations that assume default FP rounding behavior
1406 fsched-interblock
1407 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1408 Enable scheduling across basic blocks
1410 fsched-pressure
1411 Common Report Var(flag_sched_pressure) Init(0) Optimization
1412 Enable register pressure sensitive insn scheduling
1414 fsched-spec
1415 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1416 Allow speculative motion of non-loads
1418 fsched-spec-load
1419 Common Report Var(flag_schedule_speculative_load) Optimization
1420 Allow speculative motion of some loads
1422 fsched-spec-load-dangerous
1423 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1424 Allow speculative motion of more loads
1426 fsched-verbose=
1427 Common RejectNegative Joined
1428 -fsched-verbose=<number>        Set the verbosity level of the scheduler
1430 fsched2-use-superblocks
1431 Common Report Var(flag_sched2_use_superblocks) Optimization
1432 If scheduling post reload, do superblock scheduling
1434 fsched2-use-traces
1435 Common Ignore
1436 Does nothing.  Preserved for backward compatibility.
1438 fschedule-insns
1439 Common Report Var(flag_schedule_insns) Optimization
1440 Reschedule instructions before register allocation
1442 fschedule-insns2
1443 Common Report Var(flag_schedule_insns_after_reload) Optimization
1444 Reschedule instructions after register allocation
1446 ; This flag should be on when a target implements non-trivial
1447 ; scheduling hooks, maybe saving some information for its own sake.
1448 ; On IA64, for example, this is used for correct bundling. 
1449 fselective-scheduling
1450 Common Report Var(flag_selective_scheduling) Optimization
1451 Schedule instructions using selective scheduling algorithm
1453 fselective-scheduling2
1454 Common Report Var(flag_selective_scheduling2) Optimization 
1455 Run selective scheduling after reload
1457 fsel-sched-pipelining
1458 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1459 Perform software pipelining of inner loops during selective scheduling
1461 fsel-sched-pipelining-outer-loops
1462 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1463 Perform software pipelining of outer loops during selective scheduling
1465 fsel-sched-reschedule-pipelined
1466 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1467 Reschedule pipelined regions without pipelining
1469 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1470 ; of stalled insns into the ready list.
1471 fsched-stalled-insns
1472 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1473 Allow premature scheduling of queued insns
1475 fsched-stalled-insns=
1476 Common RejectNegative Joined UInteger
1477 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled
1479 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1480 ; be examined for a dependency on a stalled insn that is candidate for
1481 ; premature removal from the queue of stalled insns into the ready list (has
1482 ; an effect only if the flag 'sched_stalled_insns' is set).
1483 fsched-stalled-insns-dep
1484 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1485 Set dependence distance checking in premature scheduling of queued insns
1487 fsched-stalled-insns-dep=
1488 Common RejectNegative Joined UInteger
1489 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns
1491 fsched-group-heuristic
1492 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1493 Enable the group heuristic in the scheduler
1495 fsched-critical-path-heuristic
1496 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1497 Enable the critical path heuristic in the scheduler
1499 fsched-spec-insn-heuristic
1500 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1501 Enable the speculative instruction heuristic in the scheduler
1503 fsched-rank-heuristic
1504 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1505 Enable the rank heuristic in the scheduler
1507 fsched-last-insn-heuristic
1508 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1509 Enable the last instruction heuristic in the scheduler
1511 fsched-dep-count-heuristic
1512 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1513 Enable the dependent count heuristic in the scheduler
1515 fsection-anchors
1516 Common Report Var(flag_section_anchors) Optimization
1517 Access data in the same section from shared anchor points
1519 fsee
1520 Common Ignore
1521 Does nothing.  Preserved for backward compatibility.
1523 fzee
1524 Common Report Var(flag_zee) Init(0)
1525 Eliminate redundant zero extensions on targets that support implicit extensions.
1527 fshow-column
1528 Common Report Var(flag_show_column) Init(1)
1529 Show column numbers in diagnostics, when available.  Default on
1531 fsignaling-nans
1532 Common Report Var(flag_signaling_nans) Optimization
1533 Disable optimizations observable by IEEE signaling NaNs
1535 fsigned-zeros
1536 Common Report Var(flag_signed_zeros) Init(1) Optimization
1537 Disable floating point optimizations that ignore the IEEE signedness of zero
1539 fsingle-precision-constant
1540 Common Report Var(flag_single_precision_constant) Optimization
1541 Convert floating point constants to single precision constants
1543 fsplit-ivs-in-unroller
1544 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1545 Split lifetimes of induction variables when loops are unrolled
1547 fsplit-stack
1548 Common Report Var(flag_split_stack) Init(-1)
1549 Generate discontiguous stack frames
1551 fsplit-wide-types
1552 Common Report Var(flag_split_wide_types) Optimization
1553 Split wide types into independent registers
1555 fvariable-expansion-in-unroller
1556 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1557 Apply variable expansion when loops are unrolled
1559 fstack-check=
1560 Common Report RejectNegative Joined
1561 -fstack-check=[no|generic|specific]     Insert stack checking code into the program
1563 fstack-check
1564 Common Alias(fstack-check=, specific, no)
1565 Insert stack checking code into the program.  Same as -fstack-check=specific
1567 fstack-limit
1568 Common
1570 fstack-limit-register=
1571 Common RejectNegative Joined
1572 -fstack-limit-register=<register>       Trap if the stack goes past <register>
1574 fstack-limit-symbol=
1575 Common RejectNegative Joined
1576 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>
1578 fstack-protector
1579 Common Report Var(flag_stack_protect, 1)
1580 Use propolice as a stack protection method
1582 fstack-protector-all
1583 Common Report RejectNegative Var(flag_stack_protect, 2)
1584 Use a stack protection method for every function
1586 fstack-usage
1587 Common RejectNegative Var(flag_stack_usage)
1588 Output stack usage information on a per-function basis
1590 fstrength-reduce
1591 Common Ignore
1592 Does nothing.  Preserved for backward compatibility.
1594 ; Nonzero if we should do (language-dependent) alias analysis.
1595 ; Typically, this analysis will assume that expressions of certain
1596 ; types do not alias expressions of certain other types.  Only used
1597 ; if alias analysis (in general) is enabled.
1598 fstrict-aliasing
1599 Common Report Var(flag_strict_aliasing) Optimization
1600 Assume strict aliasing rules apply
1602 fstrict-overflow
1603 Common Report Var(flag_strict_overflow)
1604 Treat signed overflow as undefined
1606 fsyntax-only
1607 Common Report Var(flag_syntax_only)
1608 Check for syntax errors, then stop
1610 ftest-coverage
1611 Common Report Var(flag_test_coverage)
1612 Create data files needed by \"gcov\"
1614 fthread-jumps
1615 Common Report Var(flag_thread_jumps) Optimization
1616 Perform jump threading optimizations
1618 ftime-report
1619 Common Report Var(time_report)
1620 Report the time taken by each compiler pass
1622 ftls-model=
1623 Common Joined RejectNegative
1624 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model
1626 ftoplevel-reorder
1627 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1628 Reorder top level functions, variables, and asms
1630 ftracer
1631 Common Report Var(flag_tracer)
1632 Perform superblock formation via tail duplication
1634 ; Zero means that floating-point math operations cannot generate a
1635 ; (user-visible) trap.  This is the case, for example, in nonstop
1636 ; IEEE 754 arithmetic.
1637 ftrapping-math
1638 Common Report Var(flag_trapping_math) Init(1) Optimization
1639 Assume floating-point operations can trap
1641 ftrapv
1642 Common Report Var(flag_trapv) Optimization
1643 Trap for signed overflow in addition, subtraction and multiplication
1645 ftree-ccp
1646 Common Report Var(flag_tree_ccp) Optimization
1647 Enable SSA-CCP optimization on trees
1649 ftree-bit-ccp
1650 Common Report Var(flag_tree_bit_ccp) Optimization
1651 Enable SSA-BIT-CCP optimization on trees
1653 ftree-store-ccp
1654 Common Ignore
1655 Does nothing.  Preserved for backward compatibility.
1657 ftree-ch
1658 Common Report Var(flag_tree_ch) Optimization
1659 Enable loop header copying on trees
1661 ftree-copyrename
1662 Common Report Var(flag_tree_copyrename) Optimization
1663 Replace SSA temporaries with better names in copies
1665 ftree-copy-prop
1666 Common Report Var(flag_tree_copy_prop) Optimization
1667 Enable copy propagation on trees
1669 ftree-store-copy-prop
1670 Common Ignore
1671 Does nothing.  Preserved for backward compatibility.
1673 ftree-cselim
1674 Common Report Var(flag_tree_cselim) Init(2) Optimization
1675 Transform condition stores into unconditional ones
1677 ftree-switch-conversion
1678 Common Report Var(flag_tree_switch_conversion) Optimization
1679 Perform conversions of switch initializations.
1681 ftree-dce
1682 Common Report Var(flag_tree_dce) Optimization
1683 Enable SSA dead code elimination optimization on trees
1685 ftree-dominator-opts
1686 Common Report Var(flag_tree_dom) Optimization
1687 Enable dominator optimizations
1689 ftree-dse
1690 Common Report Var(flag_tree_dse) Optimization
1691 Enable dead store elimination
1693 ftree-forwprop
1694 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1695 Enable forward propagation on trees
1697 ftree-fre
1698 Common Report Var(flag_tree_fre) Optimization
1699 Enable Full Redundancy Elimination (FRE) on trees
1701 ftree-loop-distribution
1702 Common Report Var(flag_tree_loop_distribution) Optimization
1703 Enable loop distribution on trees
1705 ftree-loop-distribute-patterns
1706 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1707 Enable loop distribution for patterns transformed into a library call
1709 ftree-loop-im
1710 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1711 Enable loop invariant motion on trees
1713 ftree-loop-linear
1714 Common Report Var(flag_tree_loop_linear) Optimization
1715 Enable linear loop transforms on trees
1717 ftree-loop-ivcanon
1718 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1719 Create canonical induction variables in loops
1721 ftree-loop-optimize
1722 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1723 Enable loop optimizations on tree level
1725 ftree-parallelize-loops=
1726 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
1727 Enable automatic parallelization of loops
1729 ftree-phiprop
1730 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1731 Enable hoisting loads from conditional pointers.
1733 ftree-pre
1734 Common Report Var(flag_tree_pre) Optimization
1735 Enable SSA-PRE optimization on trees
1737 ftree-pta
1738 Common Report Var(flag_tree_pta) Init(1) Optimization
1739 Perform function-local points-to analysis on trees.
1741 ftree-reassoc
1742 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1743 Enable reassociation on tree level
1745 ftree-salias
1746 Common Ignore
1747 Does nothing.  Preserved for backward compatibility.
1749 ftree-sink
1750 Common Report Var(flag_tree_sink) Optimization
1751 Enable SSA code sinking on trees
1753 ftree-sra
1754 Common Report Var(flag_tree_sra) Optimization
1755 Perform scalar replacement of aggregates
1757 ftree-ter
1758 Common Report Var(flag_tree_ter) Optimization
1759 Replace temporary expressions in the SSA->normal pass
1761 ftree-lrs
1762 Common Report Var(flag_tree_live_range_split) Optimization
1763 Perform live range splitting during the SSA->normal pass
1765 ftree-vrp
1766 Common Report Var(flag_tree_vrp) Init(0) Optimization
1767 Perform Value Range Propagation on trees
1769 funit-at-a-time
1770 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1771 Compile whole compilation unit at a time
1773 funroll-loops
1774 Common Report Var(flag_unroll_loops) Optimization
1775 Perform loop unrolling when iteration count is known
1777 funroll-all-loops
1778 Common Report Var(flag_unroll_all_loops) Optimization
1779 Perform loop unrolling for all loops
1781 ; Nonzero means that loop optimizer may assume that the induction variables
1782 ; that control loops do not overflow and that the loops with nontrivial
1783 ; exit condition are not infinite
1784 funsafe-loop-optimizations
1785 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1786 Allow loop optimizations to assume that the loops behave in normal way
1788 fassociative-math
1789 Common Report Var(flag_associative_math)
1790 Allow optimization for floating-point arithmetic which may change the
1791 result of the operation due to rounding.
1793 freciprocal-math
1794 Common Report Var(flag_reciprocal_math)
1795 Same as -fassociative-math for expressions which include division.
1797 ; Nonzero means that unsafe floating-point math optimizations are allowed
1798 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
1799 ; are allowed to assume that their arguments and results are "normal"
1800 ; (e.g., nonnegative for SQRT).
1801 funsafe-math-optimizations
1802 Common Report Var(flag_unsafe_math_optimizations) Optimization
1803 Allow math optimizations that may violate IEEE or ISO standards
1805 funswitch-loops
1806 Common Report Var(flag_unswitch_loops) Optimization
1807 Perform loop unswitching
1809 funwind-tables
1810 Common Report Var(flag_unwind_tables) Optimization
1811 Just generate unwind tables for exception handling
1813 fuse-linker-plugin
1814 Common Undocumented
1816 ; Positive if we should track variables, negative if we should run
1817 ; the var-tracking pass only to discard debug annotations, zero if
1818 ; we're not to run it.  When flag_var_tracking == 2 (AUTODETECT_VALUE) it
1819 ; will be set according to optimize, debug_info_level and debug_hooks
1820 ; in process_options ().
1821 fvar-tracking
1822 Common Report Var(flag_var_tracking) Init(2) Optimization
1823 Perform variable tracking
1825 ; Positive if we should track variables at assignments, negative if
1826 ; we should run the var-tracking pass only to discard debug
1827 ; annotations.  When flag_var_tracking_assignments ==
1828 ; AUTODETECT_VALUE it will be set according to flag_var_tracking.
1829 fvar-tracking-assignments
1830 Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
1831 Perform variable tracking by annotating assignments
1833 ; Nonzero if we should toggle flag_var_tracking_assignments after
1834 ; processing options and computing its default.  */
1835 fvar-tracking-assignments-toggle
1836 Common Report Var(flag_var_tracking_assignments_toggle) Optimization
1837 Toggle -fvar-tracking-assignments
1839 fvar-tracking-uninit
1840 Common Report Var(flag_var_tracking_uninit) Optimization
1841 Perform variable tracking and also tag variables that are uninitialized
1843 ftree-vectorize
1844 Common Report Var(flag_tree_vectorize) Optimization
1845 Enable loop vectorization on trees
1847 ftree-slp-vectorize
1848 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1849 Enable basic block vectorization (SLP) on trees
1851 fvect-cost-model
1852 Common Report Var(flag_vect_cost_model) Optimization
1853 Enable use of cost model in vectorization
1855 ftree-vect-loop-version
1856 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1857 Enable loop versioning when doing loop vectorization on trees
1859 ftree-vectorizer-verbose=
1860 Common RejectNegative Joined
1861 -ftree-vectorizer-verbose=<number>      Set the verbosity level of the vectorizer
1863 ftree-scev-cprop
1864 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1865 Enable copy propagation of scalar-evolution information.
1867 ; -fverbose-asm causes extra commentary information to be produced in
1868 ; the generated assembly code (to make it more readable).  This option
1869 ; is generally only of use to those who actually need to read the
1870 ; generated assembly code (perhaps while debugging the compiler itself).
1871 ; -fno-verbose-asm, the default, causes the extra information
1872 ; to not be added and is useful when comparing two assembler files.
1873 fverbose-asm
1874 Common Report Var(flag_verbose_asm)
1875 Add extra commentary to assembler output
1877 fvisibility=
1878 Common Joined RejectNegative
1879 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility
1882 fvpt
1883 Common Report Var(flag_value_profile_transformations) Optimization
1884 Use expression value profiles in optimizations
1886 fweb
1887 Common Report Var(flag_web) Init(2) Optimization
1888 Construct webs and split unrelated uses of single variable
1890 ftree-builtin-call-dce
1891 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1892 Enable conditional dead code elimination for builtin calls
1894 fwhole-program
1895 Common Report Var(flag_whole_program) Init(0) Optimization
1896 Perform whole program optimizations
1898 fwrapv
1899 Common Report Var(flag_wrapv) Optimization
1900 Assume signed arithmetic overflow wraps around
1902 fzero-initialized-in-bss
1903 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1904 Put zero initialized data in the bss section
1907 Common JoinedOrMissing
1908 Generate debug information in default format
1910 gcoff
1911 Common JoinedOrMissing Negative(gdwarf-)
1912 Generate debug information in COFF format
1914 gdwarf-
1915 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1916 Generate debug information in DWARF v2 (or later) format
1918 ggdb
1919 Common JoinedOrMissing
1920 Generate debug information in default extended format
1922 gstabs
1923 Common JoinedOrMissing Negative(gstabs+)
1924 Generate debug information in STABS format
1926 gstabs+
1927 Common JoinedOrMissing Negative(gvms)
1928 Generate debug information in extended STABS format
1930 gno-strict-dwarf
1931 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1932 Emit DWARF additions beyond selected version
1934 gstrict-dwarf
1935 Common Report RejectNegative Var(dwarf_strict,1)
1936 Don't emit DWARF additions beyond selected version
1938 gtoggle
1939 Common Report Var(flag_gtoggle)
1940 Toggle debug information generation
1942 gvms
1943 Common JoinedOrMissing Negative(gxcoff)
1944 Generate debug information in VMS format
1946 gxcoff
1947 Common JoinedOrMissing Negative(gxcoff+)
1948 Generate debug information in XCOFF format
1950 gxcoff+
1951 Common JoinedOrMissing Negative(gcoff)
1952 Generate debug information in extended XCOFF format
1955 Driver Joined Separate
1957 iplugindir=
1958 Common Joined Var(plugindir_string) Init(0)
1959 -iplugindir=<dir>       Set <dir> to be the default plugin directory
1962 Driver Joined Separate
1964 no-canonical-prefixes
1965 Driver
1967 nodefaultlibs
1968 Driver
1970 nostdlib
1971 Driver
1974 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
1975 -o <file>       Place output into <file>
1978 Common Var(profile_flag)
1979 Enable function profiling
1981 pass-exit-codes
1982 Driver Var(pass_exit_codes)
1984 pedantic
1985 Common Var(pedantic)
1986 Issue warnings needed for strict compliance to the standard
1988 pedantic-errors
1989 Common Var(flag_pedantic_errors)
1990 Like -pedantic but issue them as errors
1993 Driver
1995 pipe
1996 Driver Var(use_pipes)
1998 print-file-name=
1999 Driver JoinedOrMissing Var(print_file_name)
2001 print-libgcc-file-name
2002 Driver
2004 print-multi-directory
2005 Driver Var(print_multi_directory)
2007 print-multi-lib
2008 Driver Var(print_multi_lib)
2010 print-multi-os-directory
2011 Driver Var(print_multi_os_directory)
2013 print-prog-name=
2014 Driver JoinedOrMissing Var(print_prog_name)
2016 print-search-dirs
2017 Driver Var(print_search_dirs)
2019 print-sysroot
2020 Driver Var(print_sysroot)
2022 print-sysroot-headers-suffix
2023 Driver Var(print_sysroot_headers_suffix)
2025 quiet
2026 Common Var(quiet_flag) RejectDriver
2027 Do not display functions compiled or elapsed time
2029 save-temps
2030 Driver
2032 save-temps=
2033 Driver Joined
2035 time
2036 Driver Var(report_times)
2038 time=
2039 Driver JoinedOrMissing
2042 Driver Joined Separate
2044 undef
2045 Driver
2046 ; C option, but driver must not handle as "-u ndef".
2049 Common Driver Var(verbose_flag)
2050 Enable verbose output
2052 version
2053 Common Var(version_flag) RejectDriver
2054 Display the compiler's version
2057 Common Var(inhibit_warnings)
2058 Suppress warnings
2060 wrapper
2061 Driver Separate Var(wrapper_string)
2064 Driver Joined Separate
2066 shared
2067 Common RejectNegative Negative(pie)
2068 Create a shared library
2070 shared-libgcc
2071 Driver
2073 specs
2074 Driver Separate Alias(specs=)
2076 specs=
2077 Driver Joined
2079 static
2080 Driver
2082 static-libgcc
2083 Driver
2085 static-libgfortran
2086 Driver
2087 ; Documented for Fortran, but always accepted by driver.
2089 static-libstdc++
2090 Driver
2092 symbolic
2093 Driver
2096 Common RejectNegative Negative(shared)
2097 Create a position independent executable
2100 Driver Joined Separate
2102 ; This comment is to ensure we retain the blank line above.