In gcc/: 2010-10-20 Nicola Pero <nicola.pero@meta-innovation.com>
[official-gcc.git] / gcc / common.opt
blob8fe796f802041eabf485431a47cd2b635d7331d7
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 ###
62 Driver
64 -assemble
65 Driver Alias(S)
67 -compile
68 Driver Alias(c)
70 -coverage
71 Driver Alias(coverage)
73 -debug
74 Common Alias(g)
76 -dump
77 Common Separate Alias(d)
79 -dump=
80 Common Joined Alias(d)
82 -dumpbase
83 Common Separate Alias(dumpbase)
85 -dumpdir
86 Common Separate Alias(dumpdir)
88 -entry
89 Driver Separate Alias(e)
91 -entry=
92 Driver Joined Alias(e)
94 -extra-warnings
95 Common Warning Alias(Wextra)
97 -for-assembler
98 Driver Separate Alias(Xassembler)
100 -for-assembler=
101 Driver JoinedOrMissing Alias(Xassembler)
103 -for-linker
104 Driver Separate Alias(Xlinker)
106 -for-linker=
107 Driver JoinedOrMissing Alias(Xlinker)
109 -force-link
110 Driver Separate Alias(u)
112 -force-link=
113 Driver Joined Alias(u)
115 -help
116 Common Driver Var(help_flag)
117 Display this information
119 -help=
120 Common Driver Report Joined
121 --help=<class>  Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params
123 -language
124 Driver Separate Alias(x)
126 -language=
127 Driver Joined Alias(x)
129 -library-directory
130 Driver Separate Alias(L)
132 -library-directory=
133 Driver Joined Alias(L)
135 -no-canonical-prefixes
136 Driver Alias(no-canonical-prefixes)
138 -no-standard-libraries
139 Driver Alias(nostdlib)
141 -no-warnings
142 Common Alias(w)
144 -optimize
145 Common Alias(O)
147 -output
148 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
150 -output=
151 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
153 -pass-exit-codes
154 Driver Alias(pass-exit-codes)
156 -pedantic
157 Common Alias(pedantic)
159 -pedantic-errors
160 Common Alias(pedantic-errors)
162 -pie
163 Common Alias(pie)
165 -pipe
166 Driver Alias(pipe)
168 -prefix
169 Driver Separate Alias(B)
171 -prefix=
172 Driver JoinedOrMissing Alias(B)
174 -preprocess
175 Driver Alias(E)
177 -print-file-name
178 Driver Separate Alias(print-file-name=)
180 -print-file-name=
181 Driver JoinedOrMissing Alias(print-file-name=)
183 -print-libgcc-file-name
184 Driver Alias(print-libgcc-file-name)
186 -print-multi-directory
187 Driver Alias(print-multi-directory)
189 -print-multi-lib
190 Driver Alias(print-multi-lib)
192 -print-multi-os-directory
193 Driver Alias(print-multi-os-directory)
195 -print-prog-name
196 Driver Separate Alias(print-prog-name=)
198 -print-prog-name=
199 Driver JoinedOrMissing Alias(print-prog-name=)
201 -print-search-dirs
202 Driver Alias(print-search-dirs)
204 -print-sysroot
205 Driver Alias(print-sysroot)
207 -print-sysroot-headers-suffix
208 Driver Alias(print-sysroot-headers-suffix)
210 -profile
211 Common Alias(p)
213 -save-temps
214 Driver Alias(save-temps)
216 -shared
217 Common Alias(shared)
219 -specs
220 Driver Separate Alias(specs=)
222 -specs=
223 Driver Joined Alias(specs=)
225 -static
226 Driver Alias(static)
228 -symbolic
229 Driver Alias(symbolic)
231 -target-help
232 Common Driver
233 Alias for --help=target
235 -time
236 Driver Alias(time)
238 -verbose
239 Driver Alias(v)
241 ;; The driver used to convert options such as --help into forms such
242 ;; as -fhelp; the following four entries are for compatibility with
243 ;; any direct uses of those (undocumented) -f forms
244 fhelp
245 Common Driver Alias(-help)
247 fhelp=
248 Common Driver Joined Alias(-help=)
250 ftarget-help
251 Common Driver Alias(-target-help)
253 fversion
254 Common Driver Alias(-version)
256 -param
257 Common Separate
258 --param <param>=<value> Set parameter <param> to value.  See below for a complete list of parameters
260 -param=
261 Common Joined Alias(-param)
263 -sysroot
264 Driver Separate Alias(-sysroot=)
266 -sysroot=
267 Driver JoinedOrMissing
269 -version
270 Common Driver
273 Driver Joined Separate
276 Driver
279 Driver Joined Separate
282 Common JoinedOrMissing Optimization
283 -O<number>      Set optimization level to <number>
286 Common Optimization
287 Optimize for space rather than speed
289 Ofast
290 Common Optimization
291 Optimize for speed disregarding exact standards compliance
294 Driver
297 Common RejectNegative Warning Alias(Wextra)
298 This switch is deprecated; use -Wextra instead
301 Driver JoinedOrMissing
304 Driver JoinedOrMissing
307 Driver JoinedOrMissing
309 Waggregate-return
310 Common Var(warn_aggregate_return) Warning
311 Warn about returning structures, unions or arrays
313 Warray-bounds
314 Common Var(warn_array_bounds) Warning
315 Warn if an array is accessed out of bounds
317 Wattributes
318 Common Var(warn_attributes) Init(1) Warning
319 Warn about inappropriate attribute usage
321 Wcast-align
322 Common Var(warn_cast_align) Warning
323 Warn about pointer casts which increase alignment
325 Wcpp
326 Common Var(warn_cpp) Init(1) Warning
327 Warn when a #warning directive is encountered
329 Wdeprecated-declarations
330 Common Var(warn_deprecated_decl) Init(1) Warning
331 Warn about uses of __attribute__((deprecated)) declarations
333 Wdisabled-optimization
334 Common Var(warn_disabled_optimization) Warning
335 Warn when an optimization pass is disabled
337 Werror
338 Common Var(warnings_are_errors)
339 Treat all warnings as errors
341 Werror=
342 Common Joined
343 Treat specified warning as error
345 Wextra
346 Common Var(extra_warnings) Warning
347 Print extra (possibly unwanted) warnings
349 Wfatal-errors
350 Common Var(flag_fatal_errors)
351 Exit on the first error occurred
353 Wframe-larger-than=
354 Common RejectNegative Joined UInteger
355 -Wframe-larger-than=<number>    Warn if a function's stack frame requires more than <number> bytes
357 Winline
358 Common Var(warn_inline) Warning
359 Warn when an inlined function cannot be inlined
361 Wlarger-than-
362 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
364 Wlarger-than=
365 Common RejectNegative Joined UInteger Warning
366 -Wlarger-than=<number>  Warn if an object is larger than <number> bytes
368 Wunsafe-loop-optimizations
369 Common Var(warn_unsafe_loop_optimizations) Warning
370 Warn if the loop cannot be optimized due to nontrivial assumptions.
372 Wmissing-noreturn
373 Common Var(warn_missing_noreturn) Warning
374 Warn about functions which might be candidates for __attribute__((noreturn))
376 Wmudflap
377 Common Var(warn_mudflap) Init(1) Warning
378 Warn about constructs not instrumented by -fmudflap
380 Woverflow
381 Common Var(warn_overflow) Init(1) Warning
382 Warn about overflow in arithmetic expressions
384 Wpacked
385 Common Var(warn_packed) Warning
386 Warn when the packed attribute has no effect on struct layout
388 Wpadded
389 Common Var(warn_padded) Warning
390 Warn when padding is required to align structure members
392 Wshadow
393 Common Var(warn_shadow) Warning
394 Warn when one local variable shadows another
396 Wstack-protector
397 Common Var(warn_stack_protect) Warning
398 Warn when not issuing stack smashing protection for some reason
400 Wstrict-aliasing
401 Common Warning
402 Warn about code which might break strict aliasing rules
404 Wstrict-aliasing=
405 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
406 Warn about code which might break strict aliasing rules
408 Wstrict-overflow
409 Common Warning
410 Warn about optimizations that assume that signed overflow is undefined
412 Wstrict-overflow=
413 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
414 Warn about optimizations that assume that signed overflow is undefined
416 Wsuggest-attribute=const
417 Common Var(warn_suggest_attribute_const) Warning
418 Warn about functions which might be candidates for __attribute__((const))
420 Wsuggest-attribute=pure
421 Common Var(warn_suggest_attribute_pure) Warning
422 Warn about functions which might be candidates for __attribute__((pure))
424 Wsuggest-attribute=noreturn
425 Common Var(warn_suggest_attribute_noreturn) Warning
426 Warn about functions which might be candidates for __attribute__((noreturn))
428 Wswitch
429 Common Var(warn_switch) Warning
430 Warn about enumerated switches, with no default, missing a case
432 Wswitch-default
433 Common Var(warn_switch_default) Warning
434 Warn about enumerated switches missing a \"default:\" statement
436 Wswitch-enum
437 Common Var(warn_switch_enum) Warning
438 Warn about all enumerated switches missing a specific case
440 Wsystem-headers
441 Common Var(warn_system_headers) Warning
442 Do not suppress warnings from system headers
444 Wtrampolines
445 Common Var(warn_trampolines) Warning
446 Warn whenever a trampoline is generated
448 Wtype-limits
449 Common Var(warn_type_limits) Init(-1) Warning
450 Warn if a comparison is always true or always false due to the limited range of the data type
452 Wuninitialized
453 Common Var(warn_uninitialized) Init(-1) Warning
454 Warn about uninitialized automatic variables
456 Wunreachable-code
457 Common Ignore
458 Does nothing. Preserved for backward compatibility.
460 Wunused
461 Common Var(warn_unused) Init(0) Warning
462 Enable all -Wunused- warnings
464 Wunused-but-set-parameter
465 Common Var(warn_unused_but_set_parameter) Init(-1) Warning
466 Warn when a function parameter is only set, otherwise unused
468 Wunused-but-set-variable
469 Common Var(warn_unused_but_set_variable) Init(-1) Warning
470 Warn when a variable is only set, otherwise unused
472 Wunused-function
473 Common Var(warn_unused_function) Init(-1) Warning
474 Warn when a function is unused
476 Wunused-label
477 Common Var(warn_unused_label) Init(-1) Warning
478 Warn when a label is unused
480 Wunused-parameter
481 Common Var(warn_unused_parameter) Init(-1) Warning
482 Warn when a function parameter is unused
484 Wunused-value
485 Common Var(warn_unused_value) Init(-1) Warning
486 Warn when an expression value is unused
488 Wunused-variable
489 Common Var(warn_unused_variable) Init(-1) Warning
490 Warn when a variable is unused
492 Wcoverage-mismatch
493 Common Var(warn_coverage_mismatch) Init(1) Warning
494 Warn in case profiles in -fprofile-use do not match
496 Xassembler
497 Driver Separate
499 Xlinker
500 Driver Separate
502 Xpreprocessor
503 Driver Separate
505 aux-info
506 Common Separate
507 -aux-info <file>        Emit declaration information into <file>
509 aux-info=
510 Common Joined Alias(aux-info)
512 auxbase
513 Common Separate RejectDriver
515 auxbase-strip
516 Common Separate RejectDriver
518 coverage
519 Driver
522 Driver
525 Common Joined
526 -d<letters>     Enable dumps from specific passes of the compiler
528 dumpbase
529 Common Separate
530 -dumpbase <file>        Set the file basename to be used for dumps
532 dumpdir
533 Common Separate
534 -dumpdir <dir>  Set the directory name to be used for dumps
536 dumpmachine
537 Driver
539 dumpspecs
540 Driver
542 dumpversion
543 Driver
546 Driver Joined Separate
548 ; The version of the C++ ABI in use.  The following values are allowed:
550 ; 0: The version of the ABI believed most conformant with the C++ ABI
551 ;    specification.  This ABI may change as bugs are discovered and fixed.
552 ;    Therefore, 0 will not necessarily indicate the same ABI in different
553 ;    versions of G++.
555 ; 1: The version of the ABI first used in G++ 3.2.
557 ; 2: The version of the ABI first used in G++ 3.4 (and current default).
559 ; 3: The version of the ABI that fixes the missing underscore
560 ;    in template non-type arguments of pointer type.
562 ; 4: The version of the ABI that introduces unambiguous mangling of
563 ;    vector types.
565 ; Additional positive integers will be assigned as new versions of
566 ; the ABI become the default version of the ABI.
567 fabi-version=
568 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
570 falign-functions
571 Common Report Var(align_functions,0) Optimization UInteger
572 Align the start of functions
574 falign-functions=
575 Common RejectNegative Joined UInteger
577 falign-jumps
578 Common Report Var(align_jumps,0) Optimization UInteger
579 Align labels which are only reached by jumping
581 falign-jumps=
582 Common RejectNegative Joined UInteger
584 falign-labels
585 Common Report Var(align_labels,0) Optimization UInteger
586 Align all labels
588 falign-labels=
589 Common RejectNegative Joined UInteger
591 falign-loops
592 Common Report Var(align_loops) Optimization UInteger
593 Align the start of loops
595 falign-loops=
596 Common RejectNegative Joined UInteger
598 fargument-alias
599 Common Ignore
600 Does nothing. Preserved for backward compatibility.
602 fargument-noalias
603 Common Ignore
604 Does nothing. Preserved for backward compatibility.
606 fargument-noalias-global
607 Common Ignore
608 Does nothing. Preserved for backward compatibility.
610 fargument-noalias-anything
611 Common Ignore
612 Does nothing. Preserved for backward compatibility.
614 fasynchronous-unwind-tables
615 Common Report Var(flag_asynchronous_unwind_tables) Optimization
616 Generate unwind tables that are exact at each instruction boundary
618 fauto-inc-dec
619 Common Report Var(flag_auto_inc_dec) Init(1)
620 Generate auto-inc/dec instructions
622 ; -fcheck-bounds causes gcc to generate array bounds checks.
623 ; For C, C++ and ObjC: defaults off.
624 ; For Java: defaults to on.
625 ; For Fortran: defaults to off.
626 fbounds-check
627 Common Report Var(flag_bounds_check)
628 Generate code to check bounds before indexing arrays
630 fbranch-count-reg
631 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
632 Replace add, compare, branch with branch on count register
634 fbranch-probabilities
635 Common Report Var(flag_branch_probabilities) Optimization
636 Use profiling information for branch probabilities
638 fbranch-target-load-optimize
639 Common Report Var(flag_branch_target_load_optimize) Optimization
640 Perform branch target load optimization before prologue / epilogue threading
642 fbranch-target-load-optimize2
643 Common Report Var(flag_branch_target_load_optimize2) Optimization
644 Perform branch target load optimization after prologue / epilogue threading
646 fbtr-bb-exclusive
647 Common Report Var(flag_btr_bb_exclusive) Optimization
648 Restrict target load migration not to re-use registers in any basic block
650 fcall-saved-
651 Common Joined RejectNegative
652 -fcall-saved-<register> Mark <register> as being preserved across functions
654 fcall-used-
655 Common Joined RejectNegative
656 -fcall-used-<register>  Mark <register> as being corrupted by function calls
658 ; Nonzero for -fcaller-saves: allocate values in regs that need to
659 ; be saved across function calls, if that produces overall better code.
660 ; Optional now, so people can test it.
661 fcaller-saves
662 Common Report Var(flag_caller_saves) Optimization
663 Save registers around function calls
665 fcheck-data-deps
666 Common Report Var(flag_check_data_deps)
667 Compare the results of several data dependence analyzers.
669 fcombine-stack-adjustments
670 Common Report Var(flag_combine_stack_adjustments) Optimization
671 Looks for opportunities to reduce stack adjustments and stack references.
673 fcommon
674 Common Report Var(flag_no_common,0) Optimization
675 Do not put uninitialized globals in the common section
677 fcompare-debug
678 Driver
679 ; Converted by the driver to -fcompare-debug= options.
681 fcompare-debug=
682 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
683 -fcompare-debug[=<opts>]        Compile with and without e.g. -gtoggle, and compare the final-insns dump
685 fcompare-debug-second
686 Common Driver RejectNegative
687 Run only the second compilation of -fcompare-debug
689 fconserve-stack
690 Common Var(flag_conserve_stack) Optimization
691 Do not perform optimizations increasing noticeably stack usage
693 fcprop-registers
694 Common Report Var(flag_cprop_registers) Optimization
695 Perform a register copy-propagation optimization pass
697 fcrossjumping
698 Common Report Var(flag_crossjumping) Optimization
699 Perform cross-jumping optimization
701 fcse-follow-jumps
702 Common Report Var(flag_cse_follow_jumps) Optimization
703 When running CSE, follow jumps to their targets
705 fcse-skip-blocks
706 Common Ignore
707 Does nothing.  Preserved for backward compatibility.
709 fcx-limited-range
710 Common Report Var(flag_cx_limited_range) Optimization
711 Omit range reduction step when performing complex division
713 fcx-fortran-rules
714 Common Report Var(flag_cx_fortran_rules) Optimization
715 Complex multiplication and division follow Fortran rules
717 fdata-sections
718 Common Report Var(flag_data_sections) Optimization
719 Place data items into their own section
721 fdbg-cnt-list
722 Common Report
723 List all available debugging counters with their limits and counts.
725 fdbg-cnt=
726 Common RejectNegative Joined
727 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...]     Set the debug counter limit.   
729 fdebug-prefix-map=
730 Common Joined RejectNegative
731 Map one directory name to another in debug information
733 ; Nonzero for -fdefer-pop: don't pop args after each function call
734 ; instead save them up to pop many calls' args with one insns.
735 fdefer-pop
736 Common Report Var(flag_defer_pop) Optimization
737 Defer popping functions args from stack until later
739 fdelayed-branch
740 Common Report Var(flag_delayed_branch) Optimization
741 Attempt to fill delay slots of branch instructions
743 fdelete-null-pointer-checks
744 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
745 Delete useless null pointer checks
747 fdiagnostics-show-location=
748 Common Joined RejectNegative
749 -fdiagnostics-show-location=[once|every-line]   How often to emit source location at the beginning of line-wrapped diagnostics
751 fdiagnostics-show-option
752 Common Var(flag_diagnostics_show_option) Init(1)
753 Amend appropriate diagnostic messages with the command line option that controls them
755 fdump-
756 Common Joined RejectNegative
757 -fdump-<type>   Dump various compiler internals to a file
759 fdump-final-insns
760 Driver RejectNegative
762 fdump-final-insns=
763 Common RejectNegative Joined Var(flag_dump_final_insns)
764 -fdump-final-insns=filename     Dump to filename the insns at the end of translation
766 fdump-noaddr
767 Common Report Var(flag_dump_noaddr)
768 Suppress output of addresses in debugging dumps
770 fdump-unnumbered
771 Common Report Var(flag_dump_unnumbered)
772 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
774 fdump-unnumbered-links
775 Common Report Var(flag_dump_unnumbered_links)
776 Suppress output of previous and next insn numbers in debugging dumps
778 fdwarf2-cfi-asm
779 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
780 Enable CFI tables via GAS assembler directives.
782 fearly-inlining
783 Common Report Var(flag_early_inlining) Init(1) Optimization
784 Perform early inlining
786 feliminate-dwarf2-dups
787 Common Report Var(flag_eliminate_dwarf2_dups)
788 Perform DWARF2 duplicate elimination
790 fipa-sra
791 Common Report Var(flag_ipa_sra) Init(0) Optimization
792 Perform interprocedural reduction of aggregates
794 feliminate-unused-debug-symbols
795 Common Report Var(flag_debug_only_used_symbols)
796 Perform unused type elimination in debug info
798 feliminate-unused-debug-types
799 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
800 Perform unused type elimination in debug info
802 femit-class-debug-always
803 Common Report Var(flag_emit_class_debug_always) Init(0)
804 Do not suppress C++ class debug information.
806 fenable-icf-debug
807 Common Report Var(flag_enable_icf_debug)
808 Generate debug information to support Identical Code Folding (ICF)
810 fexceptions
811 Common Report Var(flag_exceptions) Optimization
812 Enable exception handling
814 fexpensive-optimizations
815 Common Report Var(flag_expensive_optimizations) Optimization
816 Perform a number of minor, expensive optimizations
818 fexcess-precision=
819 Common Joined RejectNegative
820 -fexcess-precision=[fast|standard]      Specify handling of excess floating-point precision
822 ffast-math
823 Common
825 ffinite-math-only
826 Common Report Var(flag_finite_math_only) Optimization
827 Assume no NaNs or infinities are generated
829 ffixed-
830 Common Joined RejectNegative
831 -ffixed-<register>      Mark <register> as being unavailable to the compiler
833 ffloat-store
834 Common Report Var(flag_float_store) Optimization
835 Don't allocate floats and doubles in extended-precision registers
837 fforce-addr
838 Common Ignore
839 Does nothing.  Preserved for backward compatibility.
841 fforward-propagate
842 Common Report Var(flag_forward_propagate) Optimization
843 Perform a forward propagation pass on RTL
845 ; Nonzero means don't put addresses of constant functions in registers.
846 ; Used for compiling the Unix kernel, where strange substitutions are
847 ; done on the assembly output.
848 ffunction-cse
849 Common Report Var(flag_no_function_cse,0)
850 Allow function addresses to be held in registers
852 ffunction-sections
853 Common Report Var(flag_function_sections)
854 Place each function into its own section
856 fgcse
857 Common Report Var(flag_gcse) Optimization
858 Perform global common subexpression elimination
860 fgcse-lm
861 Common Report Var(flag_gcse_lm) Init(1) Optimization
862 Perform enhanced load motion during global common subexpression elimination
864 fgcse-sm
865 Common Report Var(flag_gcse_sm) Init(0) Optimization
866 Perform store motion after global common subexpression elimination
868 fgcse-las
869 Common Report Var(flag_gcse_las) Init(0) Optimization
870 Perform redundant load after store elimination in global common subexpression
871 elimination
873 fgcse-after-reload
874 Common Report Var(flag_gcse_after_reload) Optimization
875 Perform global common subexpression elimination after register allocation
876 has finished
878 ; This option is not documented yet as its semantics will change.
879 fgraphite
880 Common Report Var(flag_graphite)
881 Enable in and out of Graphite representation
883 fgraphite-identity
884 Common Report Var(flag_graphite_identity) Optimization
885 Enable Graphite Identity transformation
887 floop-parallelize-all
888 Common Report Var(flag_loop_parallelize_all) Optimization
889 Mark all loops as parallel
891 floop-strip-mine
892 Common Report Var(flag_loop_strip_mine) Optimization
893 Enable Loop Strip Mining transformation
895 floop-interchange
896 Common Report Var(flag_loop_interchange) Optimization
897 Enable Loop Interchange transformation
899 floop-block
900 Common Report Var(flag_loop_block) Optimization
901 Enable Loop Blocking transformation
903 floop-flatten
904 Common Report Var(flag_loop_flatten) Optimization
905 Enable Loop Flattening transformation
907 fstrict-volatile-bitfields
908 Common Report Var(flag_strict_volatile_bitfields) Init(-1)
909 Force bitfield accesses to match their type width
911 fguess-branch-probability
912 Common Report Var(flag_guess_branch_prob) Optimization
913 Enable guessing of branch probabilities
915 ; Nonzero means ignore `#ident' directives.  0 means handle them.
916 ; Generate position-independent code for executables if possible
917 ; On SVR4 targets, it also controls whether or not to emit a
918 ; string identifying the compiler.
919 fident
920 Common Report Var(flag_no_ident,0)
921 Process #ident directives
923 fif-conversion
924 Common Report Var(flag_if_conversion) Optimization
925 Perform conversion of conditional jumps to branchless equivalents
927 fif-conversion2
928 Common Report Var(flag_if_conversion2) Optimization
929 Perform conversion of conditional jumps to conditional execution
931 ftree-loop-if-convert
932 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
933 Convert conditional jumps in innermost loops to branchless equivalents
935 ftree-loop-if-convert-stores
936 Common Report Var(flag_tree_loop_if_convert_stores) Optimization
937 Also if-convert conditional jumps containing memory writes
939 ; -finhibit-size-directive inhibits output of .size for ELF.
940 ; This is used only for compiling crtstuff.c,
941 ; and it may be extended to other effects
942 ; needed for crtstuff.c on other systems.
943 finhibit-size-directive
944 Common Report Var(flag_inhibit_size_directive)
945 Do not generate .size directives
947 findirect-inlining
948 Common Report Var(flag_indirect_inlining)
949 Perform indirect inlining
951 ; Nonzero means that functions declared `inline' will be treated
952 ; as `static'.  Prevents generation of zillions of copies of unused
953 ; static inline functions; instead, `inlines' are written out
954 ; only when actually used.  Used in conjunction with -g.  Also
955 ; does the right thing with #pragma interface.
956 finline
957 Common Report Var(flag_no_inline,0) Init(0)
958 Pay attention to the \"inline\" keyword
960 finline-small-functions
961 Common Report Var(flag_inline_small_functions) Optimization
962 Integrate simple functions into their callers when code size is known to not growth
964 finline-functions
965 Common Report Var(flag_inline_functions) Optimization
966 Integrate simple functions into their callers
968 finline-functions-called-once
969 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
970 Integrate functions called once into their callers
972 finline-limit-
973 Common RejectNegative Joined Alias(finline-limit=)
975 finline-limit=
976 Common RejectNegative Joined UInteger
977 -finline-limit=<number> Limit the size of inlined functions to <number>
979 finstrument-functions
980 Common Report Var(flag_instrument_function_entry_exit)
981 Instrument function entry and exit with profiling calls
983 finstrument-functions-exclude-function-list=
984 Common RejectNegative Joined
985 -finstrument-functions-exclude-function-list=name,...  Do not instrument listed functions
987 finstrument-functions-exclude-file-list=
988 Common RejectNegative Joined
989 -finstrument-functions-exclude-file-list=filename,...  Do not instrument functions listed in files
991 fipa-cp
992 Common Report Var(flag_ipa_cp) Optimization
993 Perform Interprocedural constant propagation
995 fipa-cp-clone
996 Common Report Var(flag_ipa_cp_clone) Optimization
997 Perform cloning to make Interprocedural constant propagation stronger
999 fipa-profile
1000 Common Report Var(flag_ipa_profile) Init(0) Optimization
1001 Perform interprocedural profile propagation
1003 fipa-pta
1004 Common Report Var(flag_ipa_pta) Init(0) Optimization
1005 Perform interprocedural points-to analysis
1007 fipa-pure-const
1008 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
1009 Discover pure and const functions
1011 fipa-reference
1012 Common Report Var(flag_ipa_reference) Init(0) Optimization
1013 Discover readonly and non addressable static variables
1015 fipa-matrix-reorg
1016 Common Report Var(flag_ipa_matrix_reorg) Optimization
1017 Perform matrix layout flattening and transposing based
1018 on profiling information.
1020 fipa-struct-reorg
1021 Common Report Var(flag_ipa_struct_reorg)
1022 Perform structure layout optimizations based
1023 on profiling information.
1025 fira-algorithm=
1026 Common Joined RejectNegative
1027 -fira-algorithm=[CB|priority] Set the used IRA algorithm
1029 fira-region=
1030 Common Joined RejectNegative
1031 -fira-region=[one|all|mixed] Set regions for IRA
1033 fira-loop-pressure
1034 Common Report Var(flag_ira_loop_pressure)
1035 Use IRA based register pressure calculation
1036 in RTL loop optimizations.
1038 fira-share-save-slots
1039 Common Report Var(flag_ira_share_save_slots) Init(1)
1040 Share slots for saving different hard registers.
1042 fira-share-spill-slots
1043 Common Report Var(flag_ira_share_spill_slots) Init(1)
1044 Share stack slots for spilled pseudo-registers.
1046 fira-verbose=
1047 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
1048 -fira-verbose=<number>  Control IRA's level of diagnostic messages.
1050 fivopts
1051 Common Report Var(flag_ivopts) Init(1) Optimization
1052 Optimize induction variables on trees
1054 fjump-tables
1055 Common Var(flag_jump_tables) Init(1) Optimization
1056 Use jump tables for sufficiently large switch statements
1058 fkeep-inline-functions
1059 Common Report Var(flag_keep_inline_functions)
1060 Generate code for functions even if they are fully inlined
1062 fkeep-static-consts
1063 Common Report Var(flag_keep_static_consts) Init(1)
1064 Emit static const variables even if they are not used
1066 fleading-underscore
1067 Common Report Var(flag_leading_underscore) Init(-1)
1068 Give external symbols a leading underscore
1070 floop-optimize
1071 Common Ignore
1072 Does nothing.  Preserved for backward compatibility.
1074 flto
1075 Common Var(flag_lto)
1076 Enable link-time optimization.
1078 flto-partition=1to1
1079 Common Var(flag_lto_partition_1to1)
1080 Partition functions and vars at linktime based on object files they originate from
1082 flto-partition=balanced
1083 Common Var(flag_lto_partition_balanced)
1084 Partition functions and vars at linktime into approximately same sized buckets
1086 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1087 flto-compression-level=
1088 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
1089 -flto-compression-level=<number>        Use zlib compression level <number> for IL
1091 flto-report
1092 Common Report Var(flag_lto_report) Init(0) Optimization
1093 Report various link-time optimization statistics
1095 fmath-errno
1096 Common Report Var(flag_errno_math) Init(1) Optimization
1097 Set errno after built-in math functions
1099 fmem-report
1100 Common Report Var(mem_report)
1101 Report on permanent memory allocation
1103 ; This will attempt to merge constant section constants, if 1 only
1104 ; string constants and constants from constant pool, if 2 also constant
1105 ; variables.
1106 fmerge-all-constants
1107 Common Report Var(flag_merge_constants,2) Init(1) Optimization
1108 Attempt to merge identical constants and constant variables
1110 fmerge-constants
1111 Common Report Var(flag_merge_constants,1) Optimization
1112 Attempt to merge identical constants across compilation units
1114 fmerge-debug-strings
1115 Common Report Var(flag_merge_debug_strings) Init(1)
1116 Attempt to merge identical debug strings across compilation units
1118 fmessage-length=
1119 Common RejectNegative Joined UInteger
1120 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping
1122 fmodulo-sched
1123 Common Report Var(flag_modulo_sched) Optimization
1124 Perform SMS based modulo scheduling before the first scheduling pass
1126 fmodulo-sched-allow-regmoves
1127 Common Report Var(flag_modulo_sched_allow_regmoves)
1128 Perform SMS based modulo scheduling with register moves allowed
1130 fmove-loop-invariants
1131 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
1132 Move loop invariant computations out of loops
1134 fmudflap
1135 Common RejectNegative Report Var(flag_mudflap)
1136 Add mudflap bounds-checking instrumentation for single-threaded program
1138 fmudflapth
1139 Common RejectNegative Report Var(flag_mudflap,2)
1140 Add mudflap bounds-checking instrumentation for multi-threaded program
1142 fmudflapir
1143 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
1144 Ignore read operations when inserting mudflap instrumentation
1146 fdce
1147 Common Var(flag_dce) Init(1) Optimization
1148 Use the RTL dead code elimination pass
1150 fdse
1151 Common Var(flag_dse) Init(1) Optimization
1152 Use the RTL dead store elimination pass
1154 freschedule-modulo-scheduled-loops
1155 Common Report Var(flag_resched_modulo_sched) Optimization
1156 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
1158 fnon-call-exceptions
1159 Common Report Var(flag_non_call_exceptions) Optimization
1160 Support synchronous non-call exceptions
1162 fomit-frame-pointer
1163 Common Report Var(flag_omit_frame_pointer) Optimization
1164 When possible do not generate stack frames
1166 foptimize-register-move
1167 Common Report Var(flag_regmove) Optimization
1168 Do the full register move optimization pass
1170 foptimize-sibling-calls
1171 Common Report Var(flag_optimize_sibling_calls) Optimization
1172 Optimize sibling and tail recursive calls
1174 fpartial-inlining
1175 Common Report Var(flag_partial_inlining)
1176 Perform partial inlining
1178 fpre-ipa-mem-report
1179 Common Report Var(pre_ipa_mem_report)
1180 Report on memory allocation before interprocedural optimization
1182 fpost-ipa-mem-report
1183 Common Report Var(post_ipa_mem_report)
1184 Report on memory allocation before interprocedural optimization
1186 fpack-struct
1187 Common Report Var(flag_pack_struct) Optimization
1188 Pack structure members together without holes
1190 fpack-struct=
1191 Common RejectNegative Joined UInteger Optimization
1192 -fpack-struct=<number>  Set initial maximum structure member alignment
1194 fpcc-struct-return
1195 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
1196 Return small aggregates in memory, not registers
1198 fpeel-loops
1199 Common Report Var(flag_peel_loops) Optimization
1200 Perform loop peeling
1202 fpeephole
1203 Common Report Var(flag_no_peephole,0) Optimization
1204 Enable machine specific peephole optimizations
1206 fpeephole2
1207 Common Report Var(flag_peephole2) Optimization
1208 Enable an RTL peephole pass before sched2
1210 fPIC
1211 Common Report Var(flag_pic,2)
1212 Generate position-independent code if possible (large mode)
1214 fPIE
1215 Common Report Var(flag_pie,2)
1216 Generate position-independent code for executables if possible (large mode)
1218 fpic
1219 Common Report Var(flag_pic,1)
1220 Generate position-independent code if possible (small mode)
1222 fpie
1223 Common Report Var(flag_pie,1)
1224 Generate position-independent code for executables if possible (small mode)
1226 fplugin=
1227 Common Joined RejectNegative
1228 Specify a plugin to load
1230 fplugin-arg-
1231 Common Joined RejectNegative
1232 -fplugin-arg-<name>-<key>[=<value>]     Specify argument <key>=<value> for plugin <name>
1234 fpredictive-commoning
1235 Common Report Var(flag_predictive_commoning) Optimization
1236 Run predictive commoning optimization.
1238 fprefetch-loop-arrays
1239 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
1240 Generate prefetch instructions, if available, for arrays in loops
1242 fprofile
1243 Common Report Var(profile_flag)
1244 Enable basic program profiling code
1246 fprofile-arcs
1247 Common Report Var(profile_arc_flag)
1248 Insert arc-based program profiling code
1250 fprofile-dir=
1251 Common Joined RejectNegative
1252 Set the top-level directory for storing the profile data.
1253 The default is 'pwd'.
1255 fprofile-correction
1256 Common Report Var(flag_profile_correction)
1257 Enable correction of flow inconsistent profile data input
1259 fprofile-generate
1260 Common
1261 Enable common options for generating profile info for profile feedback directed optimizations
1263 fprofile-generate=
1264 Common Joined RejectNegative
1265 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1267 fprofile-use
1268 Common Var(flag_profile_use)
1269 Enable common options for performing profile feedback directed optimizations
1271 fprofile-use=
1272 Common Joined RejectNegative
1273 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1275 fprofile-values
1276 Common Report Var(flag_profile_values)
1277 Insert code to profile values of expressions
1279 frandom-seed
1280 Common
1282 frandom-seed=
1283 Common Joined RejectNegative
1284 -frandom-seed=<string>  Make compile reproducible using <string>
1286 ; This switch causes the command line that was used to create an
1287 ; object file to be recorded into the object file.  The exact format
1288 ; of this recording is target and binary file format dependent.
1289 ; It is related to the -fverbose-asm switch, but that switch only
1290 ; records information in the assembler output file as comments, so
1291 ; they never reach the object file.
1292 frecord-gcc-switches
1293 Common Report Var(flag_record_gcc_switches)
1294 Record gcc command line switches in the object file.
1296 freg-struct-return
1297 Common Report Var(flag_pcc_struct_return,0) Optimization
1298 Return small aggregates in registers
1300 fregmove
1301 Common Report Var(flag_regmove) Optimization
1302 Enables a register move optimization
1304 frename-registers
1305 Common Report Var(flag_rename_registers) Init(2) Optimization
1306 Perform a register renaming optimization pass
1308 freorder-blocks
1309 Common Report Var(flag_reorder_blocks) Optimization
1310 Reorder basic blocks to improve code placement
1312 freorder-blocks-and-partition
1313 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1314 Reorder basic blocks and partition into hot and cold sections
1316 freorder-functions
1317 Common Report Var(flag_reorder_functions) Optimization
1318 Reorder functions to improve code placement
1320 frerun-cse-after-loop
1321 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
1322 Add a common subexpression elimination pass after loop optimizations
1324 frerun-loop-opt
1325 Common Ignore
1326 Does nothing.  Preserved for backward compatibility.
1328 frounding-math
1329 Common Report Var(flag_rounding_math) Optimization
1330 Disable optimizations that assume default FP rounding behavior
1332 fsched-interblock
1333 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1334 Enable scheduling across basic blocks
1336 fsched-pressure
1337 Common Report Var(flag_sched_pressure) Init(0) Optimization
1338 Enable register pressure sensitive insn scheduling
1340 fsched-spec
1341 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1342 Allow speculative motion of non-loads
1344 fsched-spec-load
1345 Common Report Var(flag_schedule_speculative_load) Optimization
1346 Allow speculative motion of some loads
1348 fsched-spec-load-dangerous
1349 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1350 Allow speculative motion of more loads
1352 fsched-verbose=
1353 Common RejectNegative Joined
1354 -fsched-verbose=<number>        Set the verbosity level of the scheduler
1356 fsched2-use-superblocks
1357 Common Report Var(flag_sched2_use_superblocks) Optimization
1358 If scheduling post reload, do superblock scheduling
1360 fsched2-use-traces
1361 Common Ignore
1362 Does nothing.  Preserved for backward compatibility.
1364 fschedule-insns
1365 Common Report Var(flag_schedule_insns) Optimization
1366 Reschedule instructions before register allocation
1368 fschedule-insns2
1369 Common Report Var(flag_schedule_insns_after_reload) Optimization
1370 Reschedule instructions after register allocation
1372 ; This flag should be on when a target implements non-trivial
1373 ; scheduling hooks, maybe saving some information for its own sake.
1374 ; On IA64, for example, this is used for correct bundling. 
1375 fselective-scheduling
1376 Common Report Var(flag_selective_scheduling) Optimization
1377 Schedule instructions using selective scheduling algorithm
1379 fselective-scheduling2
1380 Common Report Var(flag_selective_scheduling2) Optimization 
1381 Run selective scheduling after reload
1383 fsel-sched-pipelining
1384 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1385 Perform software pipelining of inner loops during selective scheduling
1387 fsel-sched-pipelining-outer-loops
1388 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1389 Perform software pipelining of outer loops during selective scheduling
1391 fsel-sched-reschedule-pipelined
1392 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1393 Reschedule pipelined regions without pipelining
1395 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1396 ; of stalled insns into the ready list.
1397 fsched-stalled-insns
1398 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1399 Allow premature scheduling of queued insns
1401 fsched-stalled-insns=
1402 Common RejectNegative Joined UInteger
1403 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled
1405 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1406 ; be examined for a dependency on a stalled insn that is candidate for
1407 ; premature removal from the queue of stalled insns into the ready list (has
1408 ; an effect only if the flag 'sched_stalled_insns' is set).
1409 fsched-stalled-insns-dep
1410 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1411 Set dependence distance checking in premature scheduling of queued insns
1413 fsched-stalled-insns-dep=
1414 Common RejectNegative Joined UInteger
1415 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns
1417 fsched-group-heuristic
1418 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1419 Enable the group heuristic in the scheduler
1421 fsched-critical-path-heuristic
1422 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1423 Enable the critical path heuristic in the scheduler
1425 fsched-spec-insn-heuristic
1426 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1427 Enable the speculative instruction heuristic in the scheduler
1429 fsched-rank-heuristic
1430 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1431 Enable the rank heuristic in the scheduler
1433 fsched-last-insn-heuristic
1434 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1435 Enable the last instruction heuristic in the scheduler
1437 fsched-dep-count-heuristic
1438 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1439 Enable the dependent count heuristic in the scheduler
1441 fsection-anchors
1442 Common Report Var(flag_section_anchors) Optimization
1443 Access data in the same section from shared anchor points
1445 fsee
1446 Common Ignore
1447 Does nothing.  Preserved for backward compatibility.
1449 fzee
1450 Common Report Var(flag_zee) Init(0)
1451 Eliminate redundant zero extensions on targets that support implicit extensions.
1453 fshow-column
1454 Common Report Var(flag_show_column) Init(1)
1455 Show column numbers in diagnostics, when available.  Default on
1457 fsignaling-nans
1458 Common Report Var(flag_signaling_nans) Optimization
1459 Disable optimizations observable by IEEE signaling NaNs
1461 fsigned-zeros
1462 Common Report Var(flag_signed_zeros) Init(1) Optimization
1463 Disable floating point optimizations that ignore the IEEE signedness of zero
1465 fsingle-precision-constant
1466 Common Report Var(flag_single_precision_constant) Optimization
1467 Convert floating point constants to single precision constants
1469 fsplit-ivs-in-unroller
1470 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1471 Split lifetimes of induction variables when loops are unrolled
1473 fsplit-stack
1474 Common Report Var(flag_split_stack) Init(-1)
1475 Generate discontiguous stack frames
1477 fsplit-wide-types
1478 Common Report Var(flag_split_wide_types) Optimization
1479 Split wide types into independent registers
1481 fvariable-expansion-in-unroller
1482 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1483 Apply variable expansion when loops are unrolled
1485 fstack-check=
1486 Common Report RejectNegative Joined
1487 -fstack-check=[no|generic|specific]     Insert stack checking code into the program
1489 fstack-check
1490 Common Alias(fstack-check=, specific, no)
1491 Insert stack checking code into the program.  Same as -fstack-check=specific
1493 fstack-limit
1494 Common
1496 fstack-limit-register=
1497 Common RejectNegative Joined
1498 -fstack-limit-register=<register>       Trap if the stack goes past <register>
1500 fstack-limit-symbol=
1501 Common RejectNegative Joined
1502 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>
1504 fstack-protector
1505 Common Report Var(flag_stack_protect, 1)
1506 Use propolice as a stack protection method
1508 fstack-protector-all
1509 Common Report RejectNegative Var(flag_stack_protect, 2)
1510 Use a stack protection method for every function
1512 fstack-usage
1513 Common RejectNegative Var(flag_stack_usage)
1514 Output stack usage information on a per-function basis
1516 fstrength-reduce
1517 Common Ignore
1518 Does nothing.  Preserved for backward compatibility.
1520 ; Nonzero if we should do (language-dependent) alias analysis.
1521 ; Typically, this analysis will assume that expressions of certain
1522 ; types do not alias expressions of certain other types.  Only used
1523 ; if alias analysis (in general) is enabled.
1524 fstrict-aliasing
1525 Common Report Var(flag_strict_aliasing) Optimization
1526 Assume strict aliasing rules apply
1528 fstrict-overflow
1529 Common Report Var(flag_strict_overflow)
1530 Treat signed overflow as undefined
1532 fsyntax-only
1533 Common Report Var(flag_syntax_only)
1534 Check for syntax errors, then stop
1536 ftest-coverage
1537 Common Report Var(flag_test_coverage)
1538 Create data files needed by \"gcov\"
1540 fthread-jumps
1541 Common Report Var(flag_thread_jumps) Optimization
1542 Perform jump threading optimizations
1544 ftime-report
1545 Common Report Var(time_report)
1546 Report the time taken by each compiler pass
1548 ftls-model=
1549 Common Joined RejectNegative
1550 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model
1552 ftoplevel-reorder
1553 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1554 Reorder top level functions, variables, and asms
1556 ftracer
1557 Common Report Var(flag_tracer)
1558 Perform superblock formation via tail duplication
1560 ; Zero means that floating-point math operations cannot generate a
1561 ; (user-visible) trap.  This is the case, for example, in nonstop
1562 ; IEEE 754 arithmetic.
1563 ftrapping-math
1564 Common Report Var(flag_trapping_math) Init(1) Optimization
1565 Assume floating-point operations can trap
1567 ftrapv
1568 Common Report Var(flag_trapv) Optimization
1569 Trap for signed overflow in addition, subtraction and multiplication
1571 ftree-ccp
1572 Common Report Var(flag_tree_ccp) Optimization
1573 Enable SSA-CCP optimization on trees
1575 ftree-bit-ccp
1576 Common Report Var(flag_tree_bit_ccp) Optimization
1577 Enable SSA-BIT-CCP optimization on trees
1579 ftree-store-ccp
1580 Common Ignore
1581 Does nothing.  Preserved for backward compatibility.
1583 ftree-ch
1584 Common Report Var(flag_tree_ch) Optimization
1585 Enable loop header copying on trees
1587 ftree-copyrename
1588 Common Report Var(flag_tree_copyrename) Optimization
1589 Replace SSA temporaries with better names in copies
1591 ftree-copy-prop
1592 Common Report Var(flag_tree_copy_prop) Optimization
1593 Enable copy propagation on trees
1595 ftree-store-copy-prop
1596 Common Ignore
1597 Does nothing.  Preserved for backward compatibility.
1599 ftree-cselim
1600 Common Report Var(flag_tree_cselim) Init(2) Optimization
1601 Transform condition stores into unconditional ones
1603 ftree-switch-conversion
1604 Common Report Var(flag_tree_switch_conversion) Optimization
1605 Perform conversions of switch initializations.
1607 ftree-dce
1608 Common Report Var(flag_tree_dce) Optimization
1609 Enable SSA dead code elimination optimization on trees
1611 ftree-dominator-opts
1612 Common Report Var(flag_tree_dom) Optimization
1613 Enable dominator optimizations
1615 ftree-dse
1616 Common Report Var(flag_tree_dse) Optimization
1617 Enable dead store elimination
1619 ftree-forwprop
1620 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1621 Enable forward propagation on trees
1623 ftree-fre
1624 Common Report Var(flag_tree_fre) Optimization
1625 Enable Full Redundancy Elimination (FRE) on trees
1627 ftree-loop-distribution
1628 Common Report Var(flag_tree_loop_distribution) Optimization
1629 Enable loop distribution on trees
1631 ftree-loop-distribute-patterns
1632 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1633 Enable loop distribution for patterns transformed into a library call
1635 ftree-loop-im
1636 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1637 Enable loop invariant motion on trees
1639 ftree-loop-linear
1640 Common Report Var(flag_tree_loop_linear) Optimization
1641 Enable linear loop transforms on trees
1643 ftree-loop-ivcanon
1644 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1645 Create canonical induction variables in loops
1647 ftree-loop-optimize
1648 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1649 Enable loop optimizations on tree level
1651 ftree-parallelize-loops=
1652 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
1653 Enable automatic parallelization of loops
1655 ftree-phiprop
1656 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1657 Enable hoisting loads from conditional pointers.
1659 ftree-pre
1660 Common Report Var(flag_tree_pre) Optimization
1661 Enable SSA-PRE optimization on trees
1663 ftree-pta
1664 Common Report Var(flag_tree_pta) Init(1) Optimization
1665 Perform function-local points-to analysis on trees.
1667 ftree-reassoc
1668 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1669 Enable reassociation on tree level
1671 ftree-salias
1672 Common Ignore
1673 Does nothing.  Preserved for backward compatibility.
1675 ftree-sink
1676 Common Report Var(flag_tree_sink) Optimization
1677 Enable SSA code sinking on trees
1679 ftree-sra
1680 Common Report Var(flag_tree_sra) Optimization
1681 Perform scalar replacement of aggregates
1683 ftree-ter
1684 Common Report Var(flag_tree_ter) Init(1) Optimization
1685 Replace temporary expressions in the SSA->normal pass
1687 ftree-lrs
1688 Common Report Var(flag_tree_live_range_split) Optimization
1689 Perform live range splitting during the SSA->normal pass
1691 ftree-vrp
1692 Common Report Var(flag_tree_vrp) Init(0) Optimization
1693 Perform Value Range Propagation on trees
1695 funit-at-a-time
1696 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1697 Compile whole compilation unit at a time
1699 funroll-loops
1700 Common Report Var(flag_unroll_loops) Optimization
1701 Perform loop unrolling when iteration count is known
1703 funroll-all-loops
1704 Common Report Var(flag_unroll_all_loops) Optimization
1705 Perform loop unrolling for all loops
1707 ; Nonzero means that loop optimizer may assume that the induction variables
1708 ; that control loops do not overflow and that the loops with nontrivial
1709 ; exit condition are not infinite
1710 funsafe-loop-optimizations
1711 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1712 Allow loop optimizations to assume that the loops behave in normal way
1714 fassociative-math
1715 Common Report Var(flag_associative_math)
1716 Allow optimization for floating-point arithmetic which may change the
1717 result of the operation due to rounding.
1719 freciprocal-math
1720 Common Report Var(flag_reciprocal_math)
1721 Same as -fassociative-math for expressions which include division.
1723 ; Nonzero means that unsafe floating-point math optimizations are allowed
1724 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
1725 ; are allowed to assume that their arguments and results are "normal"
1726 ; (e.g., nonnegative for SQRT).
1727 funsafe-math-optimizations
1728 Common Report Var(flag_unsafe_math_optimizations) Optimization
1729 Allow math optimizations that may violate IEEE or ISO standards
1731 funswitch-loops
1732 Common Report Var(flag_unswitch_loops) Optimization
1733 Perform loop unswitching
1735 funwind-tables
1736 Common Report Var(flag_unwind_tables) Optimization
1737 Just generate unwind tables for exception handling
1739 fuse-linker-plugin
1740 Common Undocumented
1742 ; Positive if we should track variables, negative if we should run
1743 ; the var-tracking pass only to discard debug annotations, zero if
1744 ; we're not to run it.  When flag_var_tracking == 2 (AUTODETECT_VALUE) it
1745 ; will be set according to optimize, debug_info_level and debug_hooks
1746 ; in process_options ().
1747 fvar-tracking
1748 Common Report Var(flag_var_tracking) Init(2) Optimization
1749 Perform variable tracking
1751 ; Positive if we should track variables at assignments, negative if
1752 ; we should run the var-tracking pass only to discard debug
1753 ; annotations.  When flag_var_tracking_assignments ==
1754 ; AUTODETECT_VALUE it will be set according to flag_var_tracking.
1755 fvar-tracking-assignments
1756 Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
1757 Perform variable tracking by annotating assignments
1759 ; Nonzero if we should toggle flag_var_tracking_assignments after
1760 ; processing options and computing its default.  */
1761 fvar-tracking-assignments-toggle
1762 Common Report Var(flag_var_tracking_assignments_toggle) Optimization
1763 Toggle -fvar-tracking-assignments
1765 fvar-tracking-uninit
1766 Common Report Var(flag_var_tracking_uninit) Optimization
1767 Perform variable tracking and also tag variables that are uninitialized
1769 ftree-vectorize
1770 Common Report Var(flag_tree_vectorize) Optimization
1771 Enable loop vectorization on trees
1773 ftree-slp-vectorize
1774 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1775 Enable basic block vectorization (SLP) on trees
1777 fvect-cost-model
1778 Common Report Var(flag_vect_cost_model) Optimization
1779 Enable use of cost model in vectorization
1781 ftree-vect-loop-version
1782 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1783 Enable loop versioning when doing loop vectorization on trees
1785 ftree-vectorizer-verbose=
1786 Common RejectNegative Joined
1787 -ftree-vectorizer-verbose=<number>      Set the verbosity level of the vectorizer
1789 ftree-scev-cprop
1790 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1791 Enable copy propagation of scalar-evolution information.
1793 ; -fverbose-asm causes extra commentary information to be produced in
1794 ; the generated assembly code (to make it more readable).  This option
1795 ; is generally only of use to those who actually need to read the
1796 ; generated assembly code (perhaps while debugging the compiler itself).
1797 ; -fno-verbose-asm, the default, causes the extra information
1798 ; to not be added and is useful when comparing two assembler files.
1799 fverbose-asm
1800 Common Report Var(flag_verbose_asm)
1801 Add extra commentary to assembler output
1803 fvisibility=
1804 Common Joined RejectNegative
1805 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility
1808 fvpt
1809 Common Report Var(flag_value_profile_transformations) Optimization
1810 Use expression value profiles in optimizations
1812 fweb
1813 Common Report Var(flag_web) Init(2) Optimization
1814 Construct webs and split unrelated uses of single variable
1816 fwhopr
1817 Common
1818 Enable partitioned link-time optimization
1820 fwhopr=
1821 Common RejectNegative Joined Var(flag_whopr)
1822 Partitioned link-time optimization with number of parallel jobs or jobserver.
1824 ftree-builtin-call-dce
1825 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1826 Enable conditional dead code elimination for builtin calls
1828 fwhole-program
1829 Common Report Var(flag_whole_program) Init(0) Optimization
1830 Perform whole program optimizations
1832 fwrapv
1833 Common Report Var(flag_wrapv) Optimization
1834 Assume signed arithmetic overflow wraps around
1836 fzero-initialized-in-bss
1837 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1838 Put zero initialized data in the bss section
1841 Common JoinedOrMissing
1842 Generate debug information in default format
1844 gcoff
1845 Common JoinedOrMissing Negative(gdwarf-)
1846 Generate debug information in COFF format
1848 gdwarf-
1849 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1850 Generate debug information in DWARF v2 (or later) format
1852 ggdb
1853 Common JoinedOrMissing
1854 Generate debug information in default extended format
1856 gstabs
1857 Common JoinedOrMissing Negative(gstabs+)
1858 Generate debug information in STABS format
1860 gstabs+
1861 Common JoinedOrMissing Negative(gvms)
1862 Generate debug information in extended STABS format
1864 gno-strict-dwarf
1865 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1866 Emit DWARF additions beyond selected version
1868 gstrict-dwarf
1869 Common Report RejectNegative Var(dwarf_strict,1)
1870 Don't emit DWARF additions beyond selected version
1872 gtoggle
1873 Common Report Var(flag_gtoggle)
1874 Toggle debug information generation
1876 gvms
1877 Common JoinedOrMissing Negative(gxcoff)
1878 Generate debug information in VMS format
1880 gxcoff
1881 Common JoinedOrMissing Negative(gxcoff+)
1882 Generate debug information in XCOFF format
1884 gxcoff+
1885 Common JoinedOrMissing Negative(gcoff)
1886 Generate debug information in extended XCOFF format
1888 iplugindir=
1889 Common Joined Var(plugindir_string) Init(0)
1890 -iplugindir=<dir>       Set <dir> to be the default plugin directory
1893 Driver Joined Separate
1895 no-canonical-prefixes
1896 Driver
1898 nodefaultlibs
1899 Driver
1901 nostdlib
1902 Driver
1905 Common Driver Joined Separate MissingArgError(missing filename after %qs)
1906 -o <file>       Place output into <file>
1909 Common Var(profile_flag)
1910 Enable function profiling
1912 pass-exit-codes
1913 Driver Var(pass_exit_codes)
1915 pedantic
1916 Common Var(pedantic)
1917 Issue warnings needed for strict compliance to the standard
1919 pedantic-errors
1920 Common
1921 Like -pedantic but issue them as errors
1924 Driver
1926 pipe
1927 Driver Var(use_pipes)
1929 print-file-name=
1930 Driver JoinedOrMissing Var(print_file_name)
1932 print-libgcc-file-name
1933 Driver
1935 print-multi-directory
1936 Driver Var(print_multi_directory)
1938 print-multi-lib
1939 Driver Var(print_multi_lib)
1941 print-multi-os-directory
1942 Driver Var(print_multi_os_directory)
1944 print-prog-name=
1945 Driver JoinedOrMissing Var(print_prog_name)
1947 print-search-dirs
1948 Driver Var(print_search_dirs)
1950 print-sysroot
1951 Driver Var(print_sysroot)
1953 print-sysroot-headers-suffix
1954 Driver Var(print_sysroot_headers_suffix)
1956 quiet
1957 Common Var(quiet_flag) RejectDriver
1958 Do not display functions compiled or elapsed time
1960 save-temps
1961 Driver
1963 save-temps=
1964 Driver Joined
1966 time
1967 Driver Var(report_times)
1969 time=
1970 Driver JoinedOrMissing
1973 Driver Joined Separate
1975 undef
1976 Driver
1977 ; C option, but driver must not handle as "-u ndef".
1980 Driver
1982 version
1983 Common Var(version_flag) RejectDriver
1984 Display the compiler's version
1987 Common Var(inhibit_warnings)
1988 Suppress warnings
1990 wrapper
1991 Driver Separate Var(wrapper_string)
1994 Driver Joined Separate
1996 shared
1997 Common RejectNegative Negative(pie)
1998 Create a shared library
2000 shared-libgcc
2001 Driver
2003 specs
2004 Driver Separate Alias(specs=)
2006 specs=
2007 Driver Joined
2009 static
2010 Driver
2012 static-libgcc
2013 Driver
2015 static-libgfortran
2016 Driver
2017 ; Documented for Fortran, but always accepted by driver.
2019 static-libstdc++
2020 Driver
2022 symbolic
2023 Driver
2026 Common RejectNegative Negative(shared)
2027 Create a position independent executable
2029 ; This comment is to ensure we retain the blank line above.