2010-09-09 Gerald Pfeifer <gerald@pfeifer.com>
[official-gcc.git] / gcc / common.opt
blobe915ee366ccd9e6254a5f7d2fc419f22e9a6a57d
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 ###
27 Driver
29 -help
30 Common Driver
31 Display this information
33 -help=
34 Common Driver Report Joined
35 --help=<class>  Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params
37 -target-help
38 Common Driver
39 Alias for --help=target
41 ;; The following four entries are to work around the gcc driver
42 ;; program's insatiable desire to turn options starting with a
43 ;; double dash (--) into options starting with a dash f (-f).
44 fhelp
45 Common Driver Var(help_flag)
47 fhelp=
48 Common Driver Joined
50 ftarget-help
51 Common Driver
53 fversion
54 Common Driver
56 -param
57 Common Separate
58 --param <param>=<value> Set parameter <param> to value.  See below for a complete list of parameters
60 -sysroot=
61 Driver JoinedOrMissing
63 -version
64 Common Driver
67 Driver Joined Separate
70 Driver
73 Driver Joined Separate
76 Common JoinedOrMissing Optimization
77 -O<number>      Set optimization level to <number>
80 Common Optimization
81 Optimize for space rather than speed
83 Ofast
84 Common Optimization
85 Optimize for speed disregarding exact standards compliance
88 Driver
91 Common RejectNegative Warning Alias(Wextra)
92 This switch is deprecated; use -Wextra instead
94 Wa,
95 Driver JoinedOrMissing
97 Wl,
98 Driver JoinedOrMissing
101 Driver JoinedOrMissing
103 Waggregate-return
104 Common Var(warn_aggregate_return) Warning
105 Warn about returning structures, unions or arrays
107 Warray-bounds
108 Common Var(warn_array_bounds) Warning
109 Warn if an array is accessed out of bounds
111 Wattributes
112 Common Var(warn_attributes) Init(1) Warning
113 Warn about inappropriate attribute usage
115 Wcast-align
116 Common Var(warn_cast_align) Warning
117 Warn about pointer casts which increase alignment
119 Wcpp
120 Common Var(warn_cpp) Init(1) Warning
121 Warn when a #warning directive is encountered
123 Wdeprecated-declarations
124 Common Var(warn_deprecated_decl) Init(1) Warning
125 Warn about uses of __attribute__((deprecated)) declarations
127 Wdisabled-optimization
128 Common Var(warn_disabled_optimization) Warning
129 Warn when an optimization pass is disabled
131 Werror
132 Common Var(warnings_are_errors)
133 Treat all warnings as errors
135 Werror=
136 Common Joined
137 Treat specified warning as error
139 Wextra
140 Common Var(extra_warnings) Warning
141 Print extra (possibly unwanted) warnings
143 Wfatal-errors
144 Common Var(flag_fatal_errors)
145 Exit on the first error occurred
147 Wframe-larger-than=
148 Common RejectNegative Joined UInteger
149 -Wframe-larger-than=<number>    Warn if a function's stack frame requires more than <number> bytes
151 Winline
152 Common Var(warn_inline) Warning
153 Warn when an inlined function cannot be inlined
155 Wlarger-than-
156 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
158 Wlarger-than=
159 Common RejectNegative Joined UInteger Warning
160 -Wlarger-than=<number>  Warn if an object is larger than <number> bytes
162 Wunsafe-loop-optimizations
163 Common Var(warn_unsafe_loop_optimizations) Warning
164 Warn if the loop cannot be optimized due to nontrivial assumptions.
166 Wmissing-noreturn
167 Common Var(warn_missing_noreturn) Warning
168 Warn about functions which might be candidates for __attribute__((noreturn))
170 Wmudflap
171 Common Var(warn_mudflap) Init(1) Warning
172 Warn about constructs not instrumented by -fmudflap
174 Woverflow
175 Common Var(warn_overflow) Init(1) Warning
176 Warn about overflow in arithmetic expressions
178 Wpacked
179 Common Var(warn_packed) Warning
180 Warn when the packed attribute has no effect on struct layout
182 Wpadded
183 Common Var(warn_padded) Warning
184 Warn when padding is required to align structure members
186 Wshadow
187 Common Var(warn_shadow) Warning
188 Warn when one local variable shadows another
190 Wstack-protector
191 Common Var(warn_stack_protect) Warning
192 Warn when not issuing stack smashing protection for some reason
194 Wstrict-aliasing
195 Common Warning
196 Warn about code which might break strict aliasing rules
198 Wstrict-aliasing=
199 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
200 Warn about code which might break strict aliasing rules
202 Wstrict-overflow
203 Common Warning
204 Warn about optimizations that assume that signed overflow is undefined
206 Wstrict-overflow=
207 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
208 Warn about optimizations that assume that signed overflow is undefined
210 Wsuggest-attribute=const
211 Common Var(warn_suggest_attribute_const) Warning
212 Warn about functions which might be candidates for __attribute__((const))
214 Wsuggest-attribute=pure
215 Common Var(warn_suggest_attribute_pure) Warning
216 Warn about functions which might be candidates for __attribute__((pure))
218 Wsuggest-attribute=noreturn
219 Common Var(warn_suggest_attribute_noreturn) Warning
220 Warn about functions which might be candidates for __attribute__((noreturn))
222 Wswitch
223 Common Var(warn_switch) Warning
224 Warn about enumerated switches, with no default, missing a case
226 Wswitch-default
227 Common Var(warn_switch_default) Warning
228 Warn about enumerated switches missing a \"default:\" statement
230 Wswitch-enum
231 Common Var(warn_switch_enum) Warning
232 Warn about all enumerated switches missing a specific case
234 Wsystem-headers
235 Common Var(warn_system_headers) Warning
236 Do not suppress warnings from system headers
238 Wtrampolines
239 Common Var(warn_trampolines) Warning
240 Warn whenever a trampoline is generated
242 Wtype-limits
243 Common Var(warn_type_limits) Init(-1) Warning
244 Warn if a comparison is always true or always false due to the limited range of the data type
246 Wuninitialized
247 Common Var(warn_uninitialized) Init(-1) Warning
248 Warn about uninitialized automatic variables
250 Wunreachable-code
251 Common Ignore
252 Does nothing. Preserved for backward compatibility.
254 Wunused
255 Common Var(warn_unused) Init(0) Warning
256 Enable all -Wunused- warnings
258 Wunused-but-set-parameter
259 Common Var(warn_unused_but_set_parameter) Init(-1) Warning
260 Warn when a function parameter is only set, otherwise unused
262 Wunused-but-set-variable
263 Common Var(warn_unused_but_set_variable) Init(-1) Warning
264 Warn when a variable is only set, otherwise unused
266 Wunused-function
267 Common Var(warn_unused_function) Init(-1) Warning
268 Warn when a function is unused
270 Wunused-label
271 Common Var(warn_unused_label) Init(-1) Warning
272 Warn when a label is unused
274 Wunused-parameter
275 Common Var(warn_unused_parameter) Init(-1) Warning
276 Warn when a function parameter is unused
278 Wunused-value
279 Common Var(warn_unused_value) Init(-1) Warning
280 Warn when an expression value is unused
282 Wunused-variable
283 Common Var(warn_unused_variable) Init(-1) Warning
284 Warn when a variable is unused
286 Wcoverage-mismatch
287 Common Var(warn_coverage_mismatch) Init(1) Warning
288 Warn in case profiles in -fprofile-use do not match
290 Xassembler
291 Driver Separate
293 Xlinker
294 Driver Separate
296 Xpreprocessor
297 Driver Separate
299 aux-info
300 Common Separate
301 -aux-info <file>        Emit declaration information into <file>
303 aux-info=
304 Common Joined Alias(aux-info)
306 auxbase
307 Common Separate RejectDriver
309 auxbase-strip
310 Common Separate RejectDriver
312 combine
313 Driver Var(combine_flag)
316 Driver
319 Common Joined
320 -d<letters>     Enable dumps from specific passes of the compiler
322 dumpbase
323 Common Separate
324 -dumpbase <file>        Set the file basename to be used for dumps
326 dumpdir
327 Common Separate
328 -dumpdir <dir>  Set the directory name to be used for dumps
330 dumpmachine
331 Driver
333 dumpspecs
334 Driver
336 dumpversion
337 Driver
339 ; The version of the C++ ABI in use.  The following values are allowed:
341 ; 0: The version of the ABI believed most conformant with the C++ ABI
342 ;    specification.  This ABI may change as bugs are discovered and fixed.
343 ;    Therefore, 0 will not necessarily indicate the same ABI in different
344 ;    versions of G++.
346 ; 1: The version of the ABI first used in G++ 3.2.
348 ; 2: The version of the ABI first used in G++ 3.4 (and current default).
350 ; 3: The version of the ABI that fixes the missing underscore
351 ;    in template non-type arguments of pointer type.
353 ; 4: The version of the ABI that introduces unambiguous mangling of
354 ;    vector types.
356 ; Additional positive integers will be assigned as new versions of
357 ; the ABI become the default version of the ABI.
358 fabi-version=
359 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
361 falign-functions
362 Common Report Var(align_functions,0) Optimization UInteger
363 Align the start of functions
365 falign-functions=
366 Common RejectNegative Joined UInteger
368 falign-jumps
369 Common Report Var(align_jumps,0) Optimization UInteger
370 Align labels which are only reached by jumping
372 falign-jumps=
373 Common RejectNegative Joined UInteger
375 falign-labels
376 Common Report Var(align_labels,0) Optimization UInteger
377 Align all labels
379 falign-labels=
380 Common RejectNegative Joined UInteger
382 falign-loops
383 Common Report Var(align_loops) Optimization UInteger
384 Align the start of loops
386 falign-loops=
387 Common RejectNegative Joined UInteger
389 fargument-alias
390 Common Ignore
391 Does nothing. Preserved for backward compatibility.
393 fargument-noalias
394 Common Ignore
395 Does nothing. Preserved for backward compatibility.
397 fargument-noalias-global
398 Common Ignore
399 Does nothing. Preserved for backward compatibility.
401 fargument-noalias-anything
402 Common Ignore
403 Does nothing. Preserved for backward compatibility.
405 fasynchronous-unwind-tables
406 Common Report Var(flag_asynchronous_unwind_tables) Optimization
407 Generate unwind tables that are exact at each instruction boundary
409 fauto-inc-dec
410 Common Report Var(flag_auto_inc_dec) Init(1)
411 Generate auto-inc/dec instructions
413 ; -fcheck-bounds causes gcc to generate array bounds checks.
414 ; For C, C++ and ObjC: defaults off.
415 ; For Java: defaults to on.
416 ; For Fortran: defaults to off.
417 fbounds-check
418 Common Report Var(flag_bounds_check)
419 Generate code to check bounds before indexing arrays
421 fbranch-count-reg
422 Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
423 Replace add, compare, branch with branch on count register
425 fbranch-probabilities
426 Common Report Var(flag_branch_probabilities) Optimization
427 Use profiling information for branch probabilities
429 fbranch-target-load-optimize
430 Common Report Var(flag_branch_target_load_optimize) Optimization
431 Perform branch target load optimization before prologue / epilogue threading
433 fbranch-target-load-optimize2
434 Common Report Var(flag_branch_target_load_optimize2) Optimization
435 Perform branch target load optimization after prologue / epilogue threading
437 fbtr-bb-exclusive
438 Common Report Var(flag_btr_bb_exclusive) Optimization
439 Restrict target load migration not to re-use registers in any basic block
441 fcall-saved-
442 Common Joined RejectNegative
443 -fcall-saved-<register> Mark <register> as being preserved across functions
445 fcall-used-
446 Common Joined RejectNegative
447 -fcall-used-<register>  Mark <register> as being corrupted by function calls
449 ; Nonzero for -fcaller-saves: allocate values in regs that need to
450 ; be saved across function calls, if that produces overall better code.
451 ; Optional now, so people can test it.
452 fcaller-saves
453 Common Report Var(flag_caller_saves) Optimization
454 Save registers around function calls
456 fcheck-data-deps
457 Common Report Var(flag_check_data_deps)
458 Compare the results of several data dependence analyzers.
460 fcommon
461 Common Report Var(flag_no_common,0) Optimization
462 Do not put uninitialized globals in the common section
464 fcompare-debug
465 Driver
466 ; Converted by the driver to -fcompare-debug= options.
468 fcompare-debug=
469 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
470 -fcompare-debug[=<opts>]        Compile with and without e.g. -gtoggle, and compare the final-insns dump
472 fcompare-debug-second
473 Common Driver RejectNegative Var(flag_compare_debug)
474 Run only the second compilation of -fcompare-debug
476 fconserve-stack
477 Common Var(flag_conserve_stack) Optimization
478 Do not perform optimizations increasing noticeably stack usage
480 fcprop-registers
481 Common Report Var(flag_cprop_registers) Optimization
482 Perform a register copy-propagation optimization pass
484 fcrossjumping
485 Common Report Var(flag_crossjumping) Optimization
486 Perform cross-jumping optimization
488 fcse-follow-jumps
489 Common Report Var(flag_cse_follow_jumps) Optimization
490 When running CSE, follow jumps to their targets
492 fcse-skip-blocks
493 Common Ignore
494 Does nothing.  Preserved for backward compatibility.
496 fcx-limited-range
497 Common Report Var(flag_cx_limited_range) Optimization
498 Omit range reduction step when performing complex division
500 fcx-fortran-rules
501 Common Report Var(flag_cx_fortran_rules) Optimization
502 Complex multiplication and division follow Fortran rules
504 fdata-sections
505 Common Report Var(flag_data_sections) Optimization
506 Place data items into their own section
508 fdbg-cnt-list
509 Common Report
510 List all available debugging counters with their limits and counts.
512 fdbg-cnt=
513 Common RejectNegative Joined
514 -fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...]     Set the debug counter limit.   
516 fdebug-prefix-map=
517 Common Joined RejectNegative
518 Map one directory name to another in debug information
520 ; Nonzero for -fdefer-pop: don't pop args after each function call
521 ; instead save them up to pop many calls' args with one insns.
522 fdefer-pop
523 Common Report Var(flag_defer_pop) Optimization
524 Defer popping functions args from stack until later
526 fdelayed-branch
527 Common Report Var(flag_delayed_branch) Optimization
528 Attempt to fill delay slots of branch instructions
530 fdelete-null-pointer-checks
531 Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
532 Delete useless null pointer checks
534 fdiagnostics-show-location=
535 Common Joined RejectNegative
536 -fdiagnostics-show-location=[once|every-line]   How often to emit source location at the beginning of line-wrapped diagnostics
538 fdiagnostics-show-option
539 Common Var(flag_diagnostics_show_option) Init(1)
540 Amend appropriate diagnostic messages with the command line option that controls them
542 fdump-
543 Common Joined RejectNegative
544 -fdump-<type>   Dump various compiler internals to a file
546 fdump-final-insns
547 Driver RejectNegative
549 fdump-final-insns=
550 Common RejectNegative Joined Var(flag_dump_final_insns)
551 -fdump-final-insns=filename     Dump to filename the insns at the end of translation
553 fdump-noaddr
554 Common Report Var(flag_dump_noaddr)
555 Suppress output of addresses in debugging dumps
557 fdump-unnumbered
558 Common Report Var(flag_dump_unnumbered) VarExists
559 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
561 fdump-unnumbered-links
562 Common Report Var(flag_dump_unnumbered_links) VarExists
563 Suppress output of previous and next insn numbers in debugging dumps
565 fdwarf2-cfi-asm
566 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
567 Enable CFI tables via GAS assembler directives.
569 fearly-inlining
570 Common Report Var(flag_early_inlining) Init(1) Optimization
571 Perform early inlining
573 feliminate-dwarf2-dups
574 Common Report Var(flag_eliminate_dwarf2_dups)
575 Perform DWARF2 duplicate elimination
577 fipa-sra
578 Common Report Var(flag_ipa_sra) Init(0) Optimization
579 Perform interprocedural reduction of aggregates
581 feliminate-unused-debug-symbols
582 Common Report Var(flag_debug_only_used_symbols)
583 Perform unused type elimination in debug info
585 feliminate-unused-debug-types
586 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
587 Perform unused type elimination in debug info
589 femit-class-debug-always
590 Common Report Var(flag_emit_class_debug_always) Init(0)
591 Do not suppress C++ class debug information.
593 fenable-icf-debug
594 Common Report Var(flag_enable_icf_debug)
595 Generate debug information to support Identical Code Folding (ICF)
597 fexceptions
598 Common Report Var(flag_exceptions) Optimization
599 Enable exception handling
601 fexpensive-optimizations
602 Common Report Var(flag_expensive_optimizations) Optimization
603 Perform a number of minor, expensive optimizations
605 fexcess-precision=
606 Common Joined RejectNegative
607 -fexcess-precision=[fast|standard]      Specify handling of excess floating-point precision
609 ffast-math
610 Common
612 ffinite-math-only
613 Common Report Var(flag_finite_math_only) Optimization
614 Assume no NaNs or infinities are generated
616 ffixed-
617 Common Joined RejectNegative
618 -ffixed-<register>      Mark <register> as being unavailable to the compiler
620 ffloat-store
621 Common Report Var(flag_float_store) Optimization
622 Don't allocate floats and doubles in extended-precision registers
624 fforce-addr
625 Common Ignore
626 Does nothing.  Preserved for backward compatibility.
628 fforward-propagate
629 Common Report Var(flag_forward_propagate) Optimization
630 Perform a forward propagation pass on RTL
632 ; Nonzero means don't put addresses of constant functions in registers.
633 ; Used for compiling the Unix kernel, where strange substitutions are
634 ; done on the assembly output.
635 ffunction-cse
636 Common Report Var(flag_no_function_cse,0)
637 Allow function addresses to be held in registers
639 ffunction-sections
640 Common Report Var(flag_function_sections)
641 Place each function into its own section
643 fgcse
644 Common Report Var(flag_gcse) Optimization
645 Perform global common subexpression elimination
647 fgcse-lm
648 Common Report Var(flag_gcse_lm) Init(1) Optimization
649 Perform enhanced load motion during global common subexpression elimination
651 fgcse-sm
652 Common Report Var(flag_gcse_sm) Init(0) Optimization
653 Perform store motion after global common subexpression elimination
655 fgcse-las
656 Common Report Var(flag_gcse_las) Init(0) Optimization
657 Perform redundant load after store elimination in global common subexpression
658 elimination
660 fgcse-after-reload
661 Common Report Var(flag_gcse_after_reload) Optimization
662 Perform global common subexpression elimination after register allocation
663 has finished
665 ; This option is not documented yet as its semantics will change.
666 fgraphite
667 Common Report Var(flag_graphite)
668 Enable in and out of Graphite representation
670 fgraphite-identity
671 Common Report Var(flag_graphite_identity) Optimization
672 Enable Graphite Identity transformation
674 floop-parallelize-all
675 Common Report Var(flag_loop_parallelize_all) Optimization
676 Mark all loops as parallel
678 floop-strip-mine
679 Common Report Var(flag_loop_strip_mine) Optimization
680 Enable Loop Strip Mining transformation
682 floop-interchange
683 Common Report Var(flag_loop_interchange) Optimization
684 Enable Loop Interchange transformation
686 floop-block
687 Common Report Var(flag_loop_block) Optimization
688 Enable Loop Blocking transformation
690 fstrict-volatile-bitfields
691 Common Report Var(flag_strict_volatile_bitfields) Init(-1)
692 Force bitfield accesses to match their type width
694 fguess-branch-probability
695 Common Report Var(flag_guess_branch_prob) Optimization
696 Enable guessing of branch probabilities
698 ; Nonzero means ignore `#ident' directives.  0 means handle them.
699 ; Generate position-independent code for executables if possible
700 ; On SVR4 targets, it also controls whether or not to emit a
701 ; string identifying the compiler.
702 fident
703 Common Report Var(flag_no_ident,0)
704 Process #ident directives
706 fif-conversion
707 Common Report Var(flag_if_conversion) Optimization
708 Perform conversion of conditional jumps to branchless equivalents
710 fif-conversion2
711 Common Report Var(flag_if_conversion2) Optimization
712 Perform conversion of conditional jumps to conditional execution
714 ftree-loop-if-convert
715 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
716 Convert conditional jumps in innermost loops to branchless equivalents
718 ftree-loop-if-convert-stores
719 Common Report Var(flag_tree_loop_if_convert_stores) Optimization
720 Also if-convert conditional jumps containing memory writes
722 ; -finhibit-size-directive inhibits output of .size for ELF.
723 ; This is used only for compiling crtstuff.c,
724 ; and it may be extended to other effects
725 ; needed for crtstuff.c on other systems.
726 finhibit-size-directive
727 Common Report Var(flag_inhibit_size_directive)
728 Do not generate .size directives
730 findirect-inlining
731 Common Report Var(flag_indirect_inlining)
732 Perform indirect inlining
734 ; Nonzero means that functions declared `inline' will be treated
735 ; as `static'.  Prevents generation of zillions of copies of unused
736 ; static inline functions; instead, `inlines' are written out
737 ; only when actually used.  Used in conjunction with -g.  Also
738 ; does the right thing with #pragma interface.
739 finline
740 Common Report Var(flag_no_inline,0) Init(0)
741 Pay attention to the \"inline\" keyword
743 finline-small-functions
744 Common Report Var(flag_inline_small_functions) Optimization
745 Integrate simple functions into their callers when code size is known to not growth
747 finline-functions
748 Common Report Var(flag_inline_functions) Optimization
749 Integrate simple functions into their callers
751 finline-functions-called-once
752 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
753 Integrate functions called once into their callers
755 finline-limit-
756 Common RejectNegative Joined Alias(finline-limit=)
758 finline-limit=
759 Common RejectNegative Joined UInteger
760 -finline-limit=<number> Limit the size of inlined functions to <number>
762 finstrument-functions
763 Common Report Var(flag_instrument_function_entry_exit)
764 Instrument function entry and exit with profiling calls
766 finstrument-functions-exclude-function-list=
767 Common RejectNegative Joined
768 -finstrument-functions-exclude-function-list=name,...  Do not instrument listed functions
770 finstrument-functions-exclude-file-list=
771 Common RejectNegative Joined
772 -finstrument-functions-exclude-file-list=filename,...  Do not instrument functions listed in files
774 fipa-cp
775 Common Report Var(flag_ipa_cp) Optimization
776 Perform Interprocedural constant propagation
778 fipa-cp-clone
779 Common Report Var(flag_ipa_cp_clone) Optimization
780 Perform cloning to make Interprocedural constant propagation stronger
782 fipa-profile
783 Common Report Var(flag_ipa_profile) Init(0) Optimization
784 Perform interprocedural profile propagation
786 fipa-pta
787 Common Report Var(flag_ipa_pta) Init(0) Optimization
788 Perform interprocedural points-to analysis
790 fipa-pure-const
791 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
792 Discover pure and const functions
794 fipa-reference
795 Common Report Var(flag_ipa_reference) Init(0) Optimization
796 Discover readonly and non addressable static variables
798 fipa-matrix-reorg
799 Common Report Var(flag_ipa_matrix_reorg) Optimization
800 Perform matrix layout flattening and transposing based
801 on profiling information.
803 fipa-struct-reorg
804 Common Report Var(flag_ipa_struct_reorg)
805 Perform structure layout optimizations based
806 on profiling information.
808 fira-algorithm=
809 Common Joined RejectNegative
810 -fira-algorithm=[CB|priority] Set the used IRA algorithm
812 fira-region=
813 Common Joined RejectNegative
814 -fira-region=[one|all|mixed] Set regions for IRA
816 fira-coalesce
817 Common Report Var(flag_ira_coalesce) Init(0)
818 Do optimistic coalescing.
820 fira-loop-pressure
821 Common Report Var(flag_ira_loop_pressure)
822 Use IRA based register pressure calculation
823 in RTL loop optimizations.
825 fira-share-save-slots
826 Common Report Var(flag_ira_share_save_slots) Init(1)
827 Share slots for saving different hard registers.
829 fira-share-spill-slots
830 Common Report Var(flag_ira_share_spill_slots) Init(1)
831 Share stack slots for spilled pseudo-registers.
833 fira-verbose=
834 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
835 -fira-verbose=<number>  Control IRA's level of diagnostic messages.
837 fivopts
838 Common Report Var(flag_ivopts) Init(1) Optimization
839 Optimize induction variables on trees
841 fjump-tables
842 Common Var(flag_jump_tables) Init(1) Optimization
843 Use jump tables for sufficiently large switch statements
845 fkeep-inline-functions
846 Common Report Var(flag_keep_inline_functions)
847 Generate code for functions even if they are fully inlined
849 fkeep-static-consts
850 Common Report Var(flag_keep_static_consts) Init(1)
851 Emit static const variables even if they are not used
853 fleading-underscore
854 Common Report Var(flag_leading_underscore) Init(-1)
855 Give external symbols a leading underscore
857 floop-optimize
858 Common Ignore
859 Does nothing.  Preserved for backward compatibility.
861 flto
862 Common Var(flag_lto)
863 Enable link-time optimization.
865 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
866 flto-compression-level=
867 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
868 -flto-compression-level=<number>        Use zlib compression level <number> for IL
870 flto-report
871 Common Report Var(flag_lto_report) Init(0) Optimization
872 Report various link-time optimization statistics
874 fmath-errno
875 Common Report Var(flag_errno_math) Init(1) Optimization
876 Set errno after built-in math functions
878 fmem-report
879 Common Report Var(mem_report)
880 Report on permanent memory allocation
882 ; This will attempt to merge constant section constants, if 1 only
883 ; string constants and constants from constant pool, if 2 also constant
884 ; variables.
885 fmerge-all-constants
886 Common Report Var(flag_merge_constants,2) Init(1) Optimization
887 Attempt to merge identical constants and constant variables
889 fmerge-constants
890 Common Report Var(flag_merge_constants,1) VarExists Optimization
891 Attempt to merge identical constants across compilation units
893 fmerge-debug-strings
894 Common Report Var(flag_merge_debug_strings) Init(1)
895 Attempt to merge identical debug strings across compilation units
897 fmessage-length=
898 Common RejectNegative Joined UInteger
899 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping
901 fmodulo-sched
902 Common Report Var(flag_modulo_sched) Optimization
903 Perform SMS based modulo scheduling before the first scheduling pass
905 fmodulo-sched-allow-regmoves
906 Common Report Var(flag_modulo_sched_allow_regmoves)
907 Perform SMS based modulo scheduling with register moves allowed
909 fmove-loop-invariants
910 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
911 Move loop invariant computations out of loops
913 fmudflap
914 Common RejectNegative Report Var(flag_mudflap)
915 Add mudflap bounds-checking instrumentation for single-threaded program
917 fmudflapth
918 Common RejectNegative Report VarExists Var(flag_mudflap,2)
919 Add mudflap bounds-checking instrumentation for multi-threaded program
921 fmudflapir
922 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
923 Ignore read operations when inserting mudflap instrumentation
925 fdce
926 Common Var(flag_dce) Init(1) Optimization
927 Use the RTL dead code elimination pass
929 fdse
930 Common Var(flag_dse) Init(1) Optimization
931 Use the RTL dead store elimination pass
933 freschedule-modulo-scheduled-loops
934 Common Report Var(flag_resched_modulo_sched) Optimization
935 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
937 fnon-call-exceptions
938 Common Report Var(flag_non_call_exceptions) Optimization
939 Support synchronous non-call exceptions
941 fomit-frame-pointer
942 Common Report Var(flag_omit_frame_pointer) Optimization
943 When possible do not generate stack frames
945 foptimize-register-move
946 Common Report Var(flag_regmove) Optimization
947 Do the full register move optimization pass
949 foptimize-sibling-calls
950 Common Report Var(flag_optimize_sibling_calls) Optimization
951 Optimize sibling and tail recursive calls
953 fpartial-inlining
954 Common Report Var(flag_partial_inlining)
955 Perform partial inlining
957 fpre-ipa-mem-report
958 Common Report Var(pre_ipa_mem_report)
959 Report on memory allocation before interprocedural optimization
961 fpost-ipa-mem-report
962 Common Report Var(post_ipa_mem_report)
963 Report on memory allocation before interprocedural optimization
965 fpack-struct
966 Common Report Var(flag_pack_struct) Optimization
967 Pack structure members together without holes
969 fpack-struct=
970 Common RejectNegative Joined UInteger Optimization
971 -fpack-struct=<number>  Set initial maximum structure member alignment
973 fpcc-struct-return
974 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
975 Return small aggregates in memory, not registers
977 fpeel-loops
978 Common Report Var(flag_peel_loops) Optimization
979 Perform loop peeling
981 fpeephole
982 Common Report Var(flag_no_peephole,0) Optimization
983 Enable machine specific peephole optimizations
985 fpeephole2
986 Common Report Var(flag_peephole2) Optimization
987 Enable an RTL peephole pass before sched2
989 fPIC
990 Common Report Var(flag_pic,2)
991 Generate position-independent code if possible (large mode)
993 fPIE
994 Common Report Var(flag_pie,2)
995 Generate position-independent code for executables if possible (large mode)
997 fpic
998 Common Report Var(flag_pic,1) VarExists
999 Generate position-independent code if possible (small mode)
1001 fpie
1002 Common Report Var(flag_pie,1) VarExists
1003 Generate position-independent code for executables if possible (small mode)
1005 fplugin=
1006 Common Joined RejectNegative
1007 Specify a plugin to load
1009 fplugin-arg-
1010 Common Joined RejectNegative
1011 -fplugin-arg-<name>-<key>[=<value>]     Specify argument <key>=<value> for plugin <name>
1013 fpredictive-commoning
1014 Common Report Var(flag_predictive_commoning) Optimization
1015 Run predictive commoning optimization.
1017 fprefetch-loop-arrays
1018 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
1019 Generate prefetch instructions, if available, for arrays in loops
1021 fprofile
1022 Common Report Var(profile_flag)
1023 Enable basic program profiling code
1025 fprofile-arcs
1026 Common Report Var(profile_arc_flag)
1027 Insert arc-based program profiling code
1029 fprofile-dir=
1030 Common Joined RejectNegative
1031 Set the top-level directory for storing the profile data.
1032 The default is 'pwd'.
1034 fprofile-correction
1035 Common Report Var(flag_profile_correction)
1036 Enable correction of flow inconsistent profile data input
1038 fprofile-generate
1039 Common
1040 Enable common options for generating profile info for profile feedback directed optimizations
1042 fprofile-generate=
1043 Common Joined RejectNegative
1044 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1046 fprofile-use
1047 Common Var(flag_profile_use)
1048 Enable common options for performing profile feedback directed optimizations
1050 fprofile-use=
1051 Common Joined RejectNegative
1052 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1054 fprofile-values
1055 Common Report Var(flag_profile_values)
1056 Insert code to profile values of expressions
1058 frandom-seed
1059 Common
1061 frandom-seed=
1062 Common Joined RejectNegative
1063 -frandom-seed=<string>  Make compile reproducible using <string>
1065 ; This switch causes the command line that was used to create an
1066 ; object file to be recorded into the object file.  The exact format
1067 ; of this recording is target and binary file format dependent.
1068 ; It is related to the -fverbose-asm switch, but that switch only
1069 ; records information in the assembler output file as comments, so
1070 ; they never reach the object file.
1071 frecord-gcc-switches
1072 Common Report Var(flag_record_gcc_switches)
1073 Record gcc command line switches in the object file.
1075 freg-struct-return
1076 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
1077 Return small aggregates in registers
1079 fregmove
1080 Common Report Var(flag_regmove) Optimization
1081 Enables a register move optimization
1083 frename-registers
1084 Common Report Var(flag_rename_registers) Init(2) Optimization
1085 Perform a register renaming optimization pass
1087 freorder-blocks
1088 Common Report Var(flag_reorder_blocks) Optimization
1089 Reorder basic blocks to improve code placement
1091 freorder-blocks-and-partition
1092 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1093 Reorder basic blocks and partition into hot and cold sections
1095 freorder-functions
1096 Common Report Var(flag_reorder_functions) Optimization
1097 Reorder functions to improve code placement
1099 frerun-cse-after-loop
1100 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
1101 Add a common subexpression elimination pass after loop optimizations
1103 frerun-loop-opt
1104 Common Ignore
1105 Does nothing.  Preserved for backward compatibility.
1107 frounding-math
1108 Common Report Var(flag_rounding_math) Optimization
1109 Disable optimizations that assume default FP rounding behavior
1111 fsched-interblock
1112 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1113 Enable scheduling across basic blocks
1115 fsched-pressure
1116 Common Report Var(flag_sched_pressure) Init(0) Optimization
1117 Enable register pressure sensitive insn scheduling
1119 fsched-spec
1120 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1121 Allow speculative motion of non-loads
1123 fsched-spec-load
1124 Common Report Var(flag_schedule_speculative_load) Optimization
1125 Allow speculative motion of some loads
1127 fsched-spec-load-dangerous
1128 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1129 Allow speculative motion of more loads
1131 fsched-verbose=
1132 Common RejectNegative Joined
1133 -fsched-verbose=<number>        Set the verbosity level of the scheduler
1135 fsched2-use-superblocks
1136 Common Report Var(flag_sched2_use_superblocks) Optimization
1137 If scheduling post reload, do superblock scheduling
1139 fsched2-use-traces
1140 Common Ignore
1141 Does nothing.  Preserved for backward compatibility.
1143 fschedule-insns
1144 Common Report Var(flag_schedule_insns) Optimization
1145 Reschedule instructions before register allocation
1147 fschedule-insns2
1148 Common Report Var(flag_schedule_insns_after_reload) Optimization
1149 Reschedule instructions after register allocation
1151 ; This flag should be on when a target implements non-trivial
1152 ; scheduling hooks, maybe saving some information for its own sake.
1153 ; On IA64, for example, this is used for correct bundling. 
1154 fselective-scheduling
1155 Common Report Var(flag_selective_scheduling) Optimization
1156 Schedule instructions using selective scheduling algorithm
1158 fselective-scheduling2
1159 Common Report Var(flag_selective_scheduling2) Optimization 
1160 Run selective scheduling after reload
1162 fsel-sched-pipelining
1163 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1164 Perform software pipelining of inner loops during selective scheduling
1166 fsel-sched-pipelining-outer-loops
1167 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1168 Perform software pipelining of outer loops during selective scheduling
1170 fsel-sched-reschedule-pipelined
1171 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1172 Reschedule pipelined regions without pipelining
1174 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1175 ; of stalled insns into the ready list.
1176 fsched-stalled-insns
1177 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1178 Allow premature scheduling of queued insns
1180 fsched-stalled-insns=
1181 Common RejectNegative Joined UInteger
1182 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled
1184 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1185 ; be examined for a dependency on a stalled insn that is candidate for
1186 ; premature removal from the queue of stalled insns into the ready list (has
1187 ; an effect only if the flag 'sched_stalled_insns' is set).
1188 fsched-stalled-insns-dep
1189 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1190 Set dependence distance checking in premature scheduling of queued insns
1192 fsched-stalled-insns-dep=
1193 Common RejectNegative Joined UInteger
1194 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns
1196 fsched-group-heuristic
1197 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1198 Enable the group heuristic in the scheduler
1200 fsched-critical-path-heuristic
1201 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1202 Enable the critical path heuristic in the scheduler
1204 fsched-spec-insn-heuristic
1205 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1206 Enable the speculative instruction heuristic in the scheduler
1208 fsched-rank-heuristic
1209 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1210 Enable the rank heuristic in the scheduler
1212 fsched-last-insn-heuristic
1213 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1214 Enable the last instruction heuristic in the scheduler
1216 fsched-dep-count-heuristic
1217 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1218 Enable the dependent count heuristic in the scheduler
1220 fsection-anchors
1221 Common Report Var(flag_section_anchors) Optimization
1222 Access data in the same section from shared anchor points
1224 fsee
1225 Common Ignore
1226 Does nothing.  Preserved for backward compatibility.
1228 fzee
1229 Common Report Var(flag_zee) Init(0)
1230 Eliminate redundant zero extensions on targets that support implicit extensions.
1232 fshow-column
1233 Common Report Var(flag_show_column) Init(1)
1234 Show column numbers in diagnostics, when available.  Default on
1236 fsignaling-nans
1237 Common Report Var(flag_signaling_nans) Optimization
1238 Disable optimizations observable by IEEE signaling NaNs
1240 fsigned-zeros
1241 Common Report Var(flag_signed_zeros) Init(1) Optimization
1242 Disable floating point optimizations that ignore the IEEE signedness of zero
1244 fsingle-precision-constant
1245 Common Report Var(flag_single_precision_constant) Optimization
1246 Convert floating point constants to single precision constants
1248 fsplit-ivs-in-unroller
1249 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1250 Split lifetimes of induction variables when loops are unrolled
1252 fsplit-wide-types
1253 Common Report Var(flag_split_wide_types) Optimization
1254 Split wide types into independent registers
1256 fvariable-expansion-in-unroller
1257 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1258 Apply variable expansion when loops are unrolled
1260 fstack-check=
1261 Common Report RejectNegative Joined
1262 -fstack-check=[no|generic|specific]     Insert stack checking code into the program
1264 fstack-check
1265 Common Alias(fstack-check=, specific, no)
1266 Insert stack checking code into the program.  Same as -fstack-check=specific
1268 fstack-limit
1269 Common
1271 fstack-limit-register=
1272 Common RejectNegative Joined
1273 -fstack-limit-register=<register>       Trap if the stack goes past <register>
1275 fstack-limit-symbol=
1276 Common RejectNegative Joined
1277 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>
1279 fstack-protector
1280 Common Report Var(flag_stack_protect, 1)
1281 Use propolice as a stack protection method
1283 fstack-protector-all
1284 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1285 Use a stack protection method for every function
1287 fstack-usage
1288 Common RejectNegative Var(flag_stack_usage)
1289 Output stack usage information on a per-function basis
1291 fstrength-reduce
1292 Common Ignore
1293 Does nothing.  Preserved for backward compatibility.
1295 ; Nonzero if we should do (language-dependent) alias analysis.
1296 ; Typically, this analysis will assume that expressions of certain
1297 ; types do not alias expressions of certain other types.  Only used
1298 ; if alias analysis (in general) is enabled.
1299 fstrict-aliasing
1300 Common Report Var(flag_strict_aliasing) Optimization
1301 Assume strict aliasing rules apply
1303 fstrict-overflow
1304 Common Report Var(flag_strict_overflow)
1305 Treat signed overflow as undefined
1307 fsyntax-only
1308 Common Report Var(flag_syntax_only)
1309 Check for syntax errors, then stop
1311 ftest-coverage
1312 Common Report Var(flag_test_coverage)
1313 Create data files needed by \"gcov\"
1315 fthread-jumps
1316 Common Report Var(flag_thread_jumps) Optimization
1317 Perform jump threading optimizations
1319 ftime-report
1320 Common Report Var(time_report)
1321 Report the time taken by each compiler pass
1323 ftls-model=
1324 Common Joined RejectNegative
1325 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model
1327 ftoplevel-reorder
1328 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1329 Reorder top level functions, variables, and asms
1331 ftracer
1332 Common Report Var(flag_tracer)
1333 Perform superblock formation via tail duplication
1335 ; Zero means that floating-point math operations cannot generate a
1336 ; (user-visible) trap.  This is the case, for example, in nonstop
1337 ; IEEE 754 arithmetic.
1338 ftrapping-math
1339 Common Report Var(flag_trapping_math) Init(1) Optimization
1340 Assume floating-point operations can trap
1342 ftrapv
1343 Common Report Var(flag_trapv) Optimization
1344 Trap for signed overflow in addition, subtraction and multiplication
1346 ftree-ccp
1347 Common Report Var(flag_tree_ccp) Optimization
1348 Enable SSA-CCP optimization on trees
1350 ftree-bit-ccp
1351 Common Report Var(flag_tree_bit_ccp) Optimization
1352 Enable SSA-BIT-CCP optimization on trees
1354 ftree-store-ccp
1355 Common Ignore
1356 Does nothing.  Preserved for backward compatibility.
1358 ftree-ch
1359 Common Report Var(flag_tree_ch) Optimization
1360 Enable loop header copying on trees
1362 ftree-copyrename
1363 Common Report Var(flag_tree_copyrename) Optimization
1364 Replace SSA temporaries with better names in copies
1366 ftree-copy-prop
1367 Common Report Var(flag_tree_copy_prop) Optimization
1368 Enable copy propagation on trees
1370 ftree-store-copy-prop
1371 Common Ignore
1372 Does nothing.  Preserved for backward compatibility.
1374 ftree-cselim
1375 Common Report Var(flag_tree_cselim) Init(2) Optimization
1376 Transform condition stores into unconditional ones
1378 ftree-switch-conversion
1379 Common Report Var(flag_tree_switch_conversion) Optimization
1380 Perform conversions of switch initializations.
1382 ftree-dce
1383 Common Report Var(flag_tree_dce) Optimization
1384 Enable SSA dead code elimination optimization on trees
1386 ftree-dominator-opts
1387 Common Report Var(flag_tree_dom) Optimization
1388 Enable dominator optimizations
1390 ftree-dse
1391 Common Report Var(flag_tree_dse) Optimization
1392 Enable dead store elimination
1394 ftree-forwprop
1395 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1396 Enable forward propagation on trees
1398 ftree-fre
1399 Common Report Var(flag_tree_fre) Optimization
1400 Enable Full Redundancy Elimination (FRE) on trees
1402 ftree-loop-distribution
1403 Common Report Var(flag_tree_loop_distribution) Optimization
1404 Enable loop distribution on trees
1406 ftree-loop-distribute-patterns
1407 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1408 Enable loop distribution for patterns transformed into a library call
1410 ftree-loop-im
1411 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1412 Enable loop invariant motion on trees
1414 ftree-loop-linear
1415 Common Report Var(flag_tree_loop_linear) Optimization
1416 Enable linear loop transforms on trees
1418 ftree-loop-ivcanon
1419 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1420 Create canonical induction variables in loops
1422 ftree-loop-optimize
1423 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1424 Enable loop optimizations on tree level
1426 ftree-parallelize-loops=
1427 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
1428 Enable automatic parallelization of loops
1430 ftree-phiprop
1431 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1432 Enable hoisting loads from conditional pointers.
1434 ftree-pre
1435 Common Report Var(flag_tree_pre) Optimization
1436 Enable SSA-PRE optimization on trees
1438 ftree-pta
1439 Common Report Var(flag_tree_pta) Init(1) Optimization
1440 Perform function-local points-to analysis on trees.
1442 ftree-reassoc
1443 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1444 Enable reassociation on tree level
1446 ftree-salias
1447 Common Ignore
1448 Does nothing.  Preserved for backward compatibility.
1450 ftree-sink
1451 Common Report Var(flag_tree_sink) Optimization
1452 Enable SSA code sinking on trees
1454 ftree-sra
1455 Common Report Var(flag_tree_sra) Optimization
1456 Perform scalar replacement of aggregates
1458 ftree-ter
1459 Common Report Var(flag_tree_ter) Init(1) Optimization
1460 Replace temporary expressions in the SSA->normal pass
1462 ftree-lrs
1463 Common Report Var(flag_tree_live_range_split) Optimization
1464 Perform live range splitting during the SSA->normal pass
1466 ftree-vrp
1467 Common Report Var(flag_tree_vrp) Init(0) Optimization
1468 Perform Value Range Propagation on trees
1470 funit-at-a-time
1471 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1472 Compile whole compilation unit at a time
1474 funroll-loops
1475 Common Report Var(flag_unroll_loops) Optimization
1476 Perform loop unrolling when iteration count is known
1478 funroll-all-loops
1479 Common Report Var(flag_unroll_all_loops) Optimization
1480 Perform loop unrolling for all loops
1482 ; Nonzero means that loop optimizer may assume that the induction variables
1483 ; that control loops do not overflow and that the loops with nontrivial
1484 ; exit condition are not infinite
1485 funsafe-loop-optimizations
1486 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1487 Allow loop optimizations to assume that the loops behave in normal way
1489 fassociative-math
1490 Common Report Var(flag_associative_math)
1491 Allow optimization for floating-point arithmetic which may change the
1492 result of the operation due to rounding.
1494 freciprocal-math
1495 Common Report Var(flag_reciprocal_math)
1496 Same as -fassociative-math for expressions which include division.
1498 ; Nonzero means that unsafe floating-point math optimizations are allowed
1499 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
1500 ; are allowed to assume that their arguments and results are "normal"
1501 ; (e.g., nonnegative for SQRT).
1502 funsafe-math-optimizations
1503 Common Report Var(flag_unsafe_math_optimizations) Optimization
1504 Allow math optimizations that may violate IEEE or ISO standards
1506 funswitch-loops
1507 Common Report Var(flag_unswitch_loops) Optimization
1508 Perform loop unswitching
1510 funwind-tables
1511 Common Report Var(flag_unwind_tables) Optimization
1512 Just generate unwind tables for exception handling
1514 fuse-linker-plugin
1515 Common Undocumented
1517 fvar-tracking
1518 Common Report Var(flag_var_tracking) VarExists Optimization
1519 Perform variable tracking
1521 fvar-tracking-assignments
1522 Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1523 Perform variable tracking by annotating assignments
1525 fvar-tracking-assignments-toggle
1526 Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1527 Toggle -fvar-tracking-assignments
1529 fvar-tracking-uninit
1530 Common Report Var(flag_var_tracking_uninit) Optimization
1531 Perform variable tracking and also tag variables that are uninitialized
1533 ftree-vectorize
1534 Common Report Var(flag_tree_vectorize) Optimization
1535 Enable loop vectorization on trees
1537 ftree-slp-vectorize
1538 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1539 Enable basic block vectorization (SLP) on trees
1541 fvect-cost-model
1542 Common Report Var(flag_vect_cost_model) Optimization
1543 Enable use of cost model in vectorization
1545 ftree-vect-loop-version
1546 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1547 Enable loop versioning when doing loop vectorization on trees
1549 ftree-vectorizer-verbose=
1550 Common RejectNegative Joined
1551 -ftree-vectorizer-verbose=<number>      Set the verbosity level of the vectorizer
1553 ftree-scev-cprop
1554 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1555 Enable copy propagation of scalar-evolution information.
1557 ; -fverbose-asm causes extra commentary information to be produced in
1558 ; the generated assembly code (to make it more readable).  This option
1559 ; is generally only of use to those who actually need to read the
1560 ; generated assembly code (perhaps while debugging the compiler itself).
1561 ; -fno-verbose-asm, the default, causes the extra information
1562 ; to not be added and is useful when comparing two assembler files.
1563 fverbose-asm
1564 Common Report Var(flag_verbose_asm)
1565 Add extra commentary to assembler output
1567 fvisibility=
1568 Common Joined RejectNegative
1569 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility
1572 fvpt
1573 Common Report Var(flag_value_profile_transformations) Optimization
1574 Use expression value profiles in optimizations
1576 fweb
1577 Common Report Var(flag_web) Init(2) Optimization
1578 Construct webs and split unrelated uses of single variable
1580 fwhopr
1581 Common
1582 Enable partitioned link-time optimization
1584 fwhopr=
1585 Common RejectNegative Joined Var(flag_whopr)
1586 Partitioned link-time optimization with number of parallel jobs or jobserver.
1588 ftree-builtin-call-dce
1589 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1590 Enable conditional dead code elimination for builtin calls
1592 fwhole-program
1593 Common Report Var(flag_whole_program) Init(0) Optimization
1594 Perform whole program optimizations
1596 fwrapv
1597 Common Report Var(flag_wrapv) Optimization
1598 Assume signed arithmetic overflow wraps around
1600 fzero-initialized-in-bss
1601 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1602 Put zero initialized data in the bss section
1605 Common JoinedOrMissing
1606 Generate debug information in default format
1608 gcoff
1609 Common JoinedOrMissing Negative(gdwarf-)
1610 Generate debug information in COFF format
1612 gdwarf-
1613 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1614 Generate debug information in DWARF v2 (or later) format
1616 ggdb
1617 Common JoinedOrMissing
1618 Generate debug information in default extended format
1620 gstabs
1621 Common JoinedOrMissing Negative(gstabs+)
1622 Generate debug information in STABS format
1624 gstabs+
1625 Common JoinedOrMissing Negative(gvms)
1626 Generate debug information in extended STABS format
1628 gno-strict-dwarf
1629 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1630 Emit DWARF additions beyond selected version
1632 gstrict-dwarf
1633 Common Report RejectNegative Var(dwarf_strict,1) VarExists
1634 Don't emit DWARF additions beyond selected version
1636 gtoggle
1637 Common Report Var(flag_gtoggle)
1638 Toggle debug information generation
1640 gvms
1641 Common JoinedOrMissing Negative(gxcoff)
1642 Generate debug information in VMS format
1644 gxcoff
1645 Common JoinedOrMissing Negative(gxcoff+)
1646 Generate debug information in XCOFF format
1648 gxcoff+
1649 Common JoinedOrMissing Negative(gcoff)
1650 Generate debug information in extended XCOFF format
1652 iplugindir=
1653 Common Joined Var(plugindir_string) Init(0)
1654 -iplugindir=<dir>       Set <dir> to be the default plugin directory
1657 Driver Joined Separate
1659 no-canonical-prefixes
1660 Driver
1662 nodefaultlibs
1663 Driver
1665 nostdlib
1666 Driver
1669 Common Driver Joined Separate MissingArgError(missing filename after %qs)
1670 -o <file>       Place output into <file>
1673 Common Var(profile_flag)
1674 Enable function profiling
1676 pass-exit-codes
1677 Driver Var(pass_exit_codes)
1679 pedantic
1680 Common Var(pedantic)
1681 Issue warnings needed for strict compliance to the standard
1683 pedantic-errors
1684 Common
1685 Like -pedantic but issue them as errors
1688 Driver
1690 pipe
1691 Driver Var(use_pipes)
1693 print-file-name=
1694 Driver JoinedOrMissing Var(print_file_name)
1696 print-libgcc-file-name
1697 Driver
1699 print-multi-directory
1700 Driver Var(print_multi_directory)
1702 print-multi-lib
1703 Driver Var(print_multi_lib)
1705 print-multi-os-directory
1706 Driver Var(print_multi_os_directory)
1708 print-prog-name=
1709 Driver JoinedOrMissing Var(print_prog_name)
1711 print-search-dirs
1712 Driver Var(print_search_dirs)
1714 print-sysroot
1715 Driver Var(print_sysroot)
1717 print-sysroot-headers-suffix
1718 Driver Var(print_sysroot_headers_suffix)
1720 quiet
1721 Common Var(quiet_flag) RejectDriver
1722 Do not display functions compiled or elapsed time
1724 save-temps
1725 Driver
1727 save-temps=
1728 Driver Joined
1730 time
1731 Driver Var(report_times)
1733 time=
1734 Driver JoinedOrMissing
1737 Driver
1739 version
1740 Common Var(version_flag) RejectDriver
1741 Display the compiler's version
1744 Common Var(inhibit_warnings)
1745 Suppress warnings
1747 wrapper
1748 Driver Separate Var(wrapper_string)
1751 Driver Joined Separate
1753 shared
1754 Common RejectNegative Negative(pie)
1755 Create a shared library
1757 shared-libgcc
1758 Driver
1760 specs
1761 Driver Separate Alias(specs=)
1763 specs=
1764 Driver Joined
1766 static
1767 Driver
1769 static-libgcc
1770 Driver
1772 static-libgfortran
1773 Driver
1774 ; Documented for Fortran, but always accepted by driver.
1776 static-libstdc++
1777 Driver
1780 Common RejectNegative Negative(shared)
1781 Create a position independent executable
1783 ; This comment is to ensure we retain the blank line above.