]> gcc.gnu.org Git - gcc.git/blob - gcc/common.opt
Merge branch 'master' into devel/modula-2.
[gcc.git] / gcc / common.opt
1 ; Options for the language- and target-independent parts of the compiler.
2
3 ; Copyright (C) 2003-2022 Free Software Foundation, Inc.
4 ;
5 ; This file is part of GCC.
6 ;
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
10 ; version.
11 ;
12 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 ; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 ; for more details.
16 ;
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING3. If not see
19 ; <http://www.gnu.org/licenses/>.
20
21 ; See the GCC internals manual (options.texi) for a description of this file's format.
22
23 ; Please try to keep this file in ASCII collating order.
24
25 Variable
26 int target_flags
27
28 Variable
29 int optimize
30
31 Variable
32 int optimize_size
33
34 Variable
35 int optimize_debug
36
37 ; Not used directly to control optimizations, only to save -Ofast
38 ; setting for "optimize" attributes.
39 Variable
40 int optimize_fast
41
42 ; True if this is the lto front end. This is used to disable gimple
43 ; generation and lowering passes that are normally run on the output
44 ; of a front end. These passes must be bypassed for lto since they
45 ; have already been done before the gimple was written.
46 Variable
47 bool in_lto_p = false
48
49 ; This variable is set to non-0 only by LTO front-end. 1 indicates that
50 ; the output produced will be used for incremental linking (thus weak symbols
51 ; can still be bound) and 2 indicates that the IL is going to be linked and
52 ; and output to LTO object file.
53 Variable
54 enum incremental_link flag_incremental_link = INCREMENTAL_LINK_NONE
55
56 ; 0 means straightforward implementation of complex divide acceptable.
57 ; 1 means wide ranges of inputs must work for complex divide.
58 ; 2 means C99-like requirements for complex multiply and divide.
59 Variable
60 int flag_complex_method = 1
61
62 Variable
63 int flag_default_complex_method = 1
64
65 ; Language specific warning pass for unused results.
66 Variable
67 bool flag_warn_unused_result = false
68
69 ; Nonzero if we should write GIMPLE bytecode for link-time optimization.
70 Variable
71 int flag_generate_lto
72
73 ; Nonzero if we should write GIMPLE bytecode for offload compilation.
74 Variable
75 int flag_generate_offload = 0
76
77 ; Nonzero means we should be saving declaration info into a .X file.
78 Variable
79 int flag_gen_aux_info = 0
80
81 ; Nonzero if we are compiling code for a shared library, zero for
82 ; executable.
83 Variable
84 int flag_shlib
85
86 ; These three are really VEC(char_p,heap) *.
87
88 Variable
89 void *flag_instrument_functions_exclude_functions
90
91 Variable
92 void *flag_instrument_functions_exclude_files
93
94 Variable
95 void *flag_ignored_attributes
96
97 ; Generic structs (e.g. templates not explicitly specialized)
98 ; may not have a compilation unit associated with them, and so
99 ; may need to be treated differently from ordinary structs.
100 ;
101 ; Structs only handled by reference (indirectly), will also usually
102 ; not need as much debugging information.
103
104 Variable
105 enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
106
107 Variable
108 enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
109
110 ; True if we should exit after parsing options.
111 Variable
112 bool exit_after_options
113
114 ; Type(s) of debugging information we are producing (if any). See
115 ; flag-types.h for the definitions of the different possible types of
116 ; debugging information.
117 Variable
118 uint32_t write_symbols = NO_DEBUG
119
120 ; Level of debugging information we are producing. See flag-types.h
121 ; for the definitions of the different possible levels.
122 Variable
123 enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
124
125 ; Nonzero means use GNU-only extensions in the generated symbolic
126 ; debugging information. Currently, this only has an effect when
127 ; write_symbols is set to DBX_DEBUG or XCOFF_DEBUG.
128 Variable
129 bool use_gnu_debug_info_extensions
130
131 ; Level of CTF debugging information we are producing. See flag-types.h
132 ; for the definitions of the different possible levels.
133 Variable
134 enum ctf_debug_info_levels ctf_debug_info_level = CTFINFO_LEVEL_NONE
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 ; Type of stack check.
142 Variable
143 enum stack_check_type flag_stack_check = NO_STACK_CHECK
144
145 ; True if stack usage information needs to be computed.
146 Variable
147 bool flag_stack_usage_info = false
148
149 ; -dA causes debug commentary information to be produced in
150 ; the generated assembly code (to make it more readable). This option
151 ; is generally only of use to those who actually need to read the
152 ; generated assembly code (perhaps while debugging the compiler itself).
153 ; Currently, this switch is only used by dwarf2out.cc; however, it is intended
154 ; to be a catchall for printing debug information in the assembler file.
155 Variable
156 int flag_debug_asm
157
158 ; Balance between GNAT encodings and standard DWARF to emit.
159 Variable
160 enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT
161
162 ; -dP causes the rtl to be emitted as a comment in assembly.
163 Variable
164 int flag_dump_rtl_in_asm
165
166 ; Whether -da was passed (used only in handle_common_deferred_options).
167 Variable
168 bool flag_dump_all_passed
169
170 ; Other flags saying which kinds of debugging dump have been requested.
171
172 Variable
173 int rtl_dump_and_exit
174
175 Variable
176 int flag_print_asm_name
177
178 ; Name of top-level original source file (what was input to cpp).
179 ; This comes from the #-command at the beginning of the actual input.
180 ; If there isn't any there, then this is the cc1 input file name.
181 Variable
182 const char *main_input_filename
183
184 ; Pointer to base name in main_input_filename, with directories and a
185 ; single final extension removed, and the length of this base
186 ; name.
187
188 Variable
189 const char *main_input_basename
190
191 Variable
192 int main_input_baselength
193
194 ; The base name used for auxiliary output files.
195 ; dump_base_name minus dump_base_ext.
196
197 Variable
198 const char *aux_base_name
199
200 ; Which options have been printed by --help.
201 Variable
202 char *help_printed
203
204 ; Which enums have been printed by --help. 0 = not printed, no
205 ; relevant options seen, 1 = relevant option seen, not yet printed, 2
206 ; = printed.
207 Variable
208 char *help_enum_printed
209
210 ; The number of columns for --help output.
211 Variable
212 unsigned int help_columns
213
214 ; Whether this options structure has been through finish_options
215 Variable
216 bool flag_opts_finished
217
218 ; What the sanitizer should instrument
219 Variable
220 unsigned int flag_sanitize
221
222 ; What sanitizers should recover from errors
223 Variable
224 unsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS | SANITIZE_KERNEL_HWADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN)
225
226 ; What sanitizers should use __builtin_trap () instead of runtime diagnostics
227 Variable
228 unsigned int flag_sanitize_trap
229
230 ; Flag whether a prefix has been added to dump_base_name
231 Variable
232 bool dump_base_name_prefixed = false
233
234 ; What subset of registers should be zeroed on function return
235 Variable
236 unsigned int flag_zero_call_used_regs
237
238 ###
239 Driver
240
241 -assemble
242 Driver Alias(S)
243
244 -compile
245 Driver Alias(c)
246
247 -completion=
248 Common Driver Joined Undocumented
249 Provide bash completion for options starting with provided string.
250
251 -coverage
252 Driver Alias(coverage)
253
254 -debug
255 Common Alias(g)
256
257 -dump
258 Common Separate Alias(d)
259
260 -dump=
261 Common Joined Alias(d)
262
263 -dumpbase
264 Driver Common Separate Alias(dumpbase)
265
266 -dumpbase-ext
267 Driver Common Separate Alias(dumpbase-ext)
268
269 -dumpdir
270 Driver Common Separate Alias(dumpdir)
271
272 -entry
273 Driver Separate Alias(e)
274
275 -entry=
276 Driver Joined Alias(e)
277
278 -extra-warnings
279 Common Warning Alias(Wextra)
280
281 -for-assembler
282 Driver Separate Alias(Xassembler)
283
284 -for-assembler=
285 Driver JoinedOrMissing Alias(Xassembler)
286
287 -for-linker
288 Driver Separate Alias(Xlinker)
289
290 -for-linker=
291 Driver JoinedOrMissing Alias(Xlinker)
292
293 -force-link
294 Driver Separate Alias(u)
295
296 -force-link=
297 Driver Joined Alias(u)
298
299 -help
300 Common Driver Var(help_flag)
301 Display this information.
302
303 -help=
304 Common Driver Joined
305 --help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params.
306
307 -language
308 Driver Separate Alias(x)
309
310 -language=
311 Driver Joined Alias(x)
312
313 -library-directory
314 Driver Separate Alias(L)
315
316 -library-directory=
317 Driver Joined Alias(L)
318
319 -no-canonical-prefixes
320 Driver Alias(no-canonical-prefixes)
321
322 -no-standard-libraries
323 Driver Alias(nostdlib)
324
325 -no-sysroot-suffix
326 Driver Var(no_sysroot_suffix)
327
328 -no-warnings
329 Common Alias(w)
330
331 -optimize
332 Common Alias(O)
333
334 -output
335 Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
336
337 -output=
338 Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
339
340 -pass-exit-codes
341 Driver Alias(pass-exit-codes)
342
343 -pedantic
344 Common Alias(Wpedantic)
345
346 -pedantic-errors
347 Common Alias(pedantic-errors)
348
349 -pie
350 Driver Alias(pie)
351
352 -static-pie
353 Driver Alias(static-pie)
354
355 -pipe
356 Driver Alias(pipe)
357
358 -prefix
359 Driver Separate Alias(B)
360
361 -prefix=
362 Driver JoinedOrMissing Alias(B)
363
364 -preprocess
365 Driver Alias(E)
366
367 -print-file-name
368 Driver Separate Alias(print-file-name=)
369
370 -print-file-name=
371 Driver JoinedOrMissing Alias(print-file-name=)
372
373 -print-libgcc-file-name
374 Driver Alias(print-libgcc-file-name)
375
376 -print-multi-directory
377 Driver Alias(print-multi-directory)
378
379 -print-multi-lib
380 Driver Alias(print-multi-lib)
381
382 -print-multi-os-directory
383 Driver Alias(print-multi-os-directory)
384
385 -print-multiarch
386 Driver Alias(print-multiarch)
387
388 -print-prog-name
389 Driver Separate Alias(print-prog-name=)
390
391 -print-prog-name=
392 Driver JoinedOrMissing Alias(print-prog-name=)
393
394 -print-search-dirs
395 Driver Alias(print-search-dirs)
396
397 -print-sysroot
398 Driver Alias(print-sysroot)
399
400 -print-sysroot-headers-suffix
401 Driver Alias(print-sysroot-headers-suffix)
402
403 -profile
404 Common Alias(p)
405
406 -save-temps
407 Driver Alias(save-temps)
408
409 -shared
410 Driver Alias(shared)
411
412 -specs
413 Driver Separate Alias(specs=)
414
415 -specs=
416 Driver Joined Alias(specs=)
417
418 -static
419 Driver Alias(static)
420
421 -symbolic
422 Driver Alias(symbolic)
423
424 -target-help
425 Common Driver
426 Display target specific command line options (including assembler and linker options).
427
428 -time
429 Driver Alias(time)
430
431 -verbose
432 Driver Alias(v)
433
434 ;; The driver used to convert options such as --help into forms such
435 ;; as -fhelp; the following four entries are for compatibility with
436 ;; any direct uses of those (undocumented) -f forms
437 fhelp
438 Common Driver Alias(-help)
439
440 fhelp=
441 Common Driver Joined Alias(-help=)
442
443 ftarget-help
444 Common Driver Alias(-target-help)
445
446 fversion
447 Common Driver Alias(-version)
448
449 -sysroot
450 Driver Separate Alias(-sysroot=)
451
452 -sysroot=
453 Driver JoinedOrMissing
454
455 -version
456 Common Driver
457
458 B
459 Driver Joined Separate
460
461 E
462 Driver
463
464 L
465 Driver Joined Separate
466
467 N
468 Driver
469
470 O
471 Common JoinedOrMissing Optimization
472 -O<number> Set optimization level to <number>.
473
474 Os
475 Common Optimization
476 Optimize for space rather than speed.
477
478 Ofast
479 Common Optimization
480 Optimize for speed disregarding exact standards compliance.
481
482 Og
483 Common Optimization
484 Optimize for debugging experience rather than speed or size.
485
486 Oz
487 Common Optimization
488 Optimize for space aggressively rather than speed.
489
490 Q
491 Driver
492
493 Qn
494 Driver Negative(Qy)
495
496 Qy
497 Driver Negative(Qn)
498
499 R
500 Driver Joined Separate
501
502 S
503 Driver
504
505 T
506 Driver Joined Separate
507
508 Tbss
509 Driver Separate
510
511 Tbss=
512 Driver Joined
513
514 Tdata
515 Driver Separate
516
517 Tdata=
518 Driver Joined
519
520 Ttext
521 Driver Separate
522
523 Ttext=
524 Driver Joined
525
526 W
527 Common RejectNegative Warning Alias(Wextra)
528 This switch is deprecated; use -Wextra instead.
529
530 Wa,
531 Driver JoinedOrMissing RejectNegative
532
533 Wl,
534 Driver JoinedOrMissing RejectNegative
535
536 Wp,
537 Driver JoinedOrMissing RejectNegative
538
539 Waggregate-return
540 Common Var(warn_aggregate_return) Warning
541 Warn about returning structures, unions or arrays.
542
543 Waggressive-loop-optimizations
544 Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
545 Warn if a loop with constant number of iterations triggers undefined behavior.
546
547 Warray-bounds
548 Common Var(warn_array_bounds) Warning
549 Warn if an array is accessed out of bounds.
550
551 Warray-bounds=
552 Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2)
553 Warn if an array is accessed out of bounds.
554
555 Wuse-after-free
556 Common Var(warn_use_after_free) Warning
557 Warn for uses of pointers to deallocated storage.
558
559 Wuse-after-free=
560 Common Joined RejectNegative UInteger Var(warn_use_after_free) Warning IntegerRange(0, 3)
561 Warn for uses of pointers to deallocated storage.
562
563 Wattributes
564 Common Var(warn_attributes) Init(1) Warning
565 Warn about inappropriate attribute usage.
566
567 Wattributes=
568 Common Joined
569 Do not warn about specified attributes.
570
571 Wattribute-alias
572 Common Alias(Wattribute_alias=, 1, 0) Warning
573 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
574
575 Wattribute-alias=
576 Common Joined RejectNegative UInteger Var(warn_attribute_alias) Init(1) Warning IntegerRange(0, 2)
577 Warn about type safety and similar errors and mismatches in declarations with alias attributes.
578
579 Wcannot-profile
580 Common Var(warn_cannot_profile) Init(1) Warning
581 Warn when profiling instrumentation was requested, but could not be applied to
582 a certain function.
583
584 Wcast-align
585 Common Var(warn_cast_align) Warning
586 Warn about pointer casts which increase alignment.
587
588 Wcast-align=strict
589 Common Var(warn_cast_align,2) Warning
590 Warn about pointer casts which increase alignment.
591
592 Wcpp
593 Common Var(warn_cpp) Init(1) Warning
594 Warn when a #warning directive is encountered.
595
596 Wattribute-warning
597 Common Var(warn_attribute_warning) Init(1) Warning
598 Warn about uses of __attribute__((warning)) declarations.
599
600 Wdeprecated
601 Common Var(warn_deprecated) Init(1) Warning
602 Warn if a deprecated compiler feature, class, method, or field is used.
603
604 Wdeprecated-declarations
605 Common Var(warn_deprecated_decl) Init(1) Warning
606 Warn about uses of __attribute__((deprecated)) declarations.
607
608 Wdisabled-optimization
609 Common Var(warn_disabled_optimization) Warning
610 Warn when an optimization pass is disabled.
611
612 Werror
613 Common Var(warnings_are_errors)
614 Treat all warnings as errors.
615
616 Werror=
617 Common Joined
618 Treat specified warning as error.
619
620 Wextra
621 Common Var(extra_warnings) Warning
622 Print extra (possibly unwanted) warnings.
623
624 Wfatal-errors
625 Common Var(flag_fatal_errors)
626 Exit on the first error occurred.
627
628 Wframe-larger-than=
629 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_frame_larger_than_size) Init(HOST_WIDE_INT_MAX)
630 -Wframe-larger-than=<byte-size> Warn if a function's stack frame requires in excess of <byte-size>.
631
632 Wno-frame-larger-than
633 Common Alias(Wframe-larger-than=,18446744073709551615EiB,none) Warning
634 Disable -Wframe-larger-than= warning. Equivalent to -Wframe-larger-than=<SIZE_MAX> or larger.
635
636 Wfree-nonheap-object
637 Common Var(warn_free_nonheap_object) Init(1) Warning
638 Warn when attempting to free a non-heap object.
639
640 Whsa
641 Common Ignore Warning
642 Does nothing. Preserved for backward compatibility.
643
644 Wimplicit-fallthrough
645 Common Alias(Wimplicit-fallthrough=,3,0) Warning
646
647 Wimplicit-fallthrough=
648 Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5)
649 Warn when a switch case falls through.
650
651 Winfinite-recursion
652 Var(warn_infinite_recursion) Warning
653 Warn for infinitely recursive calls.
654
655 Winline
656 Common Var(warn_inline) Warning Optimization
657 Warn when an inlined function cannot be inlined.
658
659 Winvalid-memory-model
660 Common Var(warn_invalid_memory_model) Init(1) Warning
661 Warn when an atomic memory model parameter is known to be outside the valid range.
662
663 Wlarger-than-
664 Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
665
666 Wlarger-than=
667 Common RejectNegative Joined Host_Wide_Int ByteSize Warning Var(warn_larger_than_size) Init(HOST_WIDE_INT_MAX)
668 -Wlarger-than=<byte-size> Warn if an object's size exceeds <byte-size>.
669
670 Wno-larger-than
671 Common Alias(Wlarger-than=,18446744073709551615EiB,none) Warning
672 Disable -Wlarger-than= warning. Equivalent to -Wlarger-than=<SIZE_MAX> or larger.
673
674 Wnonnull-compare
675 Var(warn_nonnull_compare) Warning
676 Warn if comparing pointer parameter with nonnull attribute with NULL.
677
678 Wnull-dereference
679 Common Var(warn_null_dereference) Warning
680 Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
681
682 Wunsafe-loop-optimizations
683 Common Ignore Warning
684 Does nothing. Preserved for backward compatibility.
685
686 Wmissing-noreturn
687 Common Warning Alias(Wsuggest-attribute=noreturn)
688
689 Wodr
690 Common Var(warn_odr_violations) Init(1) Warning
691 Warn about some C++ One Definition Rule violations during link time optimization.
692
693 Woverflow
694 Common Var(warn_overflow) Init(1) Warning
695 Warn about overflow in arithmetic expressions.
696
697 Wlto-type-mismatch
698 Common Var(warn_lto_type_mismatch) Init(1) Warning
699 During link time optimization warn about mismatched types of global declarations.
700
701 Wpacked
702 Common Var(warn_packed) Warning
703 Warn when the packed attribute has no effect on struct layout.
704
705 Wpadded
706 Common Var(warn_padded) Warning
707 Warn when padding is required to align structure members.
708
709 Wpedantic
710 Common Var(pedantic) Init(0) Warning
711 Issue warnings needed for strict compliance to the standard.
712
713 Wreturn-local-addr
714 Common Var(warn_return_local_addr) Init(1) Warning
715 Warn about returning a pointer/reference to a local or temporary variable.
716
717 Wshadow
718 Common Var(warn_shadow) Warning
719 Warn when one variable shadows another. Same as -Wshadow=global.
720
721 Wshadow=global
722 Common Warning Alias(Wshadow)
723 Warn when one variable shadows another (globally).
724
725 Wshadow=local
726 Common Var(warn_shadow_local) Warning EnabledBy(Wshadow)
727 Warn when one local variable shadows another local variable or parameter.
728
729 Wshadow-local
730 Common Warning Undocumented Alias(Wshadow=local)
731
732 Wshadow=compatible-local
733 Common Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local)
734 Warn when one local variable shadows another local variable or parameter of compatible type.
735
736 Wshadow-compatible-local
737 Common Warning Undocumented Alias(Wshadow=compatible-local)
738
739 Wstack-protector
740 Common Var(warn_stack_protect) Warning
741 Warn when not issuing stack smashing protection for some reason.
742
743 Wstack-usage=
744 Common Joined RejectNegative Host_Wide_Int ByteSize Var(warn_stack_usage) Warning Init(HOST_WIDE_INT_MAX)
745 -Wstack-usage=<byte-size> Warn if stack usage might exceed <byte-size>.
746
747 Wno-stack-usage
748 Common Alias(Wstack-usage=,18446744073709551615EiB,none) Warning
749 Disable Wstack-usage= warning. Equivalent to Wstack-usage=<SIZE_MAX> or larger.
750
751 Wstrict-aliasing
752 Common Warning
753 Warn about code which might break strict aliasing rules.
754
755 Wstrict-aliasing=
756 Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
757 Warn about code which might break strict aliasing rules.
758
759 Wstrict-overflow
760 Common Warning
761 Warn about optimizations that assume that signed overflow is undefined.
762
763 Wstrict-overflow=
764 Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
765 Warn about optimizations that assume that signed overflow is undefined.
766
767 Wsuggest-attribute=cold
768 Common Var(warn_suggest_attribute_cold) Warning
769 Warn about functions which might be candidates for __attribute__((cold)).
770
771 Wsuggest-attribute=const
772 Common Var(warn_suggest_attribute_const) Warning
773 Warn about functions which might be candidates for __attribute__((const)).
774
775 Wsuggest-attribute=pure
776 Common Var(warn_suggest_attribute_pure) Warning
777 Warn about functions which might be candidates for __attribute__((pure)).
778
779 Wsuggest-attribute=noreturn
780 Common Var(warn_suggest_attribute_noreturn) Warning
781 Warn about functions which might be candidates for __attribute__((noreturn)).
782
783 Wsuggest-attribute=malloc
784 Common Var(warn_suggest_attribute_malloc) Warning
785 Warn about functions which might be candidates for __attribute__((malloc)).
786
787 Wsuggest-final-types
788 Common Var(warn_suggest_final_types) Warning
789 Warn about C++ polymorphic types where adding final keyword would improve code quality.
790
791 Wsuggest-final-methods
792 Common Var(warn_suggest_final_methods) Warning
793 Warn about C++ virtual methods where adding final keyword would improve code quality.
794
795 Wswitch-unreachable
796 Common Var(warn_switch_unreachable) Warning Init(1)
797 Warn about statements between switch's controlling expression and the first
798 case.
799
800 Wsystem-headers
801 Common Var(warn_system_headers) Warning
802 Do not suppress warnings from system headers.
803
804 Wtrampolines
805 Common Var(warn_trampolines) Warning
806 Warn whenever a trampoline is generated.
807
808 Wtrivial-auto-var-init
809 Common Var(warn_trivial_auto_var_init) Warning Init(0)
810 Warn about cases where -ftrivial-auto-var-init cannot initialize an auto variable.
811
812 Wtype-limits
813 Common Var(warn_type_limits) Warning EnabledBy(Wextra)
814 Warn if a comparison is always true or always false due to the limited range of the data type.
815
816 Wuninitialized
817 Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
818 Warn about uninitialized automatic variables.
819
820 Wmaybe-uninitialized
821 Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
822 Warn about maybe uninitialized automatic variables.
823
824 Wunreachable-code
825 Common Ignore Warning
826 Does nothing. Preserved for backward compatibility.
827
828 Wunused
829 Common Var(warn_unused) Init(0) Warning
830 Enable all -Wunused- warnings.
831
832 Wunused-but-set-parameter
833 Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
834 Warn when a function parameter is only set, otherwise unused.
835
836 Wunused-but-set-variable
837 Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
838 Warn when a variable is only set, otherwise unused.
839
840 Wunused-function
841 Common Var(warn_unused_function) Warning EnabledBy(Wunused)
842 Warn when a function is unused.
843
844 Wunused-label
845 Common Var(warn_unused_label) Warning EnabledBy(Wunused)
846 Warn when a label is unused.
847
848 Wunused-parameter
849 Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
850 Warn when a function parameter is unused.
851
852 Wunused-value
853 Common Var(warn_unused_value) Warning EnabledBy(Wunused)
854 Warn when an expression value is unused.
855
856 Wunused-variable
857 Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
858 Warn when a variable is unused.
859
860 Wcoverage-mismatch
861 Common Var(warn_coverage_mismatch) Init(1) Warning
862 Warn in case profiles in -fprofile-use do not match.
863
864 Wcoverage-invalid-line-number
865 Common Var(warn_coverage_invalid_linenum) Init(1) Warning
866 Warn in case a function ends earlier than it begins due to an invalid linenum macros.
867
868 Wmissing-profile
869 Common Var(warn_missing_profile) Init(1) Warning
870 Warn in case profiles in -fprofile-use do not exist.
871
872 Wvector-operation-performance
873 Common Var(warn_vector_operation_performance) Warning
874 Warn when a vector operation is compiled outside the SIMD.
875
876 Wtsan
877 Common Var(warn_tsan) Init(1) Warning
878 Warn about unsupported features in ThreadSanitizer.
879
880 Xassembler
881 Driver Separate
882
883 Xlinker
884 Driver Separate
885
886 Xpreprocessor
887 Driver Separate
888
889 Z
890 Driver
891
892 aux-info
893 Common Separate Var(aux_info_file_name)
894 -aux-info <file> Emit declaration information into <file>.
895
896 aux-info=
897 Common Joined Alias(aux-info)
898
899 coverage
900 Driver
901
902 c
903 Driver
904
905 d
906 Common Joined
907 -d<letters> Enable dumps from specific passes of the compiler.
908
909 dumpbase
910 Driver Common Separate Var(dump_base_name)
911 -dumpbase <file> Set the file basename to be used for dumps.
912
913 dumpbase-ext
914 Driver Common Separate Var(dump_base_ext)
915 -dumpbase-ext .<ext> Drop a trailing .<ext> from the dump basename to name auxiliary output files.
916
917 dumpdir
918 Driver Common Separate Var(dump_dir_name)
919 -dumpdir <dir> Set the directory name to be used for dumps.
920
921 dumpmachine
922 Driver
923
924 dumpspecs
925 Driver
926
927 dumpversion
928 Driver
929
930 dumpfullversion
931 Driver
932
933 e
934 Driver Joined Separate
935
936 ; This option has historically been passed down to the linker by an
937 ; accident of a %{e*} spec, so ensure it continues to be passed down
938 ; as a single option. The supported option for this purpose is
939 ; -rdynamic. See PR 47390.
940 export-dynamic
941 Driver Undocumented
942
943 ; The version of the C++ ABI in use. The following values are allowed:
944 ;
945 ; 0: The version of the ABI believed most conformant with the C++ ABI
946 ; specification. This ABI may change as bugs are discovered and fixed.
947 ; Therefore, 0 will not necessarily indicate the same ABI in different
948 ; versions of G++.
949 ;
950 ; 1: The version of the ABI first used in G++ 3.2. No longer selectable.
951 ;
952 ; 2: The version of the ABI first used in G++ 3.4, and the default
953 ; until GCC 4.9.
954 ;
955 ; 3: The version of the ABI that fixes the missing underscore
956 ; in template non-type arguments of pointer type.
957 ;
958 ; 4: The version of the ABI that introduces unambiguous mangling of
959 ; vector types. First selectable in G++ 4.5.
960 ;
961 ; 5: The version of the ABI that ignores attribute const/noreturn
962 ; in function pointer mangling, and corrects mangling of decltype and
963 ; function parameters used in other parameters and the return type.
964 ; First selectable in G++ 4.6.
965 ;
966 ; 6: The version of the ABI that doesn't promote scoped enums to int and
967 ; changes the mangling of template argument packs, const/static_cast,
968 ; prefix ++ and --, and a class scope function used as a template
969 ; argument.
970 ; First selectable in G++ 4.7.
971 ;
972 ; 7: The version of the ABI that treats nullptr_t as a builtin type and
973 ; corrects the mangling of lambdas in default argument scope.
974 ; First selectable in G++ 4.8.
975 ;
976 ; 8: The version of the ABI that corrects the substitution behavior of
977 ; function types with function-cv-qualifiers.
978 ; First selectable in G++ 4.9 and default in G++ 5.
979 ;
980 ; 9: The version of the ABI that corrects the alignment of nullptr_t.
981 ; First selectable and default in G++ 5.2.
982 ;
983 ; 10: The version of the ABI that mangles attributes that affect type
984 ; identity, such as ia32 calling convention attributes (stdcall, etc.)
985 ; Default in G++ 6 (set in c_common_post_options).
986 ;
987 ; 11: The version of the ABI that corrects mangling of sizeof... expressions
988 ; and introduces new inheriting constructor handling.
989 ; Default in G++ 7.
990 ;
991 ; 12: Corrects the calling convention for classes with only deleted copy/move
992 ; constructors and changes passing/returning of empty records.
993 ; Default in G++ 8.1.
994 ;
995 ; 13: Fixes the accidental change in 12 to the calling convention for classes
996 ; with deleted copy constructor and trivial move constructor.
997 ; Default in G++ 8.2.
998 ;
999 ; 14: Corrects the mangling of nullptr expression.
1000 ; Default in G++ 10.
1001 ;
1002 ; 15: Corrects G++ 10 ABI tag regression [PR98481].
1003 ; Available, but not default, in G++ 10.3.
1004 ;
1005 ; 16: Changes the mangling of __alignof__ to be distinct from that of alignof.
1006 ; Adds missing 'on' in mangling of operator names in some cases.
1007 ; Default in G++ 11.
1008 ;
1009 ; 17: Fixes layout of classes that inherit from aggregate classes with default
1010 ; member initializers in C++14 and up.
1011 ; Default in G++ 12.
1012 ;
1013 ; Additional positive integers will be assigned as new versions of
1014 ; the ABI become the default version of the ABI.
1015 fabi-version=
1016 Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
1017 The version of the C++ ABI in use.
1018
1019 faggressive-loop-optimizations
1020 Common Var(flag_aggressive_loop_optimizations) Optimization Init(1)
1021 Aggressively optimize loops using language constraints.
1022
1023 falign-functions
1024 Common Var(flag_align_functions) Optimization
1025 Align the start of functions.
1026
1027 falign-functions=
1028 Common RejectNegative Joined Var(str_align_functions) Optimization
1029
1030 flimit-function-alignment
1031 Common Var(flag_limit_function_alignment) Optimization Init(0)
1032
1033 falign-jumps
1034 Common Var(flag_align_jumps) Optimization
1035 Align labels which are only reached by jumping.
1036
1037 falign-jumps=
1038 Common RejectNegative Joined Var(str_align_jumps) Optimization
1039
1040 falign-labels
1041 Common Var(flag_align_labels) Optimization
1042 Align all labels.
1043
1044 falign-labels=
1045 Common RejectNegative Joined Var(str_align_labels) Optimization
1046
1047 falign-loops
1048 Common Var(flag_align_loops) Optimization
1049 Align the start of loops.
1050
1051 falign-loops=
1052 Common RejectNegative Joined Var(str_align_loops) Optimization
1053
1054 fallow-store-data-races
1055 Common Var(flag_store_data_races) Optimization
1056 Allow the compiler to introduce new data races on stores.
1057
1058 fanalyzer
1059 Common Var(flag_analyzer)
1060 Enable static analysis pass.
1061
1062 fargument-alias
1063 Common Ignore
1064 Does nothing. Preserved for backward compatibility.
1065
1066 fargument-noalias
1067 Common Ignore
1068 Does nothing. Preserved for backward compatibility.
1069
1070 fargument-noalias-global
1071 Common Ignore
1072 Does nothing. Preserved for backward compatibility.
1073
1074 fargument-noalias-anything
1075 Common Ignore
1076 Does nothing. Preserved for backward compatibility.
1077
1078 fsanitize=
1079 Common Driver Joined
1080 Select what to sanitize.
1081
1082 fsanitize-coverage=
1083 Common Joined Enum(sanitize_coverage) Var(flag_sanitize_coverage) EnumBitSet
1084 Select type of coverage sanitization.
1085
1086 Enum
1087 Name(sanitize_coverage) Type(int)
1088
1089 EnumValue
1090 Enum(sanitize_coverage) String(trace-pc) Value(SANITIZE_COV_TRACE_PC)
1091
1092 EnumValue
1093 Enum(sanitize_coverage) String(trace-cmp) Value(SANITIZE_COV_TRACE_CMP)
1094
1095 fasan-shadow-offset=
1096 Common Joined RejectNegative Var(common_deferred_options) Defer
1097 -fasan-shadow-offset=<number> Use custom shadow memory offset.
1098
1099 fsanitize-sections=
1100 Common Joined RejectNegative Var(common_deferred_options) Defer
1101 -fsanitize-sections=<sec1,sec2,...> Sanitize global variables
1102 in user-defined sections.
1103
1104 fsanitize-recover=
1105 Common Joined
1106 After diagnosing undefined behavior attempt to continue execution.
1107
1108 fsanitize-recover
1109 Common
1110 This switch is deprecated; use -fsanitize-recover= instead.
1111
1112 fsanitize-trap=
1113 Common Driver Joined
1114 Use traps instead of diagnostics of undefined behavior sanitizers.
1115
1116 fsanitize-trap
1117 Common Driver
1118
1119 fsanitize-address-use-after-scope
1120 Common Driver Var(flag_sanitize_address_use_after_scope) Init(0)
1121
1122 fsanitize-undefined-trap-on-error
1123 Common Driver Alias(fsanitize-trap)
1124 This switch is deprecated; use -fsanitize-trap= instead.
1125
1126 fasynchronous-unwind-tables
1127 Common Var(flag_asynchronous_unwind_tables) Optimization
1128 Generate unwind tables that are exact at each instruction boundary.
1129
1130 fauto-inc-dec
1131 Common Var(flag_auto_inc_dec) Init(1) Optimization
1132 Generate auto-inc/dec instructions.
1133
1134 fauto-profile
1135 Common Var(flag_auto_profile)
1136 Use sample profile information for call graph node weights. The default
1137 profile file is fbdata.afdo in 'pwd'.
1138
1139 fauto-profile=
1140 Common Joined RejectNegative Var(auto_profile_file)
1141 Use sample profile information for call graph node weights. The profile
1142 file is specified in the argument.
1143
1144 ; -fcheck-bounds causes gcc to generate array bounds checks.
1145 ; For C, C++ and ObjC: defaults off.
1146 ; For Java: defaults to on.
1147 ; For Fortran: defaults to off.
1148 fbounds-check
1149 Common Var(flag_bounds_check)
1150 Generate code to check bounds before indexing arrays.
1151
1152 fbranch-count-reg
1153 Common Var(flag_branch_on_count_reg) Optimization
1154 Replace add, compare, branch with branch on count register.
1155
1156 fbranch-probabilities
1157 Common Var(flag_branch_probabilities) Optimization
1158 Use profiling information for branch probabilities.
1159
1160 fbranch-target-load-optimize
1161 Common Ignore
1162 Does nothing. Preserved for backward compatibility.
1163
1164 fbranch-target-load-optimize2
1165 Common Ignore
1166 Does nothing. Preserved for backward compatibility.
1167
1168 fbtr-bb-exclusive
1169 Common Ignore
1170 Does nothing. Preserved for backward compatibility.
1171
1172 fcallgraph-info
1173 Common RejectNegative Var(flag_callgraph_info) Init(NO_CALLGRAPH_INFO);
1174 Output callgraph information on a per-file basis.
1175
1176 fcallgraph-info=
1177 Common RejectNegative Joined
1178 Output callgraph information on a per-file basis with decorations.
1179
1180 fcall-saved-
1181 Common Joined RejectNegative Var(common_deferred_options) Defer
1182 -fcall-saved-<register> Mark <register> as being preserved across functions.
1183
1184 fcall-used-
1185 Common Joined RejectNegative Var(common_deferred_options) Defer
1186 -fcall-used-<register> Mark <register> as being corrupted by function calls.
1187
1188 ; Nonzero for -fcaller-saves: allocate values in regs that need to
1189 ; be saved across function calls, if that produces overall better code.
1190 ; Optional now, so people can test it.
1191 fcaller-saves
1192 Common Var(flag_caller_saves) Optimization
1193 Save registers around function calls.
1194
1195 fcheck-data-deps
1196 Common Ignore
1197 This switch is deprecated; do not use.
1198
1199 fcheck-new
1200 Common Var(flag_check_new)
1201 Check the return value of new in C++.
1202
1203 fchecking
1204 Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0)
1205 Perform internal consistency checkings.
1206
1207 fchecking=
1208 Common Joined RejectNegative UInteger Var(flag_checking)
1209 Perform internal consistency checkings.
1210
1211 fcode-hoisting
1212 Common Var(flag_code_hoisting) Optimization
1213 Enable code hoisting.
1214
1215 fcombine-stack-adjustments
1216 Common Var(flag_combine_stack_adjustments) Optimization
1217 Looks for opportunities to reduce stack adjustments and stack references.
1218
1219 fcommon
1220 Common Var(flag_no_common,0) Init(1)
1221 Put uninitialized globals in the common section.
1222
1223 fcompare-debug
1224 Driver
1225 ; Converted by the driver to -fcompare-debug= options.
1226
1227 fcompare-debug=
1228 Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
1229 -fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump.
1230
1231 fcompare-debug-second
1232 Common Driver RejectNegative Var(flag_compare_debug)
1233 Run only the second compilation of -fcompare-debug.
1234
1235 fcompare-elim
1236 Common Var(flag_compare_elim_after_reload) Optimization
1237 Perform comparison elimination after register allocation has finished.
1238
1239 fconserve-stack
1240 Common Var(flag_conserve_stack) Optimization
1241 Do not perform optimizations increasing noticeably stack usage.
1242
1243 fcprop-registers
1244 Common Var(flag_cprop_registers) Optimization
1245 Perform a register copy-propagation optimization pass.
1246
1247 fcrossjumping
1248 Common Var(flag_crossjumping) Optimization
1249 Perform cross-jumping optimization.
1250
1251 fcse-follow-jumps
1252 Common Var(flag_cse_follow_jumps) Optimization
1253 When running CSE, follow jumps to their targets.
1254
1255 fcse-skip-blocks
1256 Common Ignore
1257 Does nothing. Preserved for backward compatibility.
1258
1259 fcx-limited-range
1260 Common Var(flag_cx_limited_range) Optimization SetByCombined
1261 Omit range reduction step when performing complex division.
1262
1263 fcx-fortran-rules
1264 Common Var(flag_cx_fortran_rules) Optimization
1265 Complex multiplication and division follow Fortran rules.
1266
1267 fdata-sections
1268 Common Var(flag_data_sections)
1269 Place data items into their own section.
1270
1271 fdbg-cnt-list
1272 Common Var(flag_dbg_cnt_list)
1273 List all available debugging counters with their limits and counts.
1274
1275 fdbg-cnt=
1276 Common RejectNegative Joined Var(common_deferred_options) Defer
1277 -fdbg-cnt=<counter>[:<lower_limit1>-]<upper_limit1>[:<lower_limit2>-<upper_limit2>:...][,<counter>:...] Set the debug counter limit.
1278
1279 fdebug-prefix-map=
1280 Common Joined RejectNegative Var(common_deferred_options) Defer
1281 -fdebug-prefix-map=<old>=<new> Map one directory name to another in debug information.
1282
1283 ffile-prefix-map=
1284 Common Joined RejectNegative Var(common_deferred_options) Defer
1285 -ffile-prefix-map=<old>=<new> Map one directory name to another in compilation result.
1286
1287 fdebug-types-section
1288 Common Var(flag_debug_types_section) Init(0)
1289 Output .debug_types section when using DWARF v4 debuginfo.
1290
1291 ; Nonzero for -fdefer-pop: don't pop args after each function call
1292 ; instead save them up to pop many calls' args with one insns.
1293 fdefer-pop
1294 Common Var(flag_defer_pop) Optimization
1295 Defer popping functions args from stack until later.
1296
1297 fdelayed-branch
1298 Common Var(flag_delayed_branch) Optimization
1299 Attempt to fill delay slots of branch instructions.
1300
1301 fdelete-dead-exceptions
1302 Common Var(flag_delete_dead_exceptions) Init(0) Optimization
1303 Delete dead instructions that may throw exceptions.
1304
1305 fdelete-null-pointer-checks
1306 Common Var(flag_delete_null_pointer_checks) Init(-1) Optimization
1307 Delete useless null pointer checks.
1308
1309 fdevirtualize-at-ltrans
1310 Common Var(flag_ltrans_devirtualize)
1311 Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
1312
1313 fdevirtualize-speculatively
1314 Common Var(flag_devirtualize_speculatively) Optimization
1315 Perform speculative devirtualization.
1316
1317 fdevirtualize
1318 Common Var(flag_devirtualize) Optimization
1319 Try to convert virtual calls to direct ones.
1320
1321 fdiagnostics-show-location=
1322 Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
1323 -fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics.
1324
1325 ; Required for these enum values.
1326 SourceInclude
1327 pretty-print.h
1328
1329 Enum
1330 Name(diagnostic_prefixing_rule) Type(int)
1331
1332 EnumValue
1333 Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
1334
1335 EnumValue
1336 Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
1337
1338 fdiagnostics-show-caret
1339 Common Var(flag_diagnostics_show_caret) Init(1)
1340 Show the source line with a caret indicating the column.
1341
1342 fdiagnostics-show-labels
1343 Common Var(flag_diagnostics_show_labels) Init(1)
1344 Show labels annotating ranges of source code when showing source.
1345
1346 fdiagnostics-show-line-numbers
1347 Common Var(flag_diagnostics_show_line_numbers) Init(1)
1348 Show line numbers in the left margin when showing source.
1349
1350 fdiagnostics-color
1351 Common Alias(fdiagnostics-color=,always,never)
1352 ;
1353
1354 fdiagnostics-color=
1355 Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
1356 -fdiagnostics-color=[never|always|auto] Colorize diagnostics.
1357
1358 ; Required for these enum values.
1359 SourceInclude
1360 diagnostic-color.h
1361
1362 Enum
1363 Name(diagnostic_color_rule) Type(int)
1364
1365 EnumValue
1366 Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
1367
1368 EnumValue
1369 Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
1370
1371 EnumValue
1372 Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
1373
1374 fdiagnostics-urls=
1375 Driver Common Joined RejectNegative Var(flag_diagnostics_show_urls) Enum(diagnostic_url_rule) Init(DIAGNOSTICS_URL_AUTO)
1376 -fdiagnostics-urls=[never|always|auto] Embed URLs in diagnostics.
1377
1378 ; Required for these enum values.
1379 SourceInclude
1380 diagnostic-url.h
1381
1382 Enum
1383 Name(diagnostic_url_rule) Type(int)
1384
1385 EnumValue
1386 Enum(diagnostic_url_rule) String(never) Value(DIAGNOSTICS_URL_NO)
1387
1388 EnumValue
1389 Enum(diagnostic_url_rule) String(always) Value(DIAGNOSTICS_URL_YES)
1390
1391 EnumValue
1392 Enum(diagnostic_url_rule) String(auto) Value(DIAGNOSTICS_URL_AUTO)
1393
1394 fdiagnostics-column-unit=
1395 Common Joined RejectNegative Enum(diagnostics_column_unit)
1396 -fdiagnostics-column-unit=[display|byte] Select whether column numbers are output as display columns (default) or raw bytes.
1397
1398 fdiagnostics-column-origin=
1399 Common Joined RejectNegative UInteger
1400 -fdiagnostics-column-origin=<number> Set the number of the first column. The default is 1-based as per GNU style, but some utilities may expect 0-based, for example.
1401
1402 fdiagnostics-format=
1403 Common Joined RejectNegative Enum(diagnostics_output_format)
1404 -fdiagnostics-format=[text|sarif-stderr|sarif-file|json|json-stderr|json-file] Select output format.
1405
1406 fdiagnostics-escape-format=
1407 Common Joined RejectNegative Enum(diagnostics_escape_format)
1408 -fdiagnostics-escape-format=[unicode|bytes] Select how to escape non-printable-ASCII bytes in the source for diagnostics that suggest it.
1409
1410 ; Required for these enum values.
1411 SourceInclude
1412 diagnostic.h
1413
1414 Enum
1415 Name(diagnostics_column_unit) Type(int)
1416
1417 EnumValue
1418 Enum(diagnostics_column_unit) String(display) Value(DIAGNOSTICS_COLUMN_UNIT_DISPLAY)
1419
1420 EnumValue
1421 Enum(diagnostics_column_unit) String(byte) Value(DIAGNOSTICS_COLUMN_UNIT_BYTE)
1422
1423 Enum
1424 Name(diagnostics_escape_format) Type(int)
1425
1426 EnumValue
1427 Enum(diagnostics_escape_format) String(unicode) Value(DIAGNOSTICS_ESCAPE_FORMAT_UNICODE)
1428
1429 EnumValue
1430 Enum(diagnostics_escape_format) String(bytes) Value(DIAGNOSTICS_ESCAPE_FORMAT_BYTES)
1431
1432 Enum
1433 Name(diagnostics_output_format) Type(int)
1434
1435 EnumValue
1436 Enum(diagnostics_output_format) String(text) Value(DIAGNOSTICS_OUTPUT_FORMAT_TEXT)
1437
1438 EnumValue
1439 Enum(diagnostics_output_format) String(json) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR)
1440
1441 EnumValue
1442 Enum(diagnostics_output_format) String(json-stderr) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON_STDERR)
1443
1444 EnumValue
1445 Enum(diagnostics_output_format) String(json-file) Value(DIAGNOSTICS_OUTPUT_FORMAT_JSON_FILE)
1446
1447 EnumValue
1448 Enum(diagnostics_output_format) String(sarif-stderr) Value(DIAGNOSTICS_OUTPUT_FORMAT_SARIF_STDERR)
1449
1450 EnumValue
1451 Enum(diagnostics_output_format) String(sarif-file) Value(DIAGNOSTICS_OUTPUT_FORMAT_SARIF_FILE)
1452
1453 fdiagnostics-parseable-fixits
1454 Common Var(flag_diagnostics_parseable_fixits)
1455 Print fix-it hints in machine-readable form.
1456
1457 fdiagnostics-generate-patch
1458 Common Var(flag_diagnostics_generate_patch)
1459 Print fix-it hints to stderr in unified diff format.
1460
1461 fdiagnostics-show-option
1462 Common Var(flag_diagnostics_show_option) Init(1)
1463 Amend appropriate diagnostic messages with the command line option that controls them.
1464
1465 fdiagnostics-show-cwe
1466 Common Var(flag_diagnostics_show_cwe) Init(1)
1467 Print CWE identifiers for diagnostic messages, where available.
1468
1469 fdiagnostics-show-rules
1470 Common Var(flag_diagnostics_show_rules) Init(1)
1471 Print any rules associated with diagnostic messages.
1472
1473 fdiagnostics-path-format=
1474 Common Joined RejectNegative Var(flag_diagnostics_path_format) Enum(diagnostic_path_format) Init(DPF_INLINE_EVENTS)
1475 Specify how to print any control-flow path associated with a diagnostic.
1476
1477 fdiagnostics-plain-output
1478 Driver Common RejectNegative
1479 Turn off any diagnostics features that complicate the output, such as line numbers, color, and warning URLs.
1480
1481 ftabstop=
1482 Common Joined RejectNegative UInteger
1483 -ftabstop=<number> Distance between tab stops for column reporting.
1484
1485 Enum
1486 Name(diagnostic_path_format) Type(int)
1487
1488 EnumValue
1489 Enum(diagnostic_path_format) String(none) Value(DPF_NONE)
1490
1491 EnumValue
1492 Enum(diagnostic_path_format) String(separate-events) Value(DPF_SEPARATE_EVENTS)
1493
1494 EnumValue
1495 Enum(diagnostic_path_format) String(inline-events) Value(DPF_INLINE_EVENTS)
1496
1497 fdiagnostics-show-path-depths
1498 Common Var(flag_diagnostics_show_path_depths) Init(0)
1499 Show stack depths of events in paths.
1500
1501 fdiagnostics-minimum-margin-width=
1502 Common Joined UInteger Var(diagnostics_minimum_margin_width) Init(6)
1503 Set minimum width of left margin of source code when showing source.
1504
1505 fdisable-
1506 Common Joined RejectNegative Var(common_deferred_options) Defer
1507 -fdisable-[tree|rtl|ipa]-<pass>=range1+range2 Disable an optimization pass.
1508
1509 fenable-
1510 Common Joined RejectNegative Var(common_deferred_options) Defer
1511 -fenable-[tree|rtl|ipa]-<pass>=range1+range2 Enable an optimization pass.
1512
1513 fdump-
1514 Common Joined RejectNegative Var(common_deferred_options) Defer
1515 -fdump-<type> Dump various compiler internals to a file.
1516
1517 fdump-final-insns
1518 Driver RejectNegative
1519
1520 fdump-final-insns=
1521 Common RejectNegative Joined Var(flag_dump_final_insns)
1522 -fdump-final-insns=filename Dump to filename the insns at the end of translation.
1523
1524 fdump-go-spec=
1525 Common RejectNegative Joined Var(flag_dump_go_spec)
1526 -fdump-go-spec=filename Write all declarations to file as Go code.
1527
1528 fdump-noaddr
1529 Common Var(flag_dump_noaddr)
1530 Suppress output of addresses in debugging dumps.
1531
1532 freport-bug
1533 Common Driver Var(flag_report_bug)
1534 Collect and dump debug information into temporary file if ICE in C/C++
1535 compiler occurred.
1536
1537 fdump-internal-locations
1538 Common Var(flag_dump_locations) Init(0)
1539 Dump detailed information on GCC's internal representation of source code locations.
1540
1541 fdump-passes
1542 Common Var(flag_dump_passes) Init(0)
1543 Dump optimization passes.
1544
1545 fdump-unnumbered
1546 Common Var(flag_dump_unnumbered)
1547 Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
1548
1549 fdump-unnumbered-links
1550 Common Var(flag_dump_unnumbered_links)
1551 Suppress output of previous and next insn numbers in debugging dumps.
1552
1553 fdwarf2-cfi-asm
1554 Common Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1555 Enable CFI tables via GAS assembler directives.
1556
1557 fearly-inlining
1558 Common Var(flag_early_inlining) Init(1) Optimization
1559 Perform early inlining.
1560
1561 feliminate-dwarf2-dups
1562 Common Ignore
1563 Does nothing. Preserved for backward compatibility.
1564
1565 fipa-sra
1566 Common Var(flag_ipa_sra) Init(0) Optimization
1567 Perform interprocedural reduction of aggregates.
1568
1569 feliminate-unused-debug-symbols
1570 Common Var(flag_debug_only_used_symbols) Init(1)
1571 Perform unused symbol elimination in debug info.
1572
1573 feliminate-unused-debug-types
1574 Common Var(flag_eliminate_unused_debug_types) Init(1)
1575 Perform unused type elimination in debug info.
1576
1577 femit-class-debug-always
1578 Common Var(flag_emit_class_debug_always) Init(0)
1579 Do not suppress C++ class debug information.
1580
1581 fexceptions
1582 Common Var(flag_exceptions) Optimization EnabledBy(fnon-call-exceptions)
1583 Enable exception handling.
1584
1585 fexpensive-optimizations
1586 Common Var(flag_expensive_optimizations) Optimization
1587 Perform a number of minor, expensive optimizations.
1588
1589 fexcess-precision=
1590 Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision) Init(EXCESS_PRECISION_DEFAULT) Optimization SetByCombined
1591 -fexcess-precision=[fast|standard|16] Specify handling of excess floating-point precision.
1592
1593 Enum
1594 Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1595
1596 EnumValue
1597 Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1598
1599 EnumValue
1600 Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1601
1602 EnumValue
1603 Enum(excess_precision) String(16) Value(EXCESS_PRECISION_FLOAT16)
1604
1605 ; Whether we permit the extended set of values for FLT_EVAL_METHOD
1606 ; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11.
1607 fpermitted-flt-eval-methods=
1608 Common Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT)
1609 -fpermitted-flt-eval-methods=[c11|ts-18661] Specify which values of FLT_EVAL_METHOD are permitted.
1610
1611 Enum
1612 Name(permitted_flt_eval_methods) Type(enum permitted_flt_eval_methods) UnknownError(unknown specification for the set of FLT_EVAL_METHOD values to permit %qs)
1613
1614 EnumValue
1615 Enum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11)
1616
1617 EnumValue
1618 Enum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
1619
1620 ffast-math
1621 Common Optimization
1622
1623 ffat-lto-objects
1624 Common Var(flag_fat_lto_objects)
1625 Output lto objects containing both the intermediate language and binary output.
1626
1627 ffinite-math-only
1628 Common Var(flag_finite_math_only) Optimization SetByCombined
1629 Assume no NaNs or infinities are generated.
1630
1631 ffinite-loops
1632 Common Var(flag_finite_loops) Optimization Init(0)
1633 Assume that loops with an exit will terminate and not loop indefinitely.
1634
1635 ffixed-
1636 Common Joined RejectNegative Var(common_deferred_options) Defer
1637 -ffixed-<register> Mark <register> as being unavailable to the compiler.
1638
1639 ffloat-store
1640 Common Var(flag_float_store) Optimization
1641 Don't allocate floats and doubles in extended-precision registers.
1642
1643 fforce-addr
1644 Common Ignore
1645 Does nothing. Preserved for backward compatibility.
1646
1647 fforward-propagate
1648 Common Var(flag_forward_propagate) Optimization
1649 Perform a forward propagation pass on RTL.
1650
1651 ffp-contract=
1652 Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
1653 -ffp-contract=[off|on|fast] Perform floating-point expression contraction.
1654
1655 Enum
1656 Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1657
1658 EnumValue
1659 Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1660
1661 ; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1662 EnumValue
1663 Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1664
1665 EnumValue
1666 Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1667
1668 ffp-int-builtin-inexact
1669 Common Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1670 Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1671
1672 ; Nonzero means don't put addresses of constant functions in registers.
1673 ; Used for compiling the Unix kernel, where strange substitutions are
1674 ; done on the assembly output.
1675 ffunction-cse
1676 Common Var(flag_no_function_cse,0) Optimization
1677 Allow function addresses to be held in registers.
1678
1679 ffunction-sections
1680 Common Var(flag_function_sections)
1681 Place each function into its own section.
1682
1683 fgcse
1684 Common Var(flag_gcse) Optimization
1685 Perform global common subexpression elimination.
1686
1687 fgcse-lm
1688 Common Var(flag_gcse_lm) Init(1) Optimization
1689 Perform enhanced load motion during global common subexpression elimination.
1690
1691 fgcse-sm
1692 Common Var(flag_gcse_sm) Init(0) Optimization
1693 Perform store motion after global common subexpression elimination.
1694
1695 fgcse-las
1696 Common Var(flag_gcse_las) Init(0) Optimization
1697 Perform redundant load after store elimination in global common subexpression
1698 elimination.
1699
1700 fgcse-after-reload
1701 Common Var(flag_gcse_after_reload) Optimization
1702 Perform global common subexpression elimination after register allocation has
1703 finished.
1704
1705 Enum
1706 Name(dwarf_gnat_encodings) Type(int)
1707
1708 EnumValue
1709 Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1710
1711 EnumValue
1712 Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1713
1714 EnumValue
1715 Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1716
1717 fgnat-encodings=
1718 Common Enum(dwarf_gnat_encodings) Joined RejectNegative Undocumented Var(gnat_encodings)
1719 -fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information.
1720
1721 ; This option is not documented yet as its semantics will change.
1722 fgraphite
1723 Common Var(flag_graphite) Optimization
1724 Enable in and out of Graphite representation.
1725
1726 fgraphite-identity
1727 Common Var(flag_graphite_identity) Optimization
1728 Enable Graphite Identity transformation.
1729
1730 fhoist-adjacent-loads
1731 Common Var(flag_hoist_adjacent_loads) Optimization
1732 Enable hoisting adjacent loads to encourage generating conditional move
1733 instructions.
1734
1735 fkeep-gc-roots-live
1736 Common Undocumented Var(flag_keep_gc_roots_live) Optimization
1737 ; Always keep a pointer to a live memory block
1738
1739 flarge-source-files
1740 Common Var(flag_large_source_files) Init(0)
1741 Improve GCC's ability to track column numbers in large source files,
1742 at the expense of slower compilation.
1743
1744 floop-parallelize-all
1745 Common Var(flag_loop_parallelize_all) Optimization
1746 Mark all loops as parallel.
1747
1748 floop-strip-mine
1749 Common Alias(floop-nest-optimize)
1750 Enable loop nest transforms. Same as -floop-nest-optimize.
1751
1752 floop-interchange
1753 Common Var(flag_loop_interchange) Optimization
1754 Enable loop interchange on trees.
1755
1756 floop-block
1757 Common Alias(floop-nest-optimize)
1758 Enable loop nest transforms. Same as -floop-nest-optimize.
1759
1760 floop-unroll-and-jam
1761 Common Var(flag_unroll_jam) Optimization
1762 Perform unroll-and-jam on loops.
1763
1764 fgnu-tm
1765 Common Var(flag_tm)
1766 Enable support for GNU transactional memory.
1767
1768 fgnu-unique
1769 Common Var(flag_gnu_unique) Init(1)
1770 Use STB_GNU_UNIQUE if supported by the assembler.
1771
1772 floop-flatten
1773 Common Ignore
1774 Does nothing. Preserved for backward compatibility.
1775
1776 floop-nest-optimize
1777 Common Var(flag_loop_nest_optimize) Optimization
1778 Enable the loop nest optimizer.
1779
1780 fstrict-volatile-bitfields
1781 Common Var(flag_strict_volatile_bitfields) Init(-1) Optimization
1782 Force bitfield accesses to match their type width.
1783
1784 fstore-merging
1785 Common Var(flag_store_merging) Optimization
1786 Merge adjacent stores.
1787
1788 fguess-branch-probability
1789 Common Var(flag_guess_branch_prob) Optimization
1790 Enable guessing of branch probabilities.
1791
1792 fharden-compares
1793 Common Var(flag_harden_compares) Optimization
1794 Harden conditionals not used in branches, checking reversed conditions.
1795
1796 fharden-conditional-branches
1797 Common Var(flag_harden_conditional_branches) Optimization
1798 Harden conditional branches by checking reversed conditions.
1799
1800 ; Nonzero means ignore `#ident' directives. 0 means handle them.
1801 ; Generate position-independent code for executables if possible
1802 ; On SVR4 targets, it also controls whether or not to emit a
1803 ; string identifying the compiler.
1804 fident
1805 Common Var(flag_no_ident,0)
1806 Process #ident directives.
1807
1808 fif-conversion
1809 Common Var(flag_if_conversion) Optimization
1810 Perform conversion of conditional jumps to branchless equivalents.
1811
1812 fif-conversion2
1813 Common Var(flag_if_conversion2) Optimization
1814 Perform conversion of conditional jumps to conditional execution.
1815
1816 fstack-reuse=
1817 Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
1818 -fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
1819
1820 Enum
1821 Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1822
1823 EnumValue
1824 Enum(stack_reuse_level) String(all) Value(SR_ALL)
1825
1826 EnumValue
1827 Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1828
1829 EnumValue
1830 Enum(stack_reuse_level) String(none) Value(SR_NONE)
1831
1832 ftree-loop-if-convert
1833 Common Var(flag_tree_loop_if_convert) Init(-1) Optimization
1834 Convert conditional jumps in innermost loops to branchless equivalents.
1835
1836 ftree-loop-if-convert-stores
1837 Common Ignore
1838 Does nothing. Preserved for backward compatibility.
1839
1840 ; -finhibit-size-directive inhibits output of .size for ELF.
1841 ; This is used only for compiling crtstuff.c,
1842 ; and it may be extended to other effects
1843 ; needed for crtstuff.c on other systems.
1844 finhibit-size-directive
1845 Common Var(flag_inhibit_size_directive)
1846 Do not generate .size directives.
1847
1848 findirect-inlining
1849 Common Var(flag_indirect_inlining) Optimization
1850 Perform indirect inlining.
1851
1852 ; General flag to enable inlining. Specifying -fno-inline will disable
1853 ; all inlining apart from always-inline functions.
1854 finline
1855 Common Var(flag_no_inline,0) Init(0) Optimization
1856 Enable inlining of function declared \"inline\", disabling disables all inlining.
1857
1858 finline-small-functions
1859 Common Var(flag_inline_small_functions) Optimization
1860 Integrate functions into their callers when code size is known not to grow.
1861
1862 finline-functions
1863 Common Var(flag_inline_functions) Optimization
1864 Integrate functions not declared \"inline\" into their callers when profitable.
1865
1866 finline-functions-called-once
1867 Common Var(flag_inline_functions_called_once) Optimization
1868 Integrate functions only required by their single caller.
1869
1870 finline-limit-
1871 Common RejectNegative Joined Alias(finline-limit=)
1872
1873 finline-limit=
1874 Common RejectNegative Joined UInteger
1875 -finline-limit=<number> Limit the size of inlined functions to <number>.
1876
1877 finline-atomics
1878 Common Var(flag_inline_atomics) Init(1) Optimization
1879 Inline __atomic operations when a lock free instruction sequence is available.
1880
1881 fcf-protection
1882 Common RejectNegative Alias(fcf-protection=,full)
1883
1884 fcf-protection=
1885 Common Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
1886 -fcf-protection=[full|branch|return|none|check] Instrument functions with checks to verify jump/call/return control-flow transfer
1887 instructions have valid targets.
1888
1889 Enum
1890 Name(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
1891
1892 EnumValue
1893 Enum(cf_protection_level) String(full) Value(CF_FULL)
1894
1895 EnumValue
1896 Enum(cf_protection_level) String(branch) Value(CF_BRANCH)
1897
1898 EnumValue
1899 Enum(cf_protection_level) String(return) Value(CF_RETURN)
1900
1901 EnumValue
1902 Enum(cf_protection_level) String(check) Value(CF_CHECK)
1903
1904 EnumValue
1905 Enum(cf_protection_level) String(none) Value(CF_NONE)
1906
1907 finstrument-functions
1908 Common Var(flag_instrument_function_entry_exit,1)
1909 Instrument function entry and exit with profiling calls.
1910
1911 finstrument-functions-once
1912 Common Var(flag_instrument_function_entry_exit,2)
1913 Instrument function entry and exit with profiling calls invoked once.
1914
1915 finstrument-functions-exclude-function-list=
1916 Common RejectNegative Joined
1917 -finstrument-functions-exclude-function-list=name,... Do not instrument listed functions.
1918
1919 finstrument-functions-exclude-file-list=
1920 Common RejectNegative Joined
1921 -finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files.
1922
1923 fipa-cp
1924 Common Var(flag_ipa_cp) Optimization
1925 Perform interprocedural constant propagation.
1926
1927 fipa-cp-clone
1928 Common Var(flag_ipa_cp_clone) Optimization
1929 Perform cloning to make Interprocedural constant propagation stronger.
1930
1931 fipa-cp-alignment
1932 Common Ignore
1933 Does nothing. Preserved for backward compatibility.
1934
1935 fipa-bit-cp
1936 Common Var(flag_ipa_bit_cp) Optimization
1937 Perform interprocedural bitwise constant propagation.
1938
1939 fipa-modref
1940 Common Var(flag_ipa_modref) Optimization
1941 Perform interprocedural modref analysis.
1942
1943 fipa-profile
1944 Common Var(flag_ipa_profile) Init(0) Optimization
1945 Perform interprocedural profile propagation.
1946
1947 fipa-pta
1948 Common Var(flag_ipa_pta) Init(0) Optimization
1949 Perform interprocedural points-to analysis.
1950
1951 fipa-pure-const
1952 Common Var(flag_ipa_pure_const) Init(0) Optimization
1953 Discover pure and const functions.
1954
1955 fipa-icf
1956 Common Var(flag_ipa_icf) Optimization
1957 Perform Identical Code Folding for functions and read-only variables.
1958
1959 fipa-icf-functions
1960 Common Var(flag_ipa_icf_functions) Optimization
1961 Perform Identical Code Folding for functions.
1962
1963 fipa-icf-variables
1964 Common Var(flag_ipa_icf_variables) Optimization
1965 Perform Identical Code Folding for variables.
1966
1967 fipa-reference
1968 Common Var(flag_ipa_reference) Init(0) Optimization
1969 Discover read-only and non addressable static variables.
1970
1971 fipa-reference-addressable
1972 Common Var(flag_ipa_reference_addressable) Init(0) Optimization
1973 Discover read-only, write-only and non-addressable static variables.
1974
1975 fipa-stack-alignment
1976 Common Var(flag_ipa_stack_alignment) Init(1) Optimization
1977 Reduce stack alignment on call sites if possible.
1978
1979 fipa-matrix-reorg
1980 Common Ignore
1981 Does nothing. Preserved for backward compatibility.
1982
1983 fipa-struct-reorg
1984 Common Ignore
1985 Does nothing. Preserved for backward compatibility.
1986
1987 fipa-vrp
1988 Common Var(flag_ipa_vrp) Optimization
1989 Perform IPA Value Range Propagation.
1990
1991 fira-algorithm=
1992 Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
1993 -fira-algorithm=[CB|priority] Set the used IRA algorithm.
1994
1995 fipa-strict-aliasing
1996 Common Var(flag_ipa_strict_aliasing) Init(1) Optimization
1997 Assume strict aliasing rules apply across (uninlined) function boundaries.
1998
1999 Enum
2000 Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
2001
2002 EnumValue
2003 Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
2004
2005 EnumValue
2006 Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
2007
2008 fira-region=
2009 Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_ONE) Optimization
2010 -fira-region=[one|all|mixed] Set regions for IRA.
2011
2012 Enum
2013 Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
2014
2015 EnumValue
2016 Enum(ira_region) String(one) Value(IRA_REGION_ONE)
2017
2018 EnumValue
2019 Enum(ira_region) String(all) Value(IRA_REGION_ALL)
2020
2021 EnumValue
2022 Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
2023
2024 fira-hoist-pressure
2025 Common Var(flag_ira_hoist_pressure) Init(1) Optimization
2026 Use IRA based register pressure calculation
2027 in RTL hoist optimizations.
2028
2029 fira-loop-pressure
2030 Common Var(flag_ira_loop_pressure) Optimization
2031 Use IRA based register pressure calculation
2032 in RTL loop optimizations.
2033
2034 fira-share-save-slots
2035 Common Var(flag_ira_share_save_slots) Init(1) Optimization
2036 Share slots for saving different hard registers.
2037
2038 fira-share-spill-slots
2039 Common Var(flag_ira_share_spill_slots) Init(1) Optimization
2040 Share stack slots for spilled pseudo-registers.
2041
2042 fira-verbose=
2043 Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
2044 -fira-verbose=<number> Control IRA's level of diagnostic messages.
2045
2046 fivopts
2047 Common Var(flag_ivopts) Init(1) Optimization
2048 Optimize induction variables on trees.
2049
2050 fjump-tables
2051 Common Var(flag_jump_tables) Init(1) Optimization
2052 Use jump tables for sufficiently large switch statements.
2053
2054 fbit-tests
2055 Common Var(flag_bit_tests) Init(1) Optimization
2056 Use bit tests for sufficiently large switch statements.
2057
2058 fkeep-inline-functions
2059 Common Var(flag_keep_inline_functions)
2060 Generate code for functions even if they are fully inlined.
2061
2062 fkeep-static-functions
2063 Common Var(flag_keep_static_functions)
2064 Generate code for static functions even if they are never called.
2065
2066 fkeep-static-consts
2067 Common Var(flag_keep_static_consts) Init(1)
2068 Emit static const variables even if they are not used.
2069
2070 fleading-underscore
2071 Common Var(flag_leading_underscore) Init(-1)
2072 Give external symbols a leading underscore.
2073
2074 floop-optimize
2075 Common Ignore
2076 Does nothing. Preserved for backward compatibility.
2077
2078 flra-remat
2079 Common Var(flag_lra_remat) Optimization
2080 Do CFG-sensitive rematerialization in LRA.
2081
2082 flto
2083 Common
2084 Enable link-time optimization.
2085
2086 flto=
2087 Common RejectNegative Joined Var(flag_lto)
2088 Link-time optimization with number of parallel jobs or jobserver.
2089
2090 Enum
2091 Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
2092
2093 EnumValue
2094 Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
2095
2096 EnumValue
2097 Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
2098
2099 EnumValue
2100 Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
2101
2102 EnumValue
2103 Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
2104
2105 EnumValue
2106 Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
2107
2108 flto-partition=
2109 Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
2110 Specify the algorithm to partition symbols and vars at linktime.
2111
2112 ; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
2113 flto-compression-level=
2114 Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 19)
2115 -flto-compression-level=<number> Use zlib/zstd compression level <number> for IL.
2116
2117 flto-odr-type-merging
2118 Common Ignore
2119 Does nothing. Preserved for backward compatibility.
2120
2121 flto-report
2122 Common Var(flag_lto_report) Init(0)
2123 Report various link-time optimization statistics.
2124
2125 flto-report-wpa
2126 Common Var(flag_lto_report_wpa) Init(0)
2127 Report various link-time optimization statistics for WPA only.
2128
2129 fmath-errno
2130 Common Var(flag_errno_math) Init(1) Optimization SetByCombined
2131 Set errno after built-in math functions.
2132
2133 fmax-errors=
2134 Common Joined RejectNegative UInteger Var(flag_max_errors)
2135 -fmax-errors=<number> Maximum number of errors to report.
2136
2137 fmem-report
2138 Common Var(mem_report)
2139 Report on permanent memory allocation.
2140
2141 fmem-report-wpa
2142 Common Var(mem_report_wpa)
2143 Report on permanent memory allocation in WPA only.
2144
2145 ; This will attempt to merge constant section constants, if 1 only
2146 ; string constants and constants from constant pool, if 2 also constant
2147 ; variables.
2148 fmerge-all-constants
2149 Common Var(flag_merge_constants,2) Init(1)
2150 Attempt to merge identical constants and constant variables.
2151
2152 fmerge-constants
2153 Common Var(flag_merge_constants,1)
2154 Attempt to merge identical constants across compilation units.
2155
2156 fmerge-debug-strings
2157 Common Var(flag_merge_debug_strings) Init(1)
2158 Attempt to merge identical debug strings across compilation units.
2159
2160 fmessage-length=
2161 Common RejectNegative Joined UInteger
2162 -fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping.
2163
2164 fmodulo-sched
2165 Common Var(flag_modulo_sched) Optimization
2166 Perform SMS based modulo scheduling before the first scheduling pass.
2167
2168 fmodulo-sched-allow-regmoves
2169 Common Var(flag_modulo_sched_allow_regmoves) Optimization
2170 Perform SMS based modulo scheduling with register moves allowed.
2171
2172 fmove-loop-invariants
2173 Common Var(flag_move_loop_invariants) Optimization
2174 Move loop invariant computations out of loops.
2175
2176 fmove-loop-stores
2177 Common Var(flag_move_loop_stores) Optimization
2178 Move stores out of loops.
2179
2180 fdce
2181 Common Var(flag_dce) Init(1) Optimization
2182 Use the RTL dead code elimination pass.
2183
2184 fdse
2185 Common Var(flag_dse) Init(0) Optimization
2186 Use the RTL dead store elimination pass.
2187
2188 freschedule-modulo-scheduled-loops
2189 Common Var(flag_resched_modulo_sched) Optimization
2190 Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
2191
2192 fnon-call-exceptions
2193 Common Var(flag_non_call_exceptions) Optimization
2194 Support synchronous non-call exceptions.
2195
2196 foffload=
2197 Driver Joined MissingArgError(targets missing after %qs)
2198
2199 foffload-options=
2200 Common Driver Joined MissingArgError(options or targets=options missing after %qs)
2201 -foffload-options=<targets>=<options> Specify options for the offloading targets.
2202
2203 foffload-abi=
2204 Common Joined RejectNegative Enum(offload_abi)
2205 -foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler.
2206
2207 Enum
2208 Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
2209
2210 EnumValue
2211 Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
2212
2213 EnumValue
2214 Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
2215
2216 fomit-frame-pointer
2217 Common Var(flag_omit_frame_pointer) Optimization
2218 When possible do not generate stack frames.
2219
2220 fopt-info
2221 Common Var(flag_opt_info) Optimization
2222 Enable all optimization info dumps on stderr.
2223
2224 fopt-info-
2225 Common Joined RejectNegative Var(common_deferred_options) Defer
2226 -fopt-info[-<type>=filename] Dump compiler optimization details.
2227
2228 fsave-optimization-record
2229 Common Var(flag_save_optimization_record) Optimization
2230 Write a SRCFILE.opt-record.json file detailing what optimizations were performed.
2231
2232 foptimize-register-move
2233 Common Ignore
2234 Does nothing. Preserved for backward compatibility.
2235
2236 foptimize-sibling-calls
2237 Common Var(flag_optimize_sibling_calls) Optimization
2238 Optimize sibling and tail recursive calls.
2239
2240 fpartial-inlining
2241 Common Var(flag_partial_inlining) Optimization
2242 Perform partial inlining.
2243
2244 fpre-ipa-mem-report
2245 Common Var(pre_ipa_mem_report)
2246 Report on memory allocation before interprocedural optimization.
2247
2248 fpost-ipa-mem-report
2249 Common Var(post_ipa_mem_report)
2250 Report on memory allocation before interprocedural optimization.
2251
2252 fpack-struct
2253 Common Var(flag_pack_struct) Optimization
2254 Pack structure members together without holes.
2255
2256 fpack-struct=
2257 Common RejectNegative Joined UInteger Optimization
2258 -fpack-struct=<number> Set initial maximum structure member alignment.
2259
2260 fpcc-struct-return
2261 Common Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
2262 Return small aggregates in memory, not registers.
2263
2264 fpeel-loops
2265 Common Var(flag_peel_loops) Optimization
2266 Perform loop peeling.
2267
2268 fpeephole
2269 Common Var(flag_no_peephole,0) Optimization
2270 Enable machine specific peephole optimizations.
2271
2272 fpeephole2
2273 Common Var(flag_peephole2) Optimization
2274 Enable an RTL peephole pass before sched2.
2275
2276 fPIC
2277 Common Var(flag_pic,2) Negative(fPIE) Init(-1)
2278 Generate position-independent code if possible (large mode).
2279
2280 fPIE
2281 Common Var(flag_pie,2) Negative(fpic) Init(-1)
2282 Generate position-independent code for executables if possible (large mode).
2283
2284 fpic
2285 Common Var(flag_pic,1) Negative(fpie) Init(-1)
2286 Generate position-independent code if possible (small mode).
2287
2288 fpie
2289 Common Var(flag_pie,1) Negative(fPIC) Init(-1)
2290 Generate position-independent code for executables if possible (small mode).
2291
2292 fplt
2293 Common Var(flag_plt) Init(1) Optimization
2294 Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
2295
2296 fplugin=
2297 Common Joined RejectNegative Var(common_deferred_options) Defer
2298 Specify a plugin to load.
2299
2300 fplugin-arg-
2301 Common Joined RejectNegative Var(common_deferred_options) Defer
2302 -fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>.
2303
2304 fpredictive-commoning
2305 Common Var(flag_predictive_commoning) Optimization
2306 Run predictive commoning optimization.
2307
2308 fprefetch-loop-arrays
2309 Common Var(flag_prefetch_loop_arrays) Init(-1) Optimization
2310 Generate prefetch instructions, if available, for arrays in loops.
2311
2312 fprofile
2313 Common Var(profile_flag)
2314 Enable basic program profiling code.
2315
2316 fprofile-abs-path
2317 Common Var(profile_abs_path_flag)
2318 Generate absolute source path names for gcov.
2319
2320 fprofile-arcs
2321 Common Var(profile_arc_flag)
2322 Insert arc-based program profiling code.
2323
2324 fprofile-dir=
2325 Common Joined RejectNegative Var(profile_data_prefix)
2326 Set the top-level directory for storing the profile data.
2327 The default is 'pwd'.
2328
2329 fprofile-note=
2330 Common Joined RejectNegative Var(profile_note_location)
2331 Select the name for storing the profile note file.
2332
2333 fprofile-correction
2334 Common Var(flag_profile_correction)
2335 Enable correction of flow inconsistent profile data input.
2336
2337 fprofile-update=
2338 Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
2339 -fprofile-update=[single|atomic|prefer-atomic] Set the profile update method.
2340
2341 fprofile-filter-files=
2342 Common Joined RejectNegative Var(flag_profile_filter_files)
2343 Instrument only functions from files whose name matches any of the regular expressions (separated by semi-colons).
2344
2345 fprofile-exclude-files=
2346 Common Joined RejectNegative Var(flag_profile_exclude_files)
2347 Instrument only functions from files whose name does not match any of the regular expressions (separated by semi-colons).
2348
2349 Enum
2350 Name(profile_reproducibility) Type(enum profile_reproducibility) UnknownError(unknown profile reproducibility method %qs)
2351
2352 EnumValue
2353 Enum(profile_reproducibility) String(serial) Value(PROFILE_REPRODUCIBILITY_SERIAL)
2354
2355 EnumValue
2356 Enum(profile_reproducibility) String(parallel-runs) Value(PROFILE_REPRODUCIBILITY_PARALLEL_RUNS)
2357
2358 EnumValue
2359 Enum(profile_reproducibility) String(multithreaded) Value(PROFILE_REPRODUCIBILITY_MULTITHREADED)
2360
2361 fprofile-reproducible=
2362 Common Joined RejectNegative Var(flag_profile_reproducible) Enum(profile_reproducibility) Init(PROFILE_REPRODUCIBILITY_SERIAL)
2363 -fprofile-reproducible=[serial|parallel-runs|multithreaded] Control level of reproducibility of profile gathered by -fprofile-generate.
2364
2365 Enum
2366 Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
2367
2368 EnumValue
2369 Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
2370
2371 EnumValue
2372 Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
2373
2374 EnumValue
2375 Enum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC)
2376
2377 fprofile-prefix-path=
2378 Common Joined RejectNegative Var(profile_prefix_path)
2379 Remove prefix from absolute path before mangling name for -fprofile-generate= and -fprofile-use=.
2380
2381 fprofile-prefix-map=
2382 Common Joined RejectNegative Var(common_deferred_options) Defer
2383 -fprofile-prefix-map=<old>=<new> Map one directory name to another in GCOV coverage result.
2384
2385 fprofile-generate
2386 Common
2387 Enable common options for generating profile info for profile feedback directed optimizations.
2388
2389 fprofile-generate=
2390 Common Joined RejectNegative
2391 Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
2392
2393 fprofile-info-section
2394 Common RejectNegative
2395 Register the profile information in the .gcov_info section instead of using a constructor/destructor.
2396
2397 fprofile-info-section=
2398 Common Joined RejectNegative Var(profile_info_section)
2399 Register the profile information in the specified section instead of using a constructor/destructor.
2400
2401 fprofile-partial-training
2402 Common Var(flag_profile_partial_training) Optimization
2403 Do not assume that functions never executed during the train run are cold.
2404
2405 fprofile-use
2406 Common Var(flag_profile_use)
2407 Enable common options for performing profile feedback directed optimizations.
2408
2409 fprofile-use=
2410 Common Joined RejectNegative
2411 Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
2412
2413 fprofile-values
2414 Common Var(flag_profile_values)
2415 Insert code to profile values of expressions.
2416
2417 fprofile-report
2418 Common Var(profile_report)
2419 Report on consistency of profile.
2420
2421 fprofile-reorder-functions
2422 Common Var(flag_profile_reorder_functions) Optimization
2423 Enable function reordering that improves code placement.
2424
2425 fpatchable-function-entry=
2426 Common Var(flag_patchable_function_entry) Joined Optimization
2427 Insert NOP instructions at each function entry.
2428
2429 frandom-seed
2430 Common Var(common_deferred_options) Defer
2431
2432 frandom-seed=
2433 Common Joined RejectNegative Var(common_deferred_options) Defer
2434 -frandom-seed=<string> Make compile reproducible using <string>.
2435
2436 ; This switch causes the command line that was used to create an
2437 ; object file to be recorded into the object file. The exact format
2438 ; of this recording is target and binary file format dependent.
2439 ; It is related to the -fverbose-asm switch, but that switch only
2440 ; records information in the assembler output file as comments, so
2441 ; they never reach the object file.
2442 frecord-gcc-switches
2443 Common Var(flag_record_gcc_switches)
2444 Record gcc command line switches in the object file.
2445
2446 freg-struct-return
2447 Common Var(flag_pcc_struct_return,0) Optimization
2448 Return small aggregates in registers.
2449
2450 fregmove
2451 Common Ignore
2452 Does nothing. Preserved for backward compatibility.
2453
2454 flifetime-dse
2455 Common Var(flag_lifetime_dse,2) Init(2) Optimization
2456 Tell DSE that the storage for a C++ object is dead when the constructor
2457 starts and when the destructor finishes.
2458
2459 flifetime-dse=
2460 Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
2461
2462 flive-patching
2463 Common RejectNegative Alias(flive-patching=,inline-clone) Optimization
2464
2465 flive-patching=
2466 Common Joined RejectNegative Enum(live_patching_level) Var(flag_live_patching) Init(LIVE_PATCHING_NONE) Optimization
2467 -flive-patching=[inline-only-static|inline-clone] Control IPA
2468 optimizations to provide a safe compilation for live-patching. At the same
2469 time, provides multiple-level control on the enabled IPA optimizations.
2470
2471 Enum
2472 Name(live_patching_level) Type(enum live_patching_level) UnknownError(unknown Live-Patching Level %qs)
2473
2474 EnumValue
2475 Enum(live_patching_level) String(inline-only-static) Value(LIVE_PATCHING_INLINE_ONLY_STATIC)
2476
2477 EnumValue
2478 Enum(live_patching_level) String(inline-clone) Value(LIVE_PATCHING_INLINE_CLONE)
2479
2480 fallocation-dce
2481 Common Var(flag_allocation_dce) Init(1) Optimization
2482 Tell DCE to remove unused C++ allocations.
2483
2484 flive-range-shrinkage
2485 Common Var(flag_live_range_shrinkage) Init(0) Optimization
2486 Relief of register pressure through live range shrinkage.
2487
2488 frename-registers
2489 Common Var(flag_rename_registers) Optimization EnabledBy(funroll-loops)
2490 Perform a register renaming optimization pass.
2491
2492 fschedule-fusion
2493 Common Var(flag_schedule_fusion) Init(2) Optimization
2494 Perform a target dependent instruction fusion optimization pass.
2495
2496 freorder-blocks
2497 Common Var(flag_reorder_blocks) Optimization
2498 Reorder basic blocks to improve code placement.
2499
2500 freorder-blocks-algorithm=
2501 Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
2502 -freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
2503
2504 Enum
2505 Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2506
2507 EnumValue
2508 Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2509
2510 EnumValue
2511 Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
2512
2513 freorder-blocks-and-partition
2514 Common Var(flag_reorder_blocks_and_partition) Optimization
2515 Reorder basic blocks and partition into hot and cold sections.
2516
2517 freorder-functions
2518 Common Var(flag_reorder_functions) Optimization
2519 Reorder functions to improve code placement.
2520
2521 frerun-cse-after-loop
2522 Common Var(flag_rerun_cse_after_loop) Optimization
2523 Add a common subexpression elimination pass after loop optimizations.
2524
2525 frerun-loop-opt
2526 Common Ignore
2527 Does nothing. Preserved for backward compatibility.
2528
2529 frounding-math
2530 Common Var(flag_rounding_math) Optimization SetByCombined
2531 Disable optimizations that assume default FP rounding behavior.
2532
2533 fsched-interblock
2534 Common Var(flag_schedule_interblock) Init(1) Optimization
2535 Enable scheduling across basic blocks.
2536
2537 fsched-pressure
2538 Common Var(flag_sched_pressure) Init(0) Optimization
2539 Enable register pressure sensitive insn scheduling.
2540
2541 fsched-spec
2542 Common Var(flag_schedule_speculative) Init(1) Optimization
2543 Allow speculative motion of non-loads.
2544
2545 fsched-spec-load
2546 Common Var(flag_schedule_speculative_load) Optimization
2547 Allow speculative motion of some loads.
2548
2549 fsched-spec-load-dangerous
2550 Common Var(flag_schedule_speculative_load_dangerous) Optimization
2551 Allow speculative motion of more loads.
2552
2553 fsched-verbose=
2554 Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
2555 -fsched-verbose=<number> Set the verbosity level of the scheduler.
2556
2557 fsched2-use-superblocks
2558 Common Var(flag_sched2_use_superblocks) Optimization
2559 If scheduling post reload, do superblock scheduling.
2560
2561 fsched2-use-traces
2562 Common Ignore
2563 Does nothing. Preserved for backward compatibility.
2564
2565 fschedule-insns
2566 Common Var(flag_schedule_insns) Optimization
2567 Reschedule instructions before register allocation.
2568
2569 fschedule-insns2
2570 Common Var(flag_schedule_insns_after_reload) Optimization
2571 Reschedule instructions after register allocation.
2572
2573 ; This flag should be on when a target implements non-trivial
2574 ; scheduling hooks, maybe saving some information for its own sake.
2575 ; On IA64, for example, this is used for correct bundling.
2576 fselective-scheduling
2577 Common Var(flag_selective_scheduling) Optimization
2578 Schedule instructions using selective scheduling algorithm.
2579
2580 fselective-scheduling2
2581 Common Var(flag_selective_scheduling2) Optimization
2582 Run selective scheduling after reload.
2583
2584 fself-test=
2585 Common Undocumented Joined Var(flag_self_test)
2586 Run self-tests, using the given path to locate test files.
2587
2588 fsel-sched-pipelining
2589 Common Var(flag_sel_sched_pipelining) Init(0) Optimization
2590 Perform software pipelining of inner loops during selective scheduling.
2591
2592 fsel-sched-pipelining-outer-loops
2593 Common Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
2594 Perform software pipelining of outer loops during selective scheduling.
2595
2596 fsel-sched-reschedule-pipelined
2597 Common Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
2598 Reschedule pipelined regions without pipelining.
2599
2600 fsemantic-interposition
2601 Common Var(flag_semantic_interposition) Init(1) Optimization
2602 Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
2603
2604 ; sched_stalled_insns means that insns can be moved prematurely from the queue
2605 ; of stalled insns into the ready list.
2606 fsched-stalled-insns
2607 Common Var(flag_sched_stalled_insns) Optimization UInteger
2608 Allow premature scheduling of queued insns.
2609
2610 fsched-stalled-insns=
2611 Common RejectNegative Joined UInteger Optimization
2612 -fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled.
2613
2614 ; sched_stalled_insns_dep controls how many recently scheduled cycles will
2615 ; be examined for a dependency on a stalled insn that is candidate for
2616 ; premature removal from the queue of stalled insns into the ready list (has
2617 ; an effect only if the flag 'sched_stalled_insns' is set).
2618 fsched-stalled-insns-dep
2619 Common Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
2620 Set dependence distance checking in premature scheduling of queued insns.
2621
2622 fsched-stalled-insns-dep=
2623 Common RejectNegative Joined UInteger Optimization
2624 -fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns.
2625
2626 fsched-group-heuristic
2627 Common Var(flag_sched_group_heuristic) Init(1) Optimization
2628 Enable the group heuristic in the scheduler.
2629
2630 fsched-critical-path-heuristic
2631 Common Var(flag_sched_critical_path_heuristic) Init(1) Optimization
2632 Enable the critical path heuristic in the scheduler.
2633
2634 fsched-spec-insn-heuristic
2635 Common Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
2636 Enable the speculative instruction heuristic in the scheduler.
2637
2638 fsched-rank-heuristic
2639 Common Var(flag_sched_rank_heuristic) Init(1) Optimization
2640 Enable the rank heuristic in the scheduler.
2641
2642 fsched-last-insn-heuristic
2643 Common Var(flag_sched_last_insn_heuristic) Init(1) Optimization
2644 Enable the last instruction heuristic in the scheduler.
2645
2646 fsched-dep-count-heuristic
2647 Common Var(flag_sched_dep_count_heuristic) Init(1) Optimization
2648 Enable the dependent count heuristic in the scheduler.
2649
2650 fsection-anchors
2651 Common Var(flag_section_anchors) Optimization
2652 Access data in the same section from shared anchor points.
2653
2654 fsee
2655 Common Ignore
2656 Does nothing. Preserved for backward compatibility.
2657
2658 fzee
2659 Common Ignore
2660 Does nothing. Preserved for backward compatibility.
2661
2662 free
2663 Common Var(flag_ree) Init(0) Optimization
2664 Turn on Redundant Extensions Elimination pass.
2665
2666 fshow-column
2667 Common Var(flag_show_column) Init(1)
2668 Show column numbers in diagnostics, when available. Default on.
2669
2670 fshrink-wrap
2671 Common Var(flag_shrink_wrap) Optimization
2672 Emit function prologues only before parts of the function that need it,
2673 rather than at the top of the function.
2674
2675 fshrink-wrap-separate
2676 Common Var(flag_shrink_wrap_separate) Init(1) Optimization
2677 Shrink-wrap parts of the prologue and epilogue separately.
2678
2679 fsignaling-nans
2680 Common Var(flag_signaling_nans) Optimization SetByCombined
2681 Disable optimizations observable by IEEE signaling NaNs.
2682
2683 fsigned-zeros
2684 Common Var(flag_signed_zeros) Init(1) Optimization SetByCombined
2685 Disable floating point optimizations that ignore the IEEE signedness of zero.
2686
2687 fsingle-precision-constant
2688 Common Var(flag_single_precision_constant) Optimization
2689 Convert floating point constants to single precision constants.
2690
2691 fsplit-ivs-in-unroller
2692 Common Var(flag_split_ivs_in_unroller) Init(1) Optimization
2693 Split lifetimes of induction variables when loops are unrolled.
2694
2695 fsplit-stack
2696 Common Var(flag_split_stack) Init(-1)
2697 Generate discontiguous stack frames.
2698
2699 fsplit-wide-types
2700 Common Var(flag_split_wide_types) Optimization
2701 Split wide types into independent registers.
2702
2703 fsplit-wide-types-early
2704 Common Var(flag_split_wide_types_early) Optimization
2705 Split wide types into independent registers earlier.
2706
2707 fssa-backprop
2708 Common Var(flag_ssa_backprop) Init(1) Optimization
2709 Enable backward propagation of use properties at the SSA level.
2710
2711 fssa-phiopt
2712 Common Var(flag_ssa_phiopt) Optimization
2713 Optimize conditional patterns using SSA PHI nodes.
2714
2715 fstdarg-opt
2716 Common Var(flag_stdarg_opt) Init(1) Optimization
2717 Optimize amount of stdarg registers saved to stack at start of function.
2718
2719 fvariable-expansion-in-unroller
2720 Common Var(flag_variable_expansion_in_unroller) Optimization
2721 Apply variable expansion when loops are unrolled.
2722
2723 fstack-check=
2724 Common RejectNegative Joined Optimization
2725 -fstack-check=[no|generic|specific] Insert stack checking code into the program.
2726
2727 fstack-check
2728 Common Alias(fstack-check=, specific, no)
2729 Insert stack checking code into the program. Same as -fstack-check=specific.
2730
2731 fstack-clash-protection
2732 Common Var(flag_stack_clash_protection) Optimization
2733 Insert code to probe each page of stack space as it is allocated to protect
2734 from stack-clash style attacks.
2735
2736 fstack-limit
2737 Common Var(common_deferred_options) Defer
2738
2739 fstack-limit-register=
2740 Common RejectNegative Joined Var(common_deferred_options) Defer
2741 -fstack-limit-register=<register> Trap if the stack goes past <register>.
2742
2743 fstack-limit-symbol=
2744 Common RejectNegative Joined Var(common_deferred_options) Defer
2745 -fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.
2746
2747 fstack-protector
2748 Common Var(flag_stack_protect, 1) Init(-1) Optimization
2749 Use propolice as a stack protection method.
2750
2751 fstack-protector-all
2752 Common RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
2753 Use a stack protection method for every function.
2754
2755 fstack-protector-strong
2756 Common RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
2757 Use a smart stack protection method for certain functions.
2758
2759 fstack-protector-explicit
2760 Common RejectNegative Var(flag_stack_protect, 4) Optimization
2761 Use stack protection method only for functions with the stack_protect attribute.
2762
2763 fstack-usage
2764 Common RejectNegative Var(flag_stack_usage)
2765 Output stack usage information on a per-function basis.
2766
2767 fstrength-reduce
2768 Common Ignore
2769 Does nothing. Preserved for backward compatibility.
2770
2771 ; Nonzero if we should do (language-dependent) alias analysis.
2772 ; Typically, this analysis will assume that expressions of certain
2773 ; types do not alias expressions of certain other types. Only used
2774 ; if alias analysis (in general) is enabled.
2775 fstrict-aliasing
2776 Common Var(flag_strict_aliasing) Optimization
2777 Assume strict aliasing rules apply.
2778
2779 fstrict-overflow
2780 Common
2781 Treat signed overflow as undefined. Negated as -fwrapv -fwrapv-pointer.
2782
2783 fsync-libcalls
2784 Common Var(flag_sync_libcalls) Init(1)
2785 Implement __atomic operations via libcalls to legacy __sync functions.
2786
2787 fsyntax-only
2788 Common Var(flag_syntax_only)
2789 Check for syntax errors, then stop.
2790
2791 ftest-coverage
2792 Common Var(flag_test_coverage)
2793 Create data files needed by \"gcov\".
2794
2795 fthread-jumps
2796 Common Var(flag_thread_jumps) Optimization
2797 Perform jump threading optimizations.
2798
2799 ftime-report
2800 Common Var(time_report)
2801 Report the time taken by each compiler pass.
2802
2803 ftime-report-details
2804 Common Var(time_report_details)
2805 Record times taken by sub-phases separately.
2806
2807 ftls-model=
2808 Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
2809 -ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model.
2810
2811 Enum
2812 Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2813
2814 EnumValue
2815 Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2816
2817 EnumValue
2818 Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2819
2820 EnumValue
2821 Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2822
2823 EnumValue
2824 Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2825
2826 ftoplevel-reorder
2827 Common Var(flag_toplevel_reorder) Init(2) Optimization
2828 Reorder top level functions, variables, and asms.
2829
2830 ftracer
2831 Common Var(flag_tracer) Optimization
2832 Perform superblock formation via tail duplication.
2833
2834 ftrampolines
2835 Common Var(flag_trampolines) Init(0)
2836 For targets that normally need trampolines for nested functions, always
2837 generate them instead of using descriptors.
2838
2839 ; Zero means that floating-point math operations cannot generate a
2840 ; (user-visible) trap. This is the case, for example, in nonstop
2841 ; IEEE 754 arithmetic.
2842 ftrapping-math
2843 Common Var(flag_trapping_math) Init(1) Optimization SetByCombined
2844 Assume floating-point operations can trap.
2845
2846 ftrapv
2847 Common Var(flag_trapv) Optimization
2848 Trap for signed overflow in addition, subtraction and multiplication.
2849
2850 ftree-ccp
2851 Common Var(flag_tree_ccp) Optimization
2852 Enable SSA-CCP optimization on trees.
2853
2854 ftree-bit-ccp
2855 Common Var(flag_tree_bit_ccp) Optimization
2856 Enable SSA-BIT-CCP optimization on trees.
2857
2858 ftree-store-ccp
2859 Common Ignore
2860 Does nothing. Preserved for backward compatibility.
2861
2862 ftree-ch
2863 Common Var(flag_tree_ch) Optimization
2864 Enable loop header copying on trees.
2865
2866 ftree-coalesce-inlined-vars
2867 Common Ignore RejectNegative
2868 Does nothing. Preserved for backward compatibility.
2869
2870 ftree-coalesce-vars
2871 Common Var(flag_tree_coalesce_vars) Optimization
2872 Enable SSA coalescing of user variables.
2873
2874 ftree-copyrename
2875 Common Ignore
2876 Does nothing. Preserved for backward compatibility.
2877
2878 ftree-copy-prop
2879 Common Var(flag_tree_copy_prop) Optimization
2880 Enable copy propagation on trees.
2881
2882 ftree-store-copy-prop
2883 Common Ignore
2884 Does nothing. Preserved for backward compatibility.
2885
2886 ftree-cselim
2887 Common Var(flag_tree_cselim) Optimization
2888 Transform condition stores into unconditional ones.
2889
2890 ftree-switch-conversion
2891 Common Var(flag_tree_switch_conversion) Optimization
2892 Perform conversions of switch initializations.
2893
2894 ftree-dce
2895 Common Var(flag_tree_dce) Optimization
2896 Enable SSA dead code elimination optimization on trees.
2897
2898 ftree-dominator-opts
2899 Common Var(flag_tree_dom) Optimization
2900 Enable dominator optimizations.
2901
2902 ftree-tail-merge
2903 Common Var(flag_tree_tail_merge) Optimization
2904 Enable tail merging on trees.
2905
2906 ftree-dse
2907 Common Var(flag_tree_dse) Optimization
2908 Enable dead store elimination.
2909
2910 ftree-forwprop
2911 Common Var(flag_tree_forwprop) Init(1) Optimization
2912 Enable forward propagation on trees.
2913
2914 ftree-fre
2915 Common Var(flag_tree_fre) Optimization
2916 Enable Full Redundancy Elimination (FRE) on trees.
2917
2918 foptimize-strlen
2919 Common Var(flag_optimize_strlen) Optimization
2920 Enable string length optimizations on trees.
2921
2922 fisolate-erroneous-paths-dereference
2923 Common Var(flag_isolate_erroneous_paths_dereference) Optimization
2924 Detect paths that trigger erroneous or undefined behavior due to
2925 dereferencing a null pointer. Isolate those paths from the main control
2926 flow and turn the statement with erroneous or undefined behavior into a trap.
2927
2928 fisolate-erroneous-paths-attribute
2929 Common Var(flag_isolate_erroneous_paths_attribute) Optimization
2930 Detect paths that trigger erroneous or undefined behavior due to a null value
2931 being used in a way forbidden by a returns_nonnull or nonnull
2932 attribute. Isolate those paths from the main control flow and turn the
2933 statement with erroneous or undefined behavior into a trap.
2934
2935 ftree-loop-distribution
2936 Common Var(flag_tree_loop_distribution) Optimization
2937 Enable loop distribution on trees.
2938
2939 ftree-loop-distribute-patterns
2940 Common Var(flag_tree_loop_distribute_patterns) Optimization
2941 Enable loop distribution for patterns transformed into a library call.
2942
2943 ftree-loop-im
2944 Common Var(flag_tree_loop_im) Init(1) Optimization
2945 Enable loop invariant motion on trees.
2946
2947 ftree-loop-linear
2948 Common Alias(floop-nest-optimize)
2949 Enable loop nest transforms. Same as -floop-nest-optimize.
2950
2951 ftree-loop-ivcanon
2952 Common Var(flag_tree_loop_ivcanon) Init(1) Optimization
2953 Create canonical induction variables in loops.
2954
2955 ftree-loop-optimize
2956 Common Var(flag_tree_loop_optimize) Init(1) Optimization
2957 Enable loop optimizations on tree level.
2958
2959 ftree-parallelize-loops=
2960 Common Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
2961 -ftree-parallelize-loops=<number> Enable automatic parallelization of loops.
2962
2963 ftree-phiprop
2964 Common Var(flag_tree_phiprop) Init(1) Optimization
2965 Enable hoisting loads from conditional pointers.
2966
2967 ftree-pre
2968 Common Var(flag_tree_pre) Optimization
2969 Enable SSA-PRE optimization on trees.
2970
2971 ftree-partial-pre
2972 Common Var(flag_tree_partial_pre) Optimization
2973 In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
2974
2975 ftree-pta
2976 Common Var(flag_tree_pta) Optimization
2977 Perform function-local points-to analysis on trees.
2978
2979 ftree-reassoc
2980 Common Var(flag_tree_reassoc) Init(1) Optimization
2981 Enable reassociation on tree level.
2982
2983 ftree-salias
2984 Common Ignore
2985 Does nothing. Preserved for backward compatibility.
2986
2987 ftree-sink
2988 Common Var(flag_tree_sink) Optimization
2989 Enable SSA code sinking on trees.
2990
2991 ftree-slsr
2992 Common Var(flag_tree_slsr) Optimization
2993 Perform straight-line strength reduction.
2994
2995 ftree-sra
2996 Common Var(flag_tree_sra) Optimization
2997 Perform scalar replacement of aggregates.
2998
2999 ftree-ter
3000 Common Var(flag_tree_ter) Optimization
3001 Replace temporary expressions in the SSA->normal pass.
3002
3003 ftree-lrs
3004 Common Var(flag_tree_live_range_split) Optimization
3005 Perform live range splitting during the SSA->normal pass.
3006
3007 ftree-vrp
3008 Common Var(flag_tree_vrp) Init(0) Optimization
3009 Perform Value Range Propagation on trees.
3010
3011 fsplit-paths
3012 Common Var(flag_split_paths) Init(0) Optimization
3013 Split paths leading to loop backedges.
3014
3015 funconstrained-commons
3016 Common Var(flag_unconstrained_commons) Optimization
3017 Assume common declarations may be overridden with ones with a larger
3018 trailing array.
3019
3020 funit-at-a-time
3021 Common Var(flag_unit_at_a_time) Init(1)
3022 Compile whole compilation unit at a time.
3023
3024 funreachable-traps
3025 Common Var(flag_unreachable_traps) Optimization
3026 Trap on __builtin_unreachable instead of using it for optimization.
3027
3028 funroll-loops
3029 Common Var(flag_unroll_loops) Optimization EnabledBy(funroll-all-loops)
3030 Perform loop unrolling when iteration count is known.
3031
3032 funroll-all-loops
3033 Common Var(flag_unroll_all_loops) Optimization
3034 Perform loop unrolling for all loops.
3035
3036 funroll-completely-grow-size
3037 Undocumented Var(flag_cunroll_grow_size) Optimization
3038 ; Internal undocumented flag, allow size growth during complete unrolling
3039
3040 ; Nonzero means that loop optimizer may assume that the induction variables
3041 ; that control loops do not overflow and that the loops with nontrivial
3042 ; exit condition are not infinite
3043 funsafe-loop-optimizations
3044 Common Ignore
3045 Does nothing. Preserved for backward compatibility.
3046
3047 fassociative-math
3048 Common Var(flag_associative_math) SetByCombined Optimization
3049 Allow optimization for floating-point arithmetic which may change the
3050 result of the operation due to rounding.
3051
3052 freciprocal-math
3053 Common Var(flag_reciprocal_math) SetByCombined Optimization
3054 Same as -fassociative-math for expressions which include division.
3055
3056 ; Nonzero means that unsafe floating-point math optimizations are allowed
3057 ; for the sake of speed. IEEE compliance is not guaranteed, and operations
3058 ; are allowed to assume that their arguments and results are "normal"
3059 ; (e.g., nonnegative for SQRT).
3060 funsafe-math-optimizations
3061 Common Var(flag_unsafe_math_optimizations) Optimization SetByCombined
3062 Allow math optimizations that may violate IEEE or ISO standards.
3063
3064 funswitch-loops
3065 Common Var(flag_unswitch_loops) Optimization
3066 Perform loop unswitching.
3067
3068 fsplit-loops
3069 Common Var(flag_split_loops) Optimization
3070 Perform loop splitting.
3071
3072 fversion-loops-for-strides
3073 Common Var(flag_version_loops_for_strides) Optimization
3074 Version loops based on whether indices have a stride of one.
3075
3076 funwind-tables
3077 Common Var(flag_unwind_tables) Optimization
3078 Just generate unwind tables for exception handling.
3079
3080 fuse-ld=bfd
3081 Common Driver Negative(fuse-ld=gold)
3082 Use the bfd linker instead of the default linker.
3083
3084 fuse-ld=gold
3085 Common Driver Negative(fuse-ld=bfd)
3086 Use the gold linker instead of the default linker.
3087
3088 fuse-ld=lld
3089 Common Driver Negative(fuse-ld=lld)
3090 Use the lld LLVM linker instead of the default linker.
3091
3092 fuse-ld=mold
3093 Common Driver Negative(fuse-ld=mold)
3094 Use the Modern linker (MOLD) linker instead of the default linker.
3095
3096 fuse-linker-plugin
3097 Common Undocumented Var(flag_use_linker_plugin)
3098
3099 ; Positive if we should track variables, negative if we should run
3100 ; the var-tracking pass only to discard debug annotations, zero if
3101 ; we're not to run it.
3102 fvar-tracking
3103 Common Var(flag_var_tracking) PerFunction EnabledBy(fvar-tracking-uninit)
3104 Perform variable tracking.
3105
3106 ; Positive if we should track variables at assignments, negative if
3107 ; we should run the var-tracking pass only to discard debug
3108 ; annotations.
3109 fvar-tracking-assignments
3110 Common Var(flag_var_tracking_assignments) PerFunction
3111 Perform variable tracking by annotating assignments.
3112
3113 ; Nonzero if we should toggle flag_var_tracking_assignments after
3114 ; processing options and computing its default. */
3115 fvar-tracking-assignments-toggle
3116 Common Var(flag_var_tracking_assignments_toggle) PerFunction
3117 Toggle -fvar-tracking-assignments.
3118
3119 ; Positive if we should track uninitialized variables, negative if
3120 ; we should run the var-tracking pass only to discard debug
3121 ; annotations.
3122 fvar-tracking-uninit
3123 Common Var(flag_var_tracking_uninit) PerFunction
3124 Perform variable tracking and also tag variables that are uninitialized.
3125
3126 ; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
3127 ftree-vectorize
3128 Common Var(flag_tree_vectorize) Optimization
3129 Enable vectorization on trees.
3130
3131 ftree-vectorizer-verbose=
3132 Common Joined RejectNegative Ignore
3133 Does nothing. Preserved for backward compatibility.
3134
3135 ftree-loop-vectorize
3136 Common Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
3137 Enable loop vectorization on trees.
3138
3139 ftree-slp-vectorize
3140 Common Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
3141 Enable basic block vectorization (SLP) on trees.
3142
3143 fvect-cost-model=
3144 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
3145 -fvect-cost-model=[unlimited|dynamic|cheap|very-cheap] Specifies the cost model for vectorization.
3146
3147 fsimd-cost-model=
3148 Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
3149 -fsimd-cost-model=[unlimited|dynamic|cheap|very-cheap] Specifies the vectorization cost model for code marked with a simd directive.
3150
3151 Enum
3152 Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
3153
3154 EnumValue
3155 Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
3156
3157 EnumValue
3158 Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
3159
3160 EnumValue
3161 Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
3162
3163 EnumValue
3164 Enum(vect_cost_model) String(very-cheap) Value(VECT_COST_MODEL_VERY_CHEAP)
3165
3166 fvect-cost-model
3167 Common Alias(fvect-cost-model=,dynamic,unlimited)
3168 Enables the dynamic vectorizer cost model. Preserved for backward compatibility.
3169
3170 ftree-vect-loop-version
3171 Common Ignore
3172 Does nothing. Preserved for backward compatibility.
3173
3174 ftree-scev-cprop
3175 Common Var(flag_tree_scev_cprop) Init(1) Optimization
3176 Enable copy propagation of scalar-evolution information.
3177
3178 ftrivial-auto-var-init=
3179 Common Joined RejectNegative Enum(auto_init_type) Var(flag_auto_var_init) Init(AUTO_INIT_UNINITIALIZED) Optimization
3180 -ftrivial-auto-var-init=[uninitialized|pattern|zero] Add initializations to automatic variables.
3181
3182 Enum
3183 Name(auto_init_type) Type(enum auto_init_type) UnknownError(unrecognized automatic variable initialization type %qs)
3184
3185 EnumValue
3186 Enum(auto_init_type) String(uninitialized) Value(AUTO_INIT_UNINITIALIZED)
3187
3188 EnumValue
3189 Enum(auto_init_type) String(pattern) Value(AUTO_INIT_PATTERN)
3190
3191 EnumValue
3192 Enum(auto_init_type) String(zero) Value(AUTO_INIT_ZERO)
3193
3194 ; -fverbose-asm causes extra commentary information to be produced in
3195 ; the generated assembly code (to make it more readable). This option
3196 ; is generally only of use to those who actually need to read the
3197 ; generated assembly code (perhaps while debugging the compiler itself).
3198 ; -fno-verbose-asm, the default, causes the extra information
3199 ; to not be added and is useful when comparing two assembler files.
3200 fverbose-asm
3201 Common Var(flag_verbose_asm)
3202 Add extra commentary to assembler output.
3203
3204 fvisibility=
3205 Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
3206 -fvisibility=[default|internal|hidden|protected] Set the default symbol visibility.
3207
3208 Enum
3209 Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
3210
3211 EnumValue
3212 Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
3213
3214 EnumValue
3215 Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
3216
3217 EnumValue
3218 Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
3219
3220 EnumValue
3221 Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
3222
3223 fvtable-verify=
3224 Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
3225 Validate vtable pointers before using them.
3226
3227 Enum
3228 Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
3229
3230 EnumValue
3231 Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
3232
3233 EnumValue
3234 Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
3235
3236 EnumValue
3237 Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
3238
3239 fvtv-counts
3240 Common Var(flag_vtv_counts)
3241 Output vtable verification counters.
3242
3243 fvtv-debug
3244 Common Var(flag_vtv_debug)
3245 Output vtable verification pointer sets information.
3246
3247 fvpt
3248 Common Var(flag_value_profile_transformations) Optimization
3249 Use expression value profiles in optimizations.
3250
3251 fweb
3252 Common Var(flag_web) Optimization EnabledBy(funroll-loops)
3253 Construct webs and split unrelated uses of single variable.
3254
3255 ftree-builtin-call-dce
3256 Common Var(flag_tree_builtin_call_dce) Init(0) Optimization
3257 Enable conditional dead code elimination for builtin calls.
3258
3259 fwhole-program
3260 Common Var(flag_whole_program) Init(0)
3261 Perform whole program optimizations.
3262
3263 fwrapv-pointer
3264 Common Var(flag_wrapv_pointer) Optimization
3265 Assume pointer overflow wraps around.
3266
3267 fwrapv
3268 Common Var(flag_wrapv) Optimization
3269 Assume signed arithmetic overflow wraps around.
3270
3271 fzero-initialized-in-bss
3272 Common Var(flag_zero_initialized_in_bss) Init(1)
3273 Put zero initialized data in the bss section.
3274
3275 fzero-call-used-regs=
3276 Common RejectNegative Joined
3277 Clear call-used registers upon function return.
3278
3279 g
3280 Common Driver RejectNegative JoinedOrMissing
3281 Generate debug information in default format.
3282
3283 gas-loc-support
3284 Common Driver Var(dwarf2out_as_loc_support)
3285 Assume assembler support for (DWARF2+) .loc directives.
3286
3287 gas-locview-support
3288 Common Driver Var(dwarf2out_as_locview_support)
3289 Assume assembler support for view in (DWARF2+) .loc directives.
3290
3291 gcoff
3292 Common Driver WarnRemoved
3293 Does nothing. Preserved for backward compatibility.
3294
3295 gcoff1
3296 Common Driver WarnRemoved
3297 Does nothing. Preserved for backward compatibility.
3298
3299 gcoff2
3300 Common Driver WarnRemoved
3301 Does nothing. Preserved for backward compatibility.
3302
3303 gcoff3
3304 Common Driver WarnRemoved
3305 Does nothing. Preserved for backward compatibility.
3306
3307 gcolumn-info
3308 Common Driver Var(debug_column_info,1) Init(1)
3309 Record DW_AT_decl_column and DW_AT_call_column in DWARF.
3310
3311 ; The CTF generation process feeds off DWARF dies. This option implicitly
3312 ; updates the debug_info_level to DINFO_LEVEL_NORMAL.
3313 gctf
3314 Common Driver RejectNegative JoinedOrMissing
3315 Generate CTF debug information at default level.
3316
3317 gbtf
3318 Common Driver RejectNegative JoinedOrMissing
3319 Generate BTF debug information at default level.
3320
3321 gdwarf
3322 Common Driver JoinedOrMissing Negative(gdwarf-)
3323 Generate debug information in default version of DWARF format.
3324
3325 gdwarf-
3326 Common Driver Joined UInteger Var(dwarf_version) Init(5) Negative(gstabs)
3327 Generate debug information in DWARF v2 (or later) format.
3328
3329 gdwarf32
3330 Common Driver Var(dwarf_offset_size,4) Init(4) RejectNegative
3331 Use 32-bit DWARF format when emitting DWARF debug information.
3332
3333 gdwarf64
3334 Common Driver Var(dwarf_offset_size,8) RejectNegative
3335 Use 64-bit DWARF format when emitting DWARF debug information.
3336
3337 ggdb
3338 Common Driver JoinedOrMissing
3339 Generate debug information in default extended format.
3340
3341 ginline-points
3342 Common Driver Var(debug_inline_points)
3343 Generate extended entry point information for inlined functions.
3344
3345 ginternal-reset-location-views
3346 Common Driver Var(debug_internal_reset_location_views) Init(2)
3347 Compute locview reset points based on insn length estimates.
3348
3349 gno-
3350 RejectNegative Joined Undocumented
3351 ; Catch the gno- prefix, so it doesn't backtrack to g<level>.
3352
3353 gno-pubnames
3354 Common Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
3355 Don't generate DWARF pubnames and pubtypes sections.
3356
3357 gpubnames
3358 Common Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
3359 Generate DWARF pubnames and pubtypes sections.
3360
3361 ggnu-pubnames
3362 Common Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
3363 Generate DWARF pubnames and pubtypes sections with GNU extensions.
3364
3365 grecord-gcc-switches
3366 Common Driver Var(dwarf_record_gcc_switches) Init(1)
3367 Record gcc command line switches in DWARF DW_AT_producer.
3368
3369 gsplit-dwarf
3370 Common Driver Var(dwarf_split_debug_info) Init(0)
3371 Generate debug information in separate .dwo files.
3372
3373 gstabs
3374 Common Driver JoinedOrMissing Negative(gstabs+)
3375 Generate debug information in STABS format.
3376
3377 gstabs+
3378 Common Driver JoinedOrMissing Negative(gvms)
3379 Generate debug information in extended STABS format.
3380
3381 gstatement-frontiers
3382 Common Driver Var(debug_nonbind_markers_p) PerFunction
3383 Emit progressive recommended breakpoint locations.
3384
3385 gstrict-dwarf
3386 Common Driver Var(dwarf_strict) Init(0)
3387 Don't emit DWARF additions beyond selected version.
3388
3389 gdescribe-dies
3390 Common Driver Var(flag_describe_dies) Init(0)
3391 Add description attributes to some DWARF DIEs that have no name attribute.
3392
3393 gtoggle
3394 Common Driver Var(flag_gtoggle)
3395 Toggle debug information generation.
3396
3397 gvariable-location-views
3398 Common Driver Var(debug_variable_location_views, 1)
3399 Augment variable location lists with progressive views.
3400
3401 gvariable-location-views=incompat5
3402 Common Driver RejectNegative Var(debug_variable_location_views, -1) Init(2)
3403
3404 gvms
3405 Common Driver JoinedOrMissing Negative(gxcoff)
3406 Generate debug information in VMS format.
3407
3408 gxcoff
3409 Common Driver JoinedOrMissing Negative(gxcoff+)
3410 Generate debug information in XCOFF format.
3411
3412 gxcoff+
3413 Common Driver JoinedOrMissing Negative(gdwarf)
3414 Generate debug information in extended XCOFF format.
3415
3416 Enum
3417 Name(compressed_debug_sections) Type(int)
3418
3419 ; Since -gz= is completely handled in specs, the values aren't used and we
3420 ; assign arbitrary constants.
3421 EnumValue
3422 Enum(compressed_debug_sections) String(none) Value(0)
3423
3424 EnumValue
3425 Enum(compressed_debug_sections) String(zlib) Value(1)
3426
3427 EnumValue
3428 Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
3429
3430 gz
3431 Common Driver
3432 Generate compressed debug sections.
3433
3434 gz=
3435 Common Driver RejectNegative Joined Enum(compressed_debug_sections)
3436 -gz=<format> Generate compressed debug sections in format <format>.
3437
3438 h
3439 Driver Joined Separate
3440
3441 iplugindir=
3442 Common Joined Var(plugindir_string) Init(0)
3443 -iplugindir=<dir> Set <dir> to be the default plugin directory.
3444
3445 imultiarch
3446 Common Joined Separate RejectDriver Var(imultiarch) Init(0)
3447 -imultiarch <dir> Set <dir> to be the multiarch include subdirectory.
3448
3449 l
3450 Driver Joined Separate
3451
3452 n
3453 Driver
3454
3455 no-canonical-prefixes
3456 Driver
3457
3458 nodefaultlibs
3459 Driver
3460
3461 nostartfiles
3462 Driver
3463
3464 nolibc
3465 Driver
3466
3467 nostdlib
3468 Driver
3469
3470 nostdlib++
3471 Driver
3472
3473 o
3474 Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
3475 -o <file> Place output into <file>.
3476
3477 p
3478 Common Var(profile_flag)
3479 Enable function profiling.
3480
3481 pass-exit-codes
3482 Driver Var(pass_exit_codes)
3483
3484 pedantic
3485 Common Alias(Wpedantic)
3486
3487 pedantic-errors
3488 Common Var(flag_pedantic_errors)
3489 Like -pedantic but issue them as errors.
3490
3491 pg
3492 Driver
3493
3494 pipe
3495 Driver Var(use_pipes)
3496
3497 print-file-name=
3498 Driver JoinedOrMissing Var(print_file_name)
3499
3500 print-libgcc-file-name
3501 Driver
3502
3503 print-multi-directory
3504 Driver Var(print_multi_directory)
3505
3506 print-multi-lib
3507 Driver Var(print_multi_lib)
3508
3509 print-multi-os-directory
3510 Driver Var(print_multi_os_directory)
3511
3512 print-multiarch
3513 Driver Var(print_multiarch)
3514
3515 print-prog-name=
3516 Driver JoinedOrMissing Var(print_prog_name)
3517
3518 print-search-dirs
3519 Driver Var(print_search_dirs)
3520
3521 print-sysroot
3522 Driver Var(print_sysroot)
3523
3524 print-sysroot-headers-suffix
3525 Driver Var(print_sysroot_headers_suffix)
3526
3527 quiet
3528 Common Var(quiet_flag) RejectDriver
3529 Do not display functions compiled or elapsed time.
3530
3531 r
3532 Driver
3533
3534 s
3535 Driver
3536
3537 save-temps
3538 Driver
3539
3540 save-temps=
3541 Driver Joined
3542
3543 t
3544 Driver
3545
3546 time
3547 Driver Var(report_times)
3548
3549 time=
3550 Driver JoinedOrMissing
3551
3552 u
3553 Driver Joined Separate
3554
3555 undef
3556 Driver
3557 ; C option, but driver must not handle as "-u ndef".
3558
3559 v
3560 Common Driver Var(verbose_flag)
3561 Enable verbose output.
3562
3563 version
3564 Common Var(version_flag) RejectDriver
3565 Display the compiler's version.
3566
3567 w
3568 Common Var(inhibit_warnings)
3569 Suppress warnings.
3570
3571 wrapper
3572 Driver Separate Var(wrapper_string)
3573
3574 x
3575 Driver Joined Separate
3576
3577 shared
3578 Driver RejectNegative Negative(static-pie)
3579 Create a shared library.
3580
3581 shared-libgcc
3582 Driver
3583
3584 specs
3585 Driver Separate Alias(specs=)
3586
3587 specs=
3588 Driver Joined
3589
3590 static
3591 Driver
3592
3593 static-libgcc
3594 Driver
3595
3596 static-libgfortran
3597 Driver
3598 ; Documented for Fortran, but always accepted by driver.
3599
3600 static-libphobos
3601 Driver
3602 ; Documented for D, but always accepted by driver.
3603
3604 static-libstdc++
3605 Driver
3606
3607 static-libgo
3608 Driver
3609 ; Documented for Go, but always accepted by driver.
3610
3611 static-libasan
3612 Driver
3613
3614 static-libhwasan
3615 Driver
3616
3617 static-libtsan
3618 Driver
3619
3620 static-liblsan
3621 Driver
3622
3623 static-libubsan
3624 Driver
3625
3626 symbolic
3627 Driver
3628
3629 no-pie
3630 Driver RejectNegative Negative(shared)
3631 Don't create a dynamically linked position independent executable.
3632
3633 pie
3634 Driver RejectNegative Negative(no-pie)
3635 Create a dynamically linked position independent executable.
3636
3637 static-pie
3638 Driver RejectNegative Negative(pie)
3639 Create a static position independent executable.
3640
3641 z
3642 Driver Joined Separate
3643
3644 fipa-ra
3645 Common Var(flag_ipa_ra) Optimization
3646 Use caller save register across calls if possible.
3647
3648 ; This comment is to ensure we retain the blank line above.
This page took 0.19142 seconds and 6 git commands to generate.