* opts.h (struct cl_option): Add warn_message field.
[official-gcc.git] / gcc / common.opt
blobc5be49ea15949752da21627b6c430543a37d53af
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 Common RejectNegative Joined Var(flag_dump_final_insns)
548 -fdump-final-insns=filename     Dump to filename the insns at the end of translation
550 fdump-noaddr
551 Common Report Var(flag_dump_noaddr)
552 Suppress output of addresses in debugging dumps
554 fdump-unnumbered
555 Common Report Var(flag_dump_unnumbered) VarExists
556 Suppress output of instruction numbers, line number notes and addresses in debugging dumps
558 fdump-unnumbered-links
559 Common Report Var(flag_dump_unnumbered_links) VarExists
560 Suppress output of previous and next insn numbers in debugging dumps
562 fdwarf2-cfi-asm
563 Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
564 Enable CFI tables via GAS assembler directives.
566 fearly-inlining
567 Common Report Var(flag_early_inlining) Init(1) Optimization
568 Perform early inlining
570 feliminate-dwarf2-dups
571 Common Report Var(flag_eliminate_dwarf2_dups)
572 Perform DWARF2 duplicate elimination
574 fipa-sra
575 Common Report Var(flag_ipa_sra) Init(0) Optimization
576 Perform interprocedural reduction of aggregates
578 feliminate-unused-debug-symbols
579 Common Report Var(flag_debug_only_used_symbols)
580 Perform unused type elimination in debug info
582 feliminate-unused-debug-types
583 Common Report Var(flag_eliminate_unused_debug_types) Init(1)
584 Perform unused type elimination in debug info
586 femit-class-debug-always
587 Common Report Var(flag_emit_class_debug_always) Init(0)
588 Do not suppress C++ class debug information.
590 fenable-icf-debug
591 Common Report Var(flag_enable_icf_debug)
592 Generate debug information to support Identical Code Folding (ICF)
594 fexceptions
595 Common Report Var(flag_exceptions) Optimization
596 Enable exception handling
598 fexpensive-optimizations
599 Common Report Var(flag_expensive_optimizations) Optimization
600 Perform a number of minor, expensive optimizations
602 fexcess-precision=
603 Common Joined RejectNegative
604 -fexcess-precision=[fast|standard]      Specify handling of excess floating-point precision
606 ffast-math
607 Common
609 ffinite-math-only
610 Common Report Var(flag_finite_math_only) Optimization
611 Assume no NaNs or infinities are generated
613 ffixed-
614 Common Joined RejectNegative
615 -ffixed-<register>      Mark <register> as being unavailable to the compiler
617 ffloat-store
618 Common Report Var(flag_float_store) Optimization
619 Don't allocate floats and doubles in extended-precision registers
621 fforce-addr
622 Common Ignore
623 Does nothing.  Preserved for backward compatibility.
625 fforward-propagate
626 Common Report Var(flag_forward_propagate) Optimization
627 Perform a forward propagation pass on RTL
629 ; Nonzero means don't put addresses of constant functions in registers.
630 ; Used for compiling the Unix kernel, where strange substitutions are
631 ; done on the assembly output.
632 ffunction-cse
633 Common Report Var(flag_no_function_cse,0)
634 Allow function addresses to be held in registers
636 ffunction-sections
637 Common Report Var(flag_function_sections)
638 Place each function into its own section
640 fgcse
641 Common Report Var(flag_gcse) Optimization
642 Perform global common subexpression elimination
644 fgcse-lm
645 Common Report Var(flag_gcse_lm) Init(1) Optimization
646 Perform enhanced load motion during global common subexpression elimination
648 fgcse-sm
649 Common Report Var(flag_gcse_sm) Init(0) Optimization
650 Perform store motion after global common subexpression elimination
652 fgcse-las
653 Common Report Var(flag_gcse_las) Init(0) Optimization
654 Perform redundant load after store elimination in global common subexpression
655 elimination
657 fgcse-after-reload
658 Common Report Var(flag_gcse_after_reload) Optimization
659 Perform global common subexpression elimination after register allocation
660 has finished
662 ; This option is not documented yet as its semantics will change.
663 fgraphite
664 Common Report Var(flag_graphite)
665 Enable in and out of Graphite representation
667 fgraphite-identity
668 Common Report Var(flag_graphite_identity) Optimization
669 Enable Graphite Identity transformation
671 floop-parallelize-all
672 Common Report Var(flag_loop_parallelize_all) Optimization
673 Mark all loops as parallel
675 floop-strip-mine
676 Common Report Var(flag_loop_strip_mine) Optimization
677 Enable Loop Strip Mining transformation
679 floop-interchange
680 Common Report Var(flag_loop_interchange) Optimization
681 Enable Loop Interchange transformation
683 floop-block
684 Common Report Var(flag_loop_block) Optimization
685 Enable Loop Blocking transformation
687 fstrict-volatile-bitfields
688 Common Report Var(flag_strict_volatile_bitfields) Init(-1)
689 Force bitfield accesses to match their type width
691 fguess-branch-probability
692 Common Report Var(flag_guess_branch_prob) Optimization
693 Enable guessing of branch probabilities
695 ; Nonzero means ignore `#ident' directives.  0 means handle them.
696 ; Generate position-independent code for executables if possible
697 ; On SVR4 targets, it also controls whether or not to emit a
698 ; string identifying the compiler.
699 fident
700 Common Report Var(flag_no_ident,0)
701 Process #ident directives
703 fif-conversion
704 Common Report Var(flag_if_conversion) Optimization
705 Perform conversion of conditional jumps to branchless equivalents
707 fif-conversion2
708 Common Report Var(flag_if_conversion2) Optimization
709 Perform conversion of conditional jumps to conditional execution
711 ftree-loop-if-convert
712 Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
713 Convert conditional jumps in innermost loops to branchless equivalents
715 ftree-loop-if-convert-stores
716 Common Report Var(flag_tree_loop_if_convert_stores) Optimization
717 Also if-convert conditional jumps containing memory writes
719 ; -finhibit-size-directive inhibits output of .size for ELF.
720 ; This is used only for compiling crtstuff.c,
721 ; and it may be extended to other effects
722 ; needed for crtstuff.c on other systems.
723 finhibit-size-directive
724 Common Report Var(flag_inhibit_size_directive)
725 Do not generate .size directives
727 findirect-inlining
728 Common Report Var(flag_indirect_inlining)
729 Perform indirect inlining
731 ; Nonzero means that functions declared `inline' will be treated
732 ; as `static'.  Prevents generation of zillions of copies of unused
733 ; static inline functions; instead, `inlines' are written out
734 ; only when actually used.  Used in conjunction with -g.  Also
735 ; does the right thing with #pragma interface.
736 finline
737 Common Report Var(flag_no_inline,0) Init(0)
738 Pay attention to the \"inline\" keyword
740 finline-small-functions
741 Common Report Var(flag_inline_small_functions) Optimization
742 Integrate simple functions into their callers when code size is known to not growth
744 finline-functions
745 Common Report Var(flag_inline_functions) Optimization
746 Integrate simple functions into their callers
748 finline-functions-called-once
749 Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
750 Integrate functions called once into their callers
752 finline-limit-
753 Common RejectNegative Joined Alias(finline-limit=)
755 finline-limit=
756 Common RejectNegative Joined UInteger
757 -finline-limit=<number> Limit the size of inlined functions to <number>
759 finstrument-functions
760 Common Report Var(flag_instrument_function_entry_exit)
761 Instrument function entry and exit with profiling calls
763 finstrument-functions-exclude-function-list=
764 Common RejectNegative Joined
765 -finstrument-functions-exclude-function-list=name,...  Do not instrument listed functions
767 finstrument-functions-exclude-file-list=
768 Common RejectNegative Joined
769 -finstrument-functions-exclude-file-list=filename,...  Do not instrument functions listed in files
771 fipa-cp
772 Common Report Var(flag_ipa_cp) Optimization
773 Perform Interprocedural constant propagation
775 fipa-cp-clone
776 Common Report Var(flag_ipa_cp_clone) Optimization
777 Perform cloning to make Interprocedural constant propagation stronger
779 fipa-profile
780 Common Report Var(flag_ipa_profile) Init(0) Optimization
781 Perform interprocedural profile propagation
783 fipa-pta
784 Common Report Var(flag_ipa_pta) Init(0) Optimization
785 Perform interprocedural points-to analysis
787 fipa-pure-const
788 Common Report Var(flag_ipa_pure_const) Init(0) Optimization
789 Discover pure and const functions
791 fipa-reference
792 Common Report Var(flag_ipa_reference) Init(0) Optimization
793 Discover readonly and non addressable static variables
795 fipa-matrix-reorg
796 Common Report Var(flag_ipa_matrix_reorg) Optimization
797 Perform matrix layout flattening and transposing based
798 on profiling information.
800 fipa-struct-reorg
801 Common Report Var(flag_ipa_struct_reorg)
802 Perform structure layout optimizations based
803 on profiling information.
805 fira-algorithm=
806 Common Joined RejectNegative
807 -fira-algorithm=[CB|priority] Set the used IRA algorithm
809 fira-region=
810 Common Joined RejectNegative
811 -fira-region=[one|all|mixed] Set regions for IRA
813 fira-coalesce
814 Common Report Var(flag_ira_coalesce) Init(0)
815 Do optimistic coalescing.
817 fira-loop-pressure
818 Common Report Var(flag_ira_loop_pressure)
819 Use IRA based register pressure calculation
820 in RTL loop optimizations.
822 fira-share-save-slots
823 Common Report Var(flag_ira_share_save_slots) Init(1)
824 Share slots for saving different hard registers.
826 fira-share-spill-slots
827 Common Report Var(flag_ira_share_spill_slots) Init(1)
828 Share stack slots for spilled pseudo-registers.
830 fira-verbose=
831 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
832 -fira-verbose=<number>  Control IRA's level of diagnostic messages.
834 fivopts
835 Common Report Var(flag_ivopts) Init(1) Optimization
836 Optimize induction variables on trees
838 fjump-tables
839 Common Var(flag_jump_tables) Init(1) Optimization
840 Use jump tables for sufficiently large switch statements
842 fkeep-inline-functions
843 Common Report Var(flag_keep_inline_functions)
844 Generate code for functions even if they are fully inlined
846 fkeep-static-consts
847 Common Report Var(flag_keep_static_consts) Init(1)
848 Emit static const variables even if they are not used
850 fleading-underscore
851 Common Report Var(flag_leading_underscore) Init(-1)
852 Give external symbols a leading underscore
854 floop-optimize
855 Common Ignore
856 Does nothing.  Preserved for backward compatibility.
858 flto
859 Common Var(flag_lto)
860 Enable link-time optimization.
862 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
863 flto-compression-level=
864 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
865 -flto-compression-level=<number>        Use zlib compression level <number> for IL
867 flto-report
868 Common Report Var(flag_lto_report) Init(0) Optimization
869 Report various link-time optimization statistics
871 fmath-errno
872 Common Report Var(flag_errno_math) Init(1) Optimization
873 Set errno after built-in math functions
875 fmem-report
876 Common Report Var(mem_report)
877 Report on permanent memory allocation
879 ; This will attempt to merge constant section constants, if 1 only
880 ; string constants and constants from constant pool, if 2 also constant
881 ; variables.
882 fmerge-all-constants
883 Common Report Var(flag_merge_constants,2) Init(1) Optimization
884 Attempt to merge identical constants and constant variables
886 fmerge-constants
887 Common Report Var(flag_merge_constants,1) VarExists Optimization
888 Attempt to merge identical constants across compilation units
890 fmerge-debug-strings
891 Common Report Var(flag_merge_debug_strings) Init(1)
892 Attempt to merge identical debug strings across compilation units
894 fmessage-length=
895 Common RejectNegative Joined UInteger
896 -fmessage-length=<number>       Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping
898 fmodulo-sched
899 Common Report Var(flag_modulo_sched) Optimization
900 Perform SMS based modulo scheduling before the first scheduling pass
902 fmodulo-sched-allow-regmoves
903 Common Report Var(flag_modulo_sched_allow_regmoves)
904 Perform SMS based modulo scheduling with register moves allowed
906 fmove-loop-invariants
907 Common Report Var(flag_move_loop_invariants) Init(1) Optimization
908 Move loop invariant computations out of loops
910 fmudflap
911 Common RejectNegative Report Var(flag_mudflap)
912 Add mudflap bounds-checking instrumentation for single-threaded program
914 fmudflapth
915 Common RejectNegative Report VarExists Var(flag_mudflap,2)
916 Add mudflap bounds-checking instrumentation for multi-threaded program
918 fmudflapir
919 Common RejectNegative Report Var(flag_mudflap_ignore_reads)
920 Ignore read operations when inserting mudflap instrumentation
922 fdce
923 Common Var(flag_dce) Init(1) Optimization
924 Use the RTL dead code elimination pass
926 fdse
927 Common Var(flag_dse) Init(1) Optimization
928 Use the RTL dead store elimination pass
930 freschedule-modulo-scheduled-loops
931 Common Report Var(flag_resched_modulo_sched) Optimization
932 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
934 fnon-call-exceptions
935 Common Report Var(flag_non_call_exceptions) Optimization
936 Support synchronous non-call exceptions
938 fomit-frame-pointer
939 Common Report Var(flag_omit_frame_pointer) Optimization
940 When possible do not generate stack frames
942 foptimize-register-move
943 Common Report Var(flag_regmove) Optimization
944 Do the full register move optimization pass
946 foptimize-sibling-calls
947 Common Report Var(flag_optimize_sibling_calls) Optimization
948 Optimize sibling and tail recursive calls
950 fpartial-inlining
951 Common Report Var(flag_partial_inlining)
952 Perform partial inlining
954 fpre-ipa-mem-report
955 Common Report Var(pre_ipa_mem_report)
956 Report on memory allocation before interprocedural optimization
958 fpost-ipa-mem-report
959 Common Report Var(post_ipa_mem_report)
960 Report on memory allocation before interprocedural optimization
962 fpack-struct
963 Common Report Var(flag_pack_struct) Optimization
964 Pack structure members together without holes
966 fpack-struct=
967 Common RejectNegative Joined UInteger Optimization
968 -fpack-struct=<number>  Set initial maximum structure member alignment
970 fpcc-struct-return
971 Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
972 Return small aggregates in memory, not registers
974 fpeel-loops
975 Common Report Var(flag_peel_loops) Optimization
976 Perform loop peeling
978 fpeephole
979 Common Report Var(flag_no_peephole,0) Optimization
980 Enable machine specific peephole optimizations
982 fpeephole2
983 Common Report Var(flag_peephole2) Optimization
984 Enable an RTL peephole pass before sched2
986 fPIC
987 Common Report Var(flag_pic,2)
988 Generate position-independent code if possible (large mode)
990 fPIE
991 Common Report Var(flag_pie,2)
992 Generate position-independent code for executables if possible (large mode)
994 fpic
995 Common Report Var(flag_pic,1) VarExists
996 Generate position-independent code if possible (small mode)
998 fpie
999 Common Report Var(flag_pie,1) VarExists
1000 Generate position-independent code for executables if possible (small mode)
1002 fplugin=
1003 Common Joined RejectNegative
1004 Specify a plugin to load
1006 fplugin-arg-
1007 Common Joined RejectNegative
1008 -fplugin-arg-<name>-<key>[=<value>]     Specify argument <key>=<value> for plugin <name>
1010 fpredictive-commoning
1011 Common Report Var(flag_predictive_commoning) Optimization
1012 Run predictive commoning optimization.
1014 fprefetch-loop-arrays
1015 Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
1016 Generate prefetch instructions, if available, for arrays in loops
1018 fprofile
1019 Common Report Var(profile_flag)
1020 Enable basic program profiling code
1022 fprofile-arcs
1023 Common Report Var(profile_arc_flag)
1024 Insert arc-based program profiling code
1026 fprofile-dir=
1027 Common Joined RejectNegative
1028 Set the top-level directory for storing the profile data.
1029 The default is 'pwd'.
1031 fprofile-correction
1032 Common Report Var(flag_profile_correction)
1033 Enable correction of flow inconsistent profile data input
1035 fprofile-generate
1036 Common
1037 Enable common options for generating profile info for profile feedback directed optimizations
1039 fprofile-generate=
1040 Common Joined RejectNegative
1041 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1043 fprofile-use
1044 Common Var(flag_profile_use)
1045 Enable common options for performing profile feedback directed optimizations
1047 fprofile-use=
1048 Common Joined RejectNegative
1049 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1051 fprofile-values
1052 Common Report Var(flag_profile_values)
1053 Insert code to profile values of expressions
1055 frandom-seed
1056 Common
1058 frandom-seed=
1059 Common Joined RejectNegative
1060 -frandom-seed=<string>  Make compile reproducible using <string>
1062 ; This switch causes the command line that was used to create an
1063 ; object file to be recorded into the object file.  The exact format
1064 ; of this recording is target and binary file format dependent.
1065 ; It is related to the -fverbose-asm switch, but that switch only
1066 ; records information in the assembler output file as comments, so
1067 ; they never reach the object file.
1068 frecord-gcc-switches
1069 Common Report Var(flag_record_gcc_switches)
1070 Record gcc command line switches in the object file.
1072 freg-struct-return
1073 Common Report Var(flag_pcc_struct_return,0) VarExists Optimization
1074 Return small aggregates in registers
1076 fregmove
1077 Common Report Var(flag_regmove) Optimization
1078 Enables a register move optimization
1080 frename-registers
1081 Common Report Var(flag_rename_registers) Init(2) Optimization
1082 Perform a register renaming optimization pass
1084 freorder-blocks
1085 Common Report Var(flag_reorder_blocks) Optimization
1086 Reorder basic blocks to improve code placement
1088 freorder-blocks-and-partition
1089 Common Report Var(flag_reorder_blocks_and_partition) Optimization
1090 Reorder basic blocks and partition into hot and cold sections
1092 freorder-functions
1093 Common Report Var(flag_reorder_functions) Optimization
1094 Reorder functions to improve code placement
1096 frerun-cse-after-loop
1097 Common Report Var(flag_rerun_cse_after_loop) Init(2) Optimization
1098 Add a common subexpression elimination pass after loop optimizations
1100 frerun-loop-opt
1101 Common Ignore
1102 Does nothing.  Preserved for backward compatibility.
1104 frounding-math
1105 Common Report Var(flag_rounding_math) Optimization
1106 Disable optimizations that assume default FP rounding behavior
1108 fsched-interblock
1109 Common Report Var(flag_schedule_interblock) Init(1) Optimization
1110 Enable scheduling across basic blocks
1112 fsched-pressure
1113 Common Report Var(flag_sched_pressure) Init(0) Optimization
1114 Enable register pressure sensitive insn scheduling
1116 fsched-spec
1117 Common Report Var(flag_schedule_speculative) Init(1) Optimization
1118 Allow speculative motion of non-loads
1120 fsched-spec-load
1121 Common Report Var(flag_schedule_speculative_load) Optimization
1122 Allow speculative motion of some loads
1124 fsched-spec-load-dangerous
1125 Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
1126 Allow speculative motion of more loads
1128 fsched-verbose=
1129 Common RejectNegative Joined
1130 -fsched-verbose=<number>        Set the verbosity level of the scheduler
1132 fsched2-use-superblocks
1133 Common Report Var(flag_sched2_use_superblocks) Optimization
1134 If scheduling post reload, do superblock scheduling
1136 fsched2-use-traces
1137 Common Ignore
1138 Does nothing.  Preserved for backward compatibility.
1140 fschedule-insns
1141 Common Report Var(flag_schedule_insns) Optimization
1142 Reschedule instructions before register allocation
1144 fschedule-insns2
1145 Common Report Var(flag_schedule_insns_after_reload) Optimization
1146 Reschedule instructions after register allocation
1148 ; This flag should be on when a target implements non-trivial
1149 ; scheduling hooks, maybe saving some information for its own sake.
1150 ; On IA64, for example, this is used for correct bundling. 
1151 fselective-scheduling
1152 Common Report Var(flag_selective_scheduling) Optimization
1153 Schedule instructions using selective scheduling algorithm
1155 fselective-scheduling2
1156 Common Report Var(flag_selective_scheduling2) Optimization 
1157 Run selective scheduling after reload
1159 fsel-sched-pipelining
1160 Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1161 Perform software pipelining of inner loops during selective scheduling
1163 fsel-sched-pipelining-outer-loops
1164 Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1165 Perform software pipelining of outer loops during selective scheduling
1167 fsel-sched-reschedule-pipelined
1168 Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1169 Reschedule pipelined regions without pipelining
1171 ; sched_stalled_insns means that insns can be moved prematurely from the queue
1172 ; of stalled insns into the ready list.
1173 fsched-stalled-insns
1174 Common Report Var(flag_sched_stalled_insns) Optimization UInteger
1175 Allow premature scheduling of queued insns
1177 fsched-stalled-insns=
1178 Common RejectNegative Joined UInteger
1179 -fsched-stalled-insns=<number>  Set number of queued insns that can be prematurely scheduled
1181 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
1182 ; be examined for a dependency on a stalled insn that is candidate for
1183 ; premature removal from the queue of stalled insns into the ready list (has
1184 ; an effect only if the flag 'sched_stalled_insns' is set).
1185 fsched-stalled-insns-dep
1186 Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
1187 Set dependence distance checking in premature scheduling of queued insns
1189 fsched-stalled-insns-dep=
1190 Common RejectNegative Joined UInteger
1191 -fsched-stalled-insns-dep=<number>      Set dependence distance checking in premature scheduling of queued insns
1193 fsched-group-heuristic
1194 Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1195 Enable the group heuristic in the scheduler
1197 fsched-critical-path-heuristic
1198 Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1199 Enable the critical path heuristic in the scheduler
1201 fsched-spec-insn-heuristic
1202 Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1203 Enable the speculative instruction heuristic in the scheduler
1205 fsched-rank-heuristic
1206 Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1207 Enable the rank heuristic in the scheduler
1209 fsched-last-insn-heuristic
1210 Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1211 Enable the last instruction heuristic in the scheduler
1213 fsched-dep-count-heuristic
1214 Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1215 Enable the dependent count heuristic in the scheduler
1217 fsection-anchors
1218 Common Report Var(flag_section_anchors) Optimization
1219 Access data in the same section from shared anchor points
1221 fsee
1222 Common Ignore
1223 Does nothing.  Preserved for backward compatibility.
1225 fzee
1226 Common Report Var(flag_zee) Init(0)
1227 Eliminate redundant zero extensions on targets that support implicit extensions.
1229 fshow-column
1230 Common Report Var(flag_show_column) Init(1)
1231 Show column numbers in diagnostics, when available.  Default on
1233 fsignaling-nans
1234 Common Report Var(flag_signaling_nans) Optimization
1235 Disable optimizations observable by IEEE signaling NaNs
1237 fsigned-zeros
1238 Common Report Var(flag_signed_zeros) Init(1) Optimization
1239 Disable floating point optimizations that ignore the IEEE signedness of zero
1241 fsingle-precision-constant
1242 Common Report Var(flag_single_precision_constant) Optimization
1243 Convert floating point constants to single precision constants
1245 fsplit-ivs-in-unroller
1246 Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
1247 Split lifetimes of induction variables when loops are unrolled
1249 fsplit-wide-types
1250 Common Report Var(flag_split_wide_types) Optimization
1251 Split wide types into independent registers
1253 fvariable-expansion-in-unroller
1254 Common Report Var(flag_variable_expansion_in_unroller) Optimization
1255 Apply variable expansion when loops are unrolled
1257 fstack-check=
1258 Common Report RejectNegative Joined
1259 -fstack-check=[no|generic|specific]     Insert stack checking code into the program
1261 fstack-check
1262 Common Alias(fstack-check=, specific, no)
1263 Insert stack checking code into the program.  Same as -fstack-check=specific
1265 fstack-limit
1266 Common
1268 fstack-limit-register=
1269 Common RejectNegative Joined
1270 -fstack-limit-register=<register>       Trap if the stack goes past <register>
1272 fstack-limit-symbol=
1273 Common RejectNegative Joined
1274 -fstack-limit-symbol=<name>     Trap if the stack goes past symbol <name>
1276 fstack-protector
1277 Common Report Var(flag_stack_protect, 1)
1278 Use propolice as a stack protection method
1280 fstack-protector-all
1281 Common Report RejectNegative Var(flag_stack_protect, 2) VarExists
1282 Use a stack protection method for every function
1284 fstack-usage
1285 Common RejectNegative Var(flag_stack_usage)
1286 Output stack usage information on a per-function basis
1288 fstrength-reduce
1289 Common Ignore
1290 Does nothing.  Preserved for backward compatibility.
1292 ; Nonzero if we should do (language-dependent) alias analysis.
1293 ; Typically, this analysis will assume that expressions of certain
1294 ; types do not alias expressions of certain other types.  Only used
1295 ; if alias analysis (in general) is enabled.
1296 fstrict-aliasing
1297 Common Report Var(flag_strict_aliasing) Optimization
1298 Assume strict aliasing rules apply
1300 fstrict-overflow
1301 Common Report Var(flag_strict_overflow)
1302 Treat signed overflow as undefined
1304 fsyntax-only
1305 Common Report Var(flag_syntax_only)
1306 Check for syntax errors, then stop
1308 ftest-coverage
1309 Common Report Var(flag_test_coverage)
1310 Create data files needed by \"gcov\"
1312 fthread-jumps
1313 Common Report Var(flag_thread_jumps) Optimization
1314 Perform jump threading optimizations
1316 ftime-report
1317 Common Report Var(time_report)
1318 Report the time taken by each compiler pass
1320 ftls-model=
1321 Common Joined RejectNegative
1322 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model
1324 ftoplevel-reorder
1325 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1326 Reorder top level functions, variables, and asms
1328 ftracer
1329 Common Report Var(flag_tracer)
1330 Perform superblock formation via tail duplication
1332 ; Zero means that floating-point math operations cannot generate a
1333 ; (user-visible) trap.  This is the case, for example, in nonstop
1334 ; IEEE 754 arithmetic.
1335 ftrapping-math
1336 Common Report Var(flag_trapping_math) Init(1) Optimization
1337 Assume floating-point operations can trap
1339 ftrapv
1340 Common Report Var(flag_trapv) Optimization
1341 Trap for signed overflow in addition, subtraction and multiplication
1343 ftree-ccp
1344 Common Report Var(flag_tree_ccp) Optimization
1345 Enable SSA-CCP optimization on trees
1347 ftree-bit-ccp
1348 Common Report Var(flag_tree_bit_ccp) Optimization
1349 Enable SSA-BIT-CCP optimization on trees
1351 ftree-store-ccp
1352 Common Ignore
1353 Does nothing.  Preserved for backward compatibility.
1355 ftree-ch
1356 Common Report Var(flag_tree_ch) Optimization
1357 Enable loop header copying on trees
1359 ftree-copyrename
1360 Common Report Var(flag_tree_copyrename) Optimization
1361 Replace SSA temporaries with better names in copies
1363 ftree-copy-prop
1364 Common Report Var(flag_tree_copy_prop) Optimization
1365 Enable copy propagation on trees
1367 ftree-store-copy-prop
1368 Common Ignore
1369 Does nothing.  Preserved for backward compatibility.
1371 ftree-cselim
1372 Common Report Var(flag_tree_cselim) Init(2) Optimization
1373 Transform condition stores into unconditional ones
1375 ftree-switch-conversion
1376 Common Report Var(flag_tree_switch_conversion) Optimization
1377 Perform conversions of switch initializations.
1379 ftree-dce
1380 Common Report Var(flag_tree_dce) Optimization
1381 Enable SSA dead code elimination optimization on trees
1383 ftree-dominator-opts
1384 Common Report Var(flag_tree_dom) Optimization
1385 Enable dominator optimizations
1387 ftree-dse
1388 Common Report Var(flag_tree_dse) Optimization
1389 Enable dead store elimination
1391 ftree-forwprop
1392 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1393 Enable forward propagation on trees
1395 ftree-fre
1396 Common Report Var(flag_tree_fre) Optimization
1397 Enable Full Redundancy Elimination (FRE) on trees
1399 ftree-loop-distribution
1400 Common Report Var(flag_tree_loop_distribution) Optimization
1401 Enable loop distribution on trees
1403 ftree-loop-distribute-patterns
1404 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1405 Enable loop distribution for patterns transformed into a library call
1407 ftree-loop-im
1408 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1409 Enable loop invariant motion on trees
1411 ftree-loop-linear
1412 Common Report Var(flag_tree_loop_linear) Optimization
1413 Enable linear loop transforms on trees
1415 ftree-loop-ivcanon
1416 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1417 Create canonical induction variables in loops
1419 ftree-loop-optimize
1420 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1421 Enable loop optimizations on tree level
1423 ftree-parallelize-loops=
1424 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
1425 Enable automatic parallelization of loops
1427 ftree-phiprop
1428 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1429 Enable hoisting loads from conditional pointers.
1431 ftree-pre
1432 Common Report Var(flag_tree_pre) Optimization
1433 Enable SSA-PRE optimization on trees
1435 ftree-pta
1436 Common Report Var(flag_tree_pta) Init(1) Optimization
1437 Perform function-local points-to analysis on trees.
1439 ftree-reassoc
1440 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1441 Enable reassociation on tree level
1443 ftree-salias
1444 Common Ignore
1445 Does nothing.  Preserved for backward compatibility.
1447 ftree-sink
1448 Common Report Var(flag_tree_sink) Optimization
1449 Enable SSA code sinking on trees
1451 ftree-sra
1452 Common Report Var(flag_tree_sra) Optimization
1453 Perform scalar replacement of aggregates
1455 ftree-ter
1456 Common Report Var(flag_tree_ter) Init(1) Optimization
1457 Replace temporary expressions in the SSA->normal pass
1459 ftree-lrs
1460 Common Report Var(flag_tree_live_range_split) Optimization
1461 Perform live range splitting during the SSA->normal pass
1463 ftree-vrp
1464 Common Report Var(flag_tree_vrp) Init(0) Optimization
1465 Perform Value Range Propagation on trees
1467 funit-at-a-time
1468 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1469 Compile whole compilation unit at a time
1471 funroll-loops
1472 Common Report Var(flag_unroll_loops) Optimization
1473 Perform loop unrolling when iteration count is known
1475 funroll-all-loops
1476 Common Report Var(flag_unroll_all_loops) Optimization
1477 Perform loop unrolling for all loops
1479 ; Nonzero means that loop optimizer may assume that the induction variables
1480 ; that control loops do not overflow and that the loops with nontrivial
1481 ; exit condition are not infinite
1482 funsafe-loop-optimizations
1483 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1484 Allow loop optimizations to assume that the loops behave in normal way
1486 fassociative-math
1487 Common Report Var(flag_associative_math)
1488 Allow optimization for floating-point arithmetic which may change the
1489 result of the operation due to rounding.
1491 freciprocal-math
1492 Common Report Var(flag_reciprocal_math)
1493 Same as -fassociative-math for expressions which include division.
1495 ; Nonzero means that unsafe floating-point math optimizations are allowed
1496 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
1497 ; are allowed to assume that their arguments and results are "normal"
1498 ; (e.g., nonnegative for SQRT).
1499 funsafe-math-optimizations
1500 Common Report Var(flag_unsafe_math_optimizations) Optimization
1501 Allow math optimizations that may violate IEEE or ISO standards
1503 funswitch-loops
1504 Common Report Var(flag_unswitch_loops) Optimization
1505 Perform loop unswitching
1507 funwind-tables
1508 Common Report Var(flag_unwind_tables) Optimization
1509 Just generate unwind tables for exception handling
1511 fuse-linker-plugin
1512 Common Undocumented
1514 fvar-tracking
1515 Common Report Var(flag_var_tracking) VarExists Optimization
1516 Perform variable tracking
1518 fvar-tracking-assignments
1519 Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1520 Perform variable tracking by annotating assignments
1522 fvar-tracking-assignments-toggle
1523 Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1524 Toggle -fvar-tracking-assignments
1526 fvar-tracking-uninit
1527 Common Report Var(flag_var_tracking_uninit) Optimization
1528 Perform variable tracking and also tag variables that are uninitialized
1530 ftree-vectorize
1531 Common Report Var(flag_tree_vectorize) Optimization
1532 Enable loop vectorization on trees
1534 ftree-slp-vectorize
1535 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1536 Enable basic block vectorization (SLP) on trees
1538 fvect-cost-model
1539 Common Report Var(flag_vect_cost_model) Optimization
1540 Enable use of cost model in vectorization
1542 ftree-vect-loop-version
1543 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1544 Enable loop versioning when doing loop vectorization on trees
1546 ftree-vectorizer-verbose=
1547 Common RejectNegative Joined
1548 -ftree-vectorizer-verbose=<number>      Set the verbosity level of the vectorizer
1550 ftree-scev-cprop
1551 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1552 Enable copy propagation of scalar-evolution information.
1554 ; -fverbose-asm causes extra commentary information to be produced in
1555 ; the generated assembly code (to make it more readable).  This option
1556 ; is generally only of use to those who actually need to read the
1557 ; generated assembly code (perhaps while debugging the compiler itself).
1558 ; -fno-verbose-asm, the default, causes the extra information
1559 ; to not be added and is useful when comparing two assembler files.
1560 fverbose-asm
1561 Common Report Var(flag_verbose_asm)
1562 Add extra commentary to assembler output
1564 fvisibility=
1565 Common Joined RejectNegative
1566 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility
1569 fvpt
1570 Common Report Var(flag_value_profile_transformations) Optimization
1571 Use expression value profiles in optimizations
1573 fweb
1574 Common Report Var(flag_web) Init(2) Optimization
1575 Construct webs and split unrelated uses of single variable
1577 fwhopr
1578 Common
1579 Enable partitioned link-time optimization
1581 fwhopr=
1582 Common RejectNegative Joined Var(flag_whopr)
1583 Partitioned link-time optimization with number of parallel jobs or jobserver.
1585 ftree-builtin-call-dce
1586 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1587 Enable conditional dead code elimination for builtin calls
1589 fwhole-program
1590 Common Report Var(flag_whole_program) Init(0) Optimization
1591 Perform whole program optimizations
1593 fwrapv
1594 Common Report Var(flag_wrapv) Optimization
1595 Assume signed arithmetic overflow wraps around
1597 fzero-initialized-in-bss
1598 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1599 Put zero initialized data in the bss section
1602 Common JoinedOrMissing
1603 Generate debug information in default format
1605 gcoff
1606 Common JoinedOrMissing Negative(gdwarf-)
1607 Generate debug information in COFF format
1609 gdwarf-
1610 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1611 Generate debug information in DWARF v2 (or later) format
1613 ggdb
1614 Common JoinedOrMissing
1615 Generate debug information in default extended format
1617 gstabs
1618 Common JoinedOrMissing Negative(gstabs+)
1619 Generate debug information in STABS format
1621 gstabs+
1622 Common JoinedOrMissing Negative(gvms)
1623 Generate debug information in extended STABS format
1625 gno-strict-dwarf
1626 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1627 Emit DWARF additions beyond selected version
1629 gstrict-dwarf
1630 Common Report RejectNegative Var(dwarf_strict,1) VarExists
1631 Don't emit DWARF additions beyond selected version
1633 gtoggle
1634 Common Report Var(flag_gtoggle)
1635 Toggle debug information generation
1637 gvms
1638 Common JoinedOrMissing Negative(gxcoff)
1639 Generate debug information in VMS format
1641 gxcoff
1642 Common JoinedOrMissing Negative(gxcoff+)
1643 Generate debug information in XCOFF format
1645 gxcoff+
1646 Common JoinedOrMissing Negative(gcoff)
1647 Generate debug information in extended XCOFF format
1649 iplugindir=
1650 Common Joined Var(plugindir_string) Init(0)
1651 -iplugindir=<dir>       Set <dir> to be the default plugin directory
1654 Driver Joined Separate
1656 no-canonical-prefixes
1657 Driver
1659 nodefaultlibs
1660 Driver
1662 nostdlib
1663 Driver
1666 Common Driver Joined Separate MissingArgError(missing filename after %qs)
1667 -o <file>       Place output into <file>
1670 Common Var(profile_flag)
1671 Enable function profiling
1673 pass-exit-codes
1674 Driver Var(pass_exit_codes)
1676 pedantic
1677 Common Var(pedantic)
1678 Issue warnings needed for strict compliance to the standard
1680 pedantic-errors
1681 Common
1682 Like -pedantic but issue them as errors
1685 Driver
1687 pipe
1688 Driver Var(use_pipes)
1690 print-file-name=
1691 Driver JoinedOrMissing Var(print_file_name)
1693 print-libgcc-file-name
1694 Driver
1696 print-multi-directory
1697 Driver Var(print_multi_directory)
1699 print-multi-lib
1700 Driver Var(print_multi_lib)
1702 print-multi-os-directory
1703 Driver Var(print_multi_os_directory)
1705 print-prog-name=
1706 Driver JoinedOrMissing Var(print_prog_name)
1708 print-search-dirs
1709 Driver Var(print_search_dirs)
1711 print-sysroot
1712 Driver Var(print_sysroot)
1714 print-sysroot-headers-suffix
1715 Driver Var(print_sysroot_headers_suffix)
1717 quiet
1718 Common Var(quiet_flag) RejectDriver
1719 Do not display functions compiled or elapsed time
1721 save-temps
1722 Driver
1724 save-temps=
1725 Driver Joined
1727 time
1728 Driver Var(report_times)
1730 time=
1731 Driver JoinedOrMissing
1734 Driver
1736 version
1737 Common Var(version_flag) RejectDriver
1738 Display the compiler's version
1741 Common Var(inhibit_warnings)
1742 Suppress warnings
1744 wrapper
1745 Driver Separate Var(wrapper_string)
1748 Driver Joined Separate
1750 shared
1751 Common RejectNegative Negative(pie)
1752 Create a shared library
1754 shared-libgcc
1755 Driver
1757 specs
1758 Driver Separate Alias(specs=)
1760 specs=
1761 Driver Joined
1763 static
1764 Driver
1766 static-libgcc
1767 Driver
1769 static-libgfortran
1770 Driver
1771 ; Documented for Fortran, but always accepted by driver.
1773 static-libstdc++
1774 Driver
1777 Common RejectNegative Negative(shared)
1778 Create a position independent executable
1780 ; This comment is to ensure we retain the blank line above.