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