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