OSDN Git Service

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