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