OSDN Git Service

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