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