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