OSDN Git Service

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