OSDN Git Service

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