* m4/mtype.m4 (upcase, hasmathfunc, mathfunc_macro): New macros.
[official-gcc.git] / gcc / common.opt
blob675ca353cf0d83b024778f4d53ddce4b7c1bdb9f
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 Var(extra_warnings) Warning
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 UInteger Warning Undocumented
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
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
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
391 Does nothing. Preserved for backward compatibility.
393 fargument-noalias
394 Common
395 Does nothing. Preserved for backward compatibility.
397 fargument-noalias-global
398 Common
399 Does nothing. Preserved for backward compatibility.
401 fargument-noalias-anything
402 Common
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
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
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 UInteger
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
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
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
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
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 Report
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 fstrength-reduce
1285 Common
1286 Does nothing.  Preserved for backward compatibility.
1288 ; Nonzero if we should do (language-dependent) alias analysis.
1289 ; Typically, this analysis will assume that expressions of certain
1290 ; types do not alias expressions of certain other types.  Only used
1291 ; if alias analysis (in general) is enabled.
1292 fstrict-aliasing
1293 Common Report Var(flag_strict_aliasing) Optimization
1294 Assume strict aliasing rules apply
1296 fstrict-overflow
1297 Common Report Var(flag_strict_overflow)
1298 Treat signed overflow as undefined
1300 fsyntax-only
1301 Common Report Var(flag_syntax_only)
1302 Check for syntax errors, then stop
1304 ftest-coverage
1305 Common Report Var(flag_test_coverage)
1306 Create data files needed by \"gcov\"
1308 fthread-jumps
1309 Common Report Var(flag_thread_jumps) Optimization
1310 Perform jump threading optimizations
1312 ftime-report
1313 Common Report Var(time_report)
1314 Report the time taken by each compiler pass
1316 ftls-model=
1317 Common Joined RejectNegative
1318 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]      Set the default thread-local storage code generation model
1320 ftoplevel-reorder
1321 Common Report Var(flag_toplevel_reorder) Init(2) Optimization
1322 Reorder top level functions, variables, and asms
1324 ftracer
1325 Common Report Var(flag_tracer)
1326 Perform superblock formation via tail duplication
1328 ; Zero means that floating-point math operations cannot generate a
1329 ; (user-visible) trap.  This is the case, for example, in nonstop
1330 ; IEEE 754 arithmetic.
1331 ftrapping-math
1332 Common Report Var(flag_trapping_math) Init(1) Optimization
1333 Assume floating-point operations can trap
1335 ftrapv
1336 Common Report Var(flag_trapv) Optimization
1337 Trap for signed overflow in addition, subtraction and multiplication
1339 ftree-ccp
1340 Common Report Var(flag_tree_ccp) Optimization
1341 Enable SSA-CCP optimization on trees
1343 ftree-bit-ccp
1344 Common Report Var(flag_tree_bit_ccp) Optimization
1345 Enable SSA-BIT-CCP optimization on trees
1347 ftree-store-ccp
1348 Common
1349 Does nothing.  Preserved for backward compatibility.
1351 ftree-ch
1352 Common Report Var(flag_tree_ch) Optimization
1353 Enable loop header copying on trees
1355 ftree-copyrename
1356 Common Report Var(flag_tree_copyrename) Optimization
1357 Replace SSA temporaries with better names in copies
1359 ftree-copy-prop
1360 Common Report Var(flag_tree_copy_prop) Optimization
1361 Enable copy propagation on trees
1363 ftree-store-copy-prop
1364 Common
1365 Does nothing.  Preserved for backward compatibility.
1367 ftree-cselim
1368 Common Report Var(flag_tree_cselim) Init(2) Optimization
1369 Transform condition stores into unconditional ones
1371 ftree-switch-conversion
1372 Common Report Var(flag_tree_switch_conversion) Optimization
1373 Perform conversions of switch initializations.
1375 ftree-dce
1376 Common Report Var(flag_tree_dce) Optimization
1377 Enable SSA dead code elimination optimization on trees
1379 ftree-dominator-opts
1380 Common Report Var(flag_tree_dom) Optimization
1381 Enable dominator optimizations
1383 ftree-dse
1384 Common Report Var(flag_tree_dse) Optimization
1385 Enable dead store elimination
1387 ftree-forwprop
1388 Common Report Var(flag_tree_forwprop) Init(1) Optimization
1389 Enable forward propagation on trees
1391 ftree-fre
1392 Common Report Var(flag_tree_fre) Optimization
1393 Enable Full Redundancy Elimination (FRE) on trees
1395 ftree-loop-distribution
1396 Common Report Var(flag_tree_loop_distribution) Optimization
1397 Enable loop distribution on trees
1399 ftree-loop-distribute-patterns
1400 Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1401 Enable loop distribution for patterns transformed into a library call
1403 ftree-loop-im
1404 Common Report Var(flag_tree_loop_im) Init(1) Optimization
1405 Enable loop invariant motion on trees
1407 ftree-loop-linear
1408 Common Report Var(flag_tree_loop_linear) Optimization
1409 Enable linear loop transforms on trees
1411 ftree-loop-ivcanon
1412 Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1413 Create canonical induction variables in loops
1415 ftree-loop-optimize
1416 Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
1417 Enable loop optimizations on tree level
1419 ftree-parallelize-loops=
1420 Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
1421 Enable automatic parallelization of loops
1423 ftree-phiprop
1424 Common Report Var(flag_tree_phiprop) Init(1) Optimization
1425 Enable hoisting loads from conditional pointers.
1427 ftree-pre
1428 Common Report Var(flag_tree_pre) Optimization
1429 Enable SSA-PRE optimization on trees
1431 ftree-pta
1432 Common Report Var(flag_tree_pta) Init(1) Optimization
1433 Perform function-local points-to analysis on trees.
1435 ftree-reassoc
1436 Common Report Var(flag_tree_reassoc) Init(1) Optimization
1437 Enable reassociation on tree level
1439 ftree-salias
1440 Common
1441 Does nothing.  Preserved for backward compatibility.
1443 ftree-sink
1444 Common Report Var(flag_tree_sink) Optimization
1445 Enable SSA code sinking on trees
1447 ftree-sra
1448 Common Report Var(flag_tree_sra) Optimization
1449 Perform scalar replacement of aggregates
1451 ftree-ter
1452 Common Report Var(flag_tree_ter) Init(1) Optimization
1453 Replace temporary expressions in the SSA->normal pass
1455 ftree-lrs
1456 Common Report Var(flag_tree_live_range_split) Optimization
1457 Perform live range splitting during the SSA->normal pass
1459 ftree-vrp
1460 Common Report Var(flag_tree_vrp) Init(0) Optimization
1461 Perform Value Range Propagation on trees
1463 funit-at-a-time
1464 Common Report Var(flag_unit_at_a_time) Init(1) Optimization
1465 Compile whole compilation unit at a time
1467 funroll-loops
1468 Common Report Var(flag_unroll_loops) Optimization
1469 Perform loop unrolling when iteration count is known
1471 funroll-all-loops
1472 Common Report Var(flag_unroll_all_loops) Optimization
1473 Perform loop unrolling for all loops
1475 ; Nonzero means that loop optimizer may assume that the induction variables
1476 ; that control loops do not overflow and that the loops with nontrivial
1477 ; exit condition are not infinite
1478 funsafe-loop-optimizations
1479 Common Report Var(flag_unsafe_loop_optimizations) Optimization
1480 Allow loop optimizations to assume that the loops behave in normal way
1482 fassociative-math
1483 Common Report Var(flag_associative_math)
1484 Allow optimization for floating-point arithmetic which may change the
1485 result of the operation due to rounding.
1487 freciprocal-math
1488 Common Report Var(flag_reciprocal_math)
1489 Same as -fassociative-math for expressions which include division.
1491 ; Nonzero means that unsafe floating-point math optimizations are allowed
1492 ; for the sake of speed.  IEEE compliance is not guaranteed, and operations
1493 ; are allowed to assume that their arguments and results are "normal"
1494 ; (e.g., nonnegative for SQRT).
1495 funsafe-math-optimizations
1496 Common Report Var(flag_unsafe_math_optimizations) Optimization
1497 Allow math optimizations that may violate IEEE or ISO standards
1499 funswitch-loops
1500 Common Report Var(flag_unswitch_loops) Optimization
1501 Perform loop unswitching
1503 funwind-tables
1504 Common Report Var(flag_unwind_tables) Optimization
1505 Just generate unwind tables for exception handling
1507 fuse-linker-plugin
1508 Common Undocumented
1510 fvar-tracking
1511 Common Report Var(flag_var_tracking) VarExists Optimization
1512 Perform variable tracking
1514 fvar-tracking-assignments
1515 Common Report Var(flag_var_tracking_assignments) VarExists Optimization
1516 Perform variable tracking by annotating assignments
1518 fvar-tracking-assignments-toggle
1519 Common Report Var(flag_var_tracking_assignments_toggle) VarExists Optimization
1520 Toggle -fvar-tracking-assignments
1522 fvar-tracking-uninit
1523 Common Report Var(flag_var_tracking_uninit) Optimization
1524 Perform variable tracking and also tag variables that are uninitialized
1526 ftree-vectorize
1527 Common Report Var(flag_tree_vectorize) Optimization
1528 Enable loop vectorization on trees
1530 ftree-slp-vectorize
1531 Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
1532 Enable basic block vectorization (SLP) on trees
1534 fvect-cost-model
1535 Common Report Var(flag_vect_cost_model) Optimization
1536 Enable use of cost model in vectorization
1538 ftree-vect-loop-version
1539 Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
1540 Enable loop versioning when doing loop vectorization on trees
1542 ftree-vectorizer-verbose=
1543 Common RejectNegative Joined
1544 -ftree-vectorizer-verbose=<number>      Set the verbosity level of the vectorizer
1546 ftree-scev-cprop
1547 Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
1548 Enable copy propagation of scalar-evolution information.
1550 ; -fverbose-asm causes extra commentary information to be produced in
1551 ; the generated assembly code (to make it more readable).  This option
1552 ; is generally only of use to those who actually need to read the
1553 ; generated assembly code (perhaps while debugging the compiler itself).
1554 ; -fno-verbose-asm, the default, causes the extra information
1555 ; to not be added and is useful when comparing two assembler files.
1556 fverbose-asm
1557 Common Report Var(flag_verbose_asm)
1558 Add extra commentary to assembler output
1560 fvisibility=
1561 Common Joined RejectNegative
1562 -fvisibility=[default|internal|hidden|protected]        Set the default symbol visibility
1565 fvpt
1566 Common Report Var(flag_value_profile_transformations) Optimization
1567 Use expression value profiles in optimizations
1569 fweb
1570 Common Report Var(flag_web) Init(2) Optimization
1571 Construct webs and split unrelated uses of single variable
1573 fwhopr
1574 Common
1575 Enable partitioned link-time optimization
1577 fwhopr=
1578 Common RejectNegative UInteger Joined Var(flag_whopr)
1579 Enable partitioned link-time optimization with specified number of parallel jobs
1581 ftree-builtin-call-dce
1582 Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
1583 Enable conditional dead code elimination for builtin calls
1585 fwhole-program
1586 Common Report Var(flag_whole_program) Init(0) Optimization
1587 Perform whole program optimizations
1589 fwrapv
1590 Common Report Var(flag_wrapv) Optimization
1591 Assume signed arithmetic overflow wraps around
1593 fzero-initialized-in-bss
1594 Common Report Var(flag_zero_initialized_in_bss) Init(1)
1595 Put zero initialized data in the bss section
1598 Common JoinedOrMissing
1599 Generate debug information in default format
1601 gcoff
1602 Common JoinedOrMissing Negative(gdwarf-)
1603 Generate debug information in COFF format
1605 gdwarf-
1606 Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
1607 Generate debug information in DWARF v2 (or later) format
1609 ggdb
1610 Common JoinedOrMissing
1611 Generate debug information in default extended format
1613 gstabs
1614 Common JoinedOrMissing Negative(gstabs+)
1615 Generate debug information in STABS format
1617 gstabs+
1618 Common JoinedOrMissing Negative(gvms)
1619 Generate debug information in extended STABS format
1621 gno-strict-dwarf
1622 Common RejectNegative Var(dwarf_strict,0) Init(-1)
1623 Emit DWARF additions beyond selected version
1625 gstrict-dwarf
1626 Common Report RejectNegative Var(dwarf_strict,1) VarExists
1627 Don't emit DWARF additions beyond selected version
1629 gtoggle
1630 Common Report Var(flag_gtoggle)
1631 Toggle debug information generation
1633 gvms
1634 Common JoinedOrMissing Negative(gxcoff)
1635 Generate debug information in VMS format
1637 gxcoff
1638 Common JoinedOrMissing Negative(gxcoff+)
1639 Generate debug information in XCOFF format
1641 gxcoff+
1642 Common JoinedOrMissing Negative(gcoff)
1643 Generate debug information in extended XCOFF format
1645 iplugindir=
1646 Common Joined Var(plugindir_string) Init(0)
1647 -iplugindir=<dir>       Set <dir> to be the default plugin directory
1650 Driver Joined Separate
1652 no-canonical-prefixes
1653 Driver
1655 nodefaultlibs
1656 Driver
1658 nostdlib
1659 Driver
1662 Common Driver Joined Separate MissingArgError(missing filename after %qs)
1663 -o <file>       Place output into <file>
1666 Common Var(profile_flag)
1667 Enable function profiling
1669 pass-exit-codes
1670 Driver Var(pass_exit_codes)
1672 pedantic
1673 Common Var(pedantic)
1674 Issue warnings needed for strict compliance to the standard
1676 pedantic-errors
1677 Common
1678 Like -pedantic but issue them as errors
1681 Driver
1683 pipe
1684 Driver Var(use_pipes)
1686 print-file-name=
1687 Driver JoinedOrMissing Var(print_file_name)
1689 print-libgcc-file-name
1690 Driver
1692 print-multi-directory
1693 Driver Var(print_multi_directory)
1695 print-multi-lib
1696 Driver Var(print_multi_lib)
1698 print-multi-os-directory
1699 Driver Var(print_multi_os_directory)
1701 print-prog-name=
1702 Driver JoinedOrMissing Var(print_prog_name)
1704 print-search-dirs
1705 Driver Var(print_search_dirs)
1707 print-sysroot
1708 Driver Var(print_sysroot)
1710 print-sysroot-headers-suffix
1711 Driver Var(print_sysroot_headers_suffix)
1713 quiet
1714 Common Var(quiet_flag) RejectDriver
1715 Do not display functions compiled or elapsed time
1717 save-temps
1718 Driver
1720 save-temps=
1721 Driver Joined
1723 time
1724 Driver Var(report_times)
1726 time=
1727 Driver JoinedOrMissing
1730 Driver
1732 version
1733 Common Var(version_flag) RejectDriver
1734 Display the compiler's version
1737 Common Var(inhibit_warnings)
1738 Suppress warnings
1740 wrapper
1741 Driver Separate Var(wrapper_string)
1744 Driver Joined Separate
1746 shared
1747 Common RejectNegative Negative(pie)
1748 Create a shared library
1750 shared-libgcc
1751 Driver
1753 specs
1754 Driver Separate
1756 specs=
1757 Driver Joined
1759 static
1760 Driver
1762 static-libgcc
1763 Driver
1765 static-libgfortran
1766 Driver
1767 ; Documented for Fortran, but always accepted by driver.
1769 static-libstdc++
1770 Driver
1773 Common RejectNegative Negative(shared)
1774 Create a position independent executable
1776 ; This comment is to ensure we retain the blank line above.