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