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