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