]> gcc.gnu.org Git - gcc.git/blame - gcc/common.opt
ifcvt.c (end_ifcvt_sequence): Mark a and b for unsharing as well.
[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
ccf08a6e 1031fdiagnostics-show-option
c7d0de89 1032Common Var(flag_diagnostics_show_option) Init(1)
c85ce869 1033Amend appropriate diagnostic messages with the command line option that controls them
ccf08a6e 1034
226c52aa
XDL
1035fdisable-
1036Common Joined RejectNegative Var(common_deferred_options) Defer
1037-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass
1038
1039fenable-
1040Common Joined RejectNegative Var(common_deferred_options) Defer
1041-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass
1042
6de9cd9a 1043fdump-
21bf1558 1044Common Joined RejectNegative Var(common_deferred_options) Defer
6de9cd9a
DN
1045-fdump-<type> Dump various compiler internals to a file
1046
d1583032
JM
1047fdump-final-insns
1048Driver RejectNegative
1049
2153915d
AO
1050fdump-final-insns=
1051Common RejectNegative Joined Var(flag_dump_final_insns)
1052-fdump-final-insns=filename Dump to filename the insns at the end of translation
1053
c6a13190
ILT
1054fdump-go-spec=
1055Common RejectNegative Joined Var(flag_dump_go_spec)
1056-fdump-go-spec=filename Write all declarations to file as Go code
1057
24a7799e
R
1058fdump-noaddr
1059Common Report Var(flag_dump_noaddr)
1060Suppress output of addresses in debugging dumps
1061
deced1e2
XDL
1062fdump-passes
1063Common Var(flag_dump_passes) Init(0)
1064Dump optimization passes
1065
6ff3a151 1066fdump-unnumbered
e90afde6 1067Common Report Var(flag_dump_unnumbered)
24a7799e 1068Suppress output of instruction numbers, line number notes and addresses in debugging dumps
6ff3a151 1069
2aa7c49b 1070fdump-unnumbered-links
e90afde6 1071Common Report Var(flag_dump_unnumbered_links)
2aa7c49b
AO
1072Suppress output of previous and next insn numbers in debugging dumps
1073
b5b8b0ac
AO
1074fdwarf2-cfi-asm
1075Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1076Enable CFI tables via GAS assembler directives.
1077
355866de 1078fearly-inlining
c662432e 1079Common Report Var(flag_early_inlining) Init(1) Optimization
355866de
RG
1080Perform early inlining
1081
de32c0cb 1082feliminate-dwarf2-dups
50431bc4 1083Common Report Var(flag_eliminate_dwarf2_dups)
f3fdaec4 1084Perform DWARF2 duplicate elimination
de32c0cb 1085
07ffa034
MJ
1086fipa-sra
1087Common Report Var(flag_ipa_sra) Init(0) Optimization
1088Perform interprocedural reduction of aggregates
1089
6a08f7b3 1090feliminate-unused-debug-symbols
50431bc4 1091Common Report Var(flag_debug_only_used_symbols)
f3fdaec4 1092Perform unused type elimination in debug info
6a08f7b3 1093
de32c0cb 1094feliminate-unused-debug-types
50431bc4 1095Common Report Var(flag_eliminate_unused_debug_types) Init(1)
f3fdaec4 1096Perform unused type elimination in debug info
de32c0cb 1097
e713adf6 1098femit-class-debug-always
eae8e474 1099Common Report Var(flag_emit_class_debug_always) Init(0)
e713adf6
CD
1100Do not suppress C++ class debug information.
1101
6ff3a151 1102fexceptions
c662432e 1103Common Report Var(flag_exceptions) Optimization
f3fdaec4 1104Enable exception handling
6ff3a151 1105
de32c0cb 1106fexpensive-optimizations
c662432e 1107Common Report Var(flag_expensive_optimizations) Optimization
f3fdaec4 1108Perform a number of minor, expensive optimizations
de32c0cb 1109
8ce94e44 1110fexcess-precision=
e6d4b984 1111Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT)
8ce94e44
JM
1112-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
1113
e6d4b984
JM
1114Enum
1115Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1116
1117EnumValue
1118Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1119
1120EnumValue
1121Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1122
058de654
NB
1123ffast-math
1124Common
1125
cc8547a7
AK
1126ffat-lto-objects
1127Common Var(flag_fat_lto_objects) Init(1)
1128Output lto objects containing both the intermediate language and binary output.
1129
6ff3a151 1130ffinite-math-only
5e46b0c6 1131Common Report Var(flag_finite_math_only) Optimization SetByCombined
f3fdaec4 1132Assume no NaNs or infinities are generated
6ff3a151 1133
058de654 1134ffixed-
21bf1558 1135Common Joined RejectNegative Var(common_deferred_options) Defer
cf03fd63 1136-ffixed-<register> Mark <register> as being unavailable to the compiler
058de654 1137
de32c0cb 1138ffloat-store
c662432e 1139Common Report Var(flag_float_store) Optimization
31b66477 1140Don't allocate floats and doubles in extended-precision registers
de32c0cb
NB
1141
1142fforce-addr
2d2bd949 1143Common Ignore
3de5e93a 1144Does nothing. Preserved for backward compatibility.
de32c0cb 1145
2ca2b607
SB
1146fforward-propagate
1147Common Report Var(flag_forward_propagate) Optimization
a52b023a
PB
1148Perform a forward propagation pass on RTL
1149
16949072 1150ffp-contract=
e6d4b984 1151Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST)
16949072
RG
1152-ffp-contract=[off|on|fast] Perform floating-point expression contraction.
1153
e6d4b984
JM
1154Enum
1155Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1156
1157EnumValue
1158Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1159
1160; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1161EnumValue
1162Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1163
1164EnumValue
1165Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1166
31b66477
KC
1167; Nonzero means don't put addresses of constant functions in registers.
1168; Used for compiling the Unix kernel, where strange substitutions are
1169; done on the assembly output.
de32c0cb 1170ffunction-cse
50431bc4 1171Common Report Var(flag_no_function_cse,0)
f3fdaec4 1172Allow function addresses to be held in registers
de32c0cb 1173
6ff3a151 1174ffunction-sections
50431bc4 1175Common Report Var(flag_function_sections)
f3fdaec4 1176Place each function into its own section
6ff3a151 1177
de32c0cb 1178fgcse
c662432e 1179Common Report Var(flag_gcse) Optimization
f3fdaec4 1180Perform global common subexpression elimination
de32c0cb
NB
1181
1182fgcse-lm
c662432e 1183Common Report Var(flag_gcse_lm) Init(1) Optimization
f3fdaec4 1184Perform enhanced load motion during global common subexpression elimination
de32c0cb
NB
1185
1186fgcse-sm
c662432e 1187Common Report Var(flag_gcse_sm) Init(0) Optimization
f3fdaec4 1188Perform store motion after global common subexpression elimination
de32c0cb 1189
f5f2e3cd 1190fgcse-las
c662432e 1191Common Report Var(flag_gcse_las) Init(0) Optimization
f9957958
MH
1192Perform redundant load after store elimination in global common subexpression
1193elimination
1194
1195fgcse-after-reload
c662432e 1196Common Report Var(flag_gcse_after_reload) Optimization
f9957958 1197Perform global common subexpression elimination after register allocation
c85ce869 1198has finished
f5f2e3cd 1199
d0a58904 1200; This option is not documented yet as its semantics will change.
f8bf9252
SP
1201fgraphite
1202Common Report Var(flag_graphite)
1203Enable in and out of Graphite representation
1204
204b560f
SP
1205fgraphite-identity
1206Common Report Var(flag_graphite_identity) Optimization
1207Enable Graphite Identity transformation
1208
372a6eb8
BS
1209fhoist-adjacent-loads
1210Common Report Var(flag_hoist_adjacent_loads) Optimization
1211Enable hoisting adjacent loads to encourage generating conditional move
1212instructions
1213
3cf0e270
SP
1214floop-parallelize-all
1215Common Report Var(flag_loop_parallelize_all) Optimization
204b560f
SP
1216Mark all loops as parallel
1217
f8bf9252
SP
1218floop-strip-mine
1219Common Report Var(flag_loop_strip_mine) Optimization
1220Enable Loop Strip Mining transformation
1221
1222floop-interchange
1223Common Report Var(flag_loop_interchange) Optimization
1224Enable Loop Interchange transformation
1225
1226floop-block
1227Common Report Var(flag_loop_block) Optimization
1228Enable Loop Blocking transformation
1229
0a35513e
AH
1230fgnu-tm
1231Common Report Var(flag_tm)
1232Enable support for GNU transactional memory
1233
98af4c9f 1234floop-flatten
093193be
MK
1235Common Ignore
1236Does nothing. Preserved for backward compatibility.
98af4c9f 1237
b60cc080
TG
1238floop-nest-optimize
1239Common Report Var(flag_loop_optimize_isl) Optimization
1240Enable the ISL based loop nest optimizer
1241
6a78b724
DD
1242fstrict-volatile-bitfields
1243Common Report Var(flag_strict_volatile_bitfields) Init(-1)
1244Force bitfield accesses to match their type width
1245
6ff3a151 1246fguess-branch-probability
c662432e 1247Common Report Var(flag_guess_branch_prob) Optimization
f3fdaec4 1248Enable guessing of branch probabilities
6ff3a151 1249
31b66477
KC
1250; Nonzero means ignore `#ident' directives. 0 means handle them.
1251; Generate position-independent code for executables if possible
1252; On SVR4 targets, it also controls whether or not to emit a
1253; string identifying the compiler.
6ff3a151 1254fident
50431bc4 1255Common Report Var(flag_no_ident,0)
f3fdaec4 1256Process #ident directives
6ff3a151 1257
de32c0cb 1258fif-conversion
c662432e 1259Common Report Var(flag_if_conversion) Optimization
f3fdaec4 1260Perform conversion of conditional jumps to branchless equivalents
de32c0cb
NB
1261
1262fif-conversion2
c662432e 1263Common Report Var(flag_if_conversion2) Optimization
f3fdaec4 1264Perform conversion of conditional jumps to conditional execution
de32c0cb 1265
87e2a8fd
XDL
1266fstack-reuse=
1267Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL)
1268-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
1269
1270Enum
1271Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1272
1273EnumValue
1274Enum(stack_reuse_level) String(all) Value(SR_ALL)
1275
1276EnumValue
1277Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1278
1279EnumValue
1280Enum(stack_reuse_level) String(none) Value(SR_NONE)
1281
384a5197
SP
1282ftree-loop-if-convert
1283Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
1284Convert conditional jumps in innermost loops to branchless equivalents
1285
bd544141
SP
1286ftree-loop-if-convert-stores
1287Common Report Var(flag_tree_loop_if_convert_stores) Optimization
1288Also if-convert conditional jumps containing memory writes
1289
31b66477
KC
1290; -finhibit-size-directive inhibits output of .size for ELF.
1291; This is used only for compiling crtstuff.c,
1292; and it may be extended to other effects
1293; needed for crtstuff.c on other systems.
6ff3a151 1294finhibit-size-directive
50431bc4 1295Common Report Var(flag_inhibit_size_directive)
f3fdaec4 1296Do not generate .size directives
6ff3a151 1297
3e293154
MJ
1298findirect-inlining
1299Common Report Var(flag_indirect_inlining)
1300Perform indirect inlining
1301
99ea07f8
RG
1302; General flag to enable inlining. Specifying -fno-inline will disable
1303; all inlining apart from always-inline functions.
de32c0cb 1304finline
0f042bc5 1305Common Report Var(flag_no_inline,0) Init(0) Optimization
99ea07f8 1306Enable inlining of function declared \"inline\", disabling disables all inlining
de32c0cb 1307
4d4b8cb9
JH
1308finline-small-functions
1309Common Report Var(flag_inline_small_functions) Optimization
99ea07f8 1310Integrate functions into their callers when code size is known not to grow
4d4b8cb9 1311
de32c0cb 1312finline-functions
c662432e 1313Common Report Var(flag_inline_functions) Optimization
99ea07f8 1314Integrate functions not declared \"inline\" into their callers when profitable
de32c0cb 1315
355866de 1316finline-functions-called-once
fb37c1de 1317Common Report Var(flag_inline_functions_called_once) Optimization
99ea07f8 1318Integrate functions only required by their single caller
d63db217 1319
d302c9d6 1320finline-limit-
5de8299c 1321Common RejectNegative Joined Alias(finline-limit=)
d302c9d6
NB
1322
1323finline-limit=
1324Common RejectNegative Joined UInteger
cf03fd63 1325-finline-limit=<number> Limit the size of inlined functions to <number>
d302c9d6 1326
86951993
AM
1327finline-atomics
1328Common Report Var(flag_inline_atomics) Init(1) Optimization
1329Inline __atomic operations when a lock free instruction sequence is available.
1330
6ff3a151 1331finstrument-functions
50431bc4 1332Common Report Var(flag_instrument_function_entry_exit)
f3fdaec4 1333Instrument function entry and exit with profiling calls
6ff3a151 1334
8d5a7d1f
ILT
1335finstrument-functions-exclude-function-list=
1336Common RejectNegative Joined
1337-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
1338
1339finstrument-functions-exclude-file-list=
1340Common RejectNegative Joined
1341-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
1342
d6e14e8f 1343fipa-cp
c662432e 1344Common Report Var(flag_ipa_cp) Optimization
d6e14e8f
SB
1345Perform Interprocedural constant propagation
1346
5e45130d
JH
1347fipa-cp-clone
1348Common Report Var(flag_ipa_cp_clone) Optimization
1349Perform cloning to make Interprocedural constant propagation stronger
1350
e65bb9be
JH
1351fipa-profile
1352Common Report Var(flag_ipa_profile) Init(0) Optimization
1353Perform interprocedural profile propagation
ea900239 1354
4cf4d6a3 1355fipa-pta
c662432e 1356Common Report Var(flag_ipa_pta) Init(0) Optimization
4cf4d6a3
DB
1357Perform interprocedural points-to analysis
1358
e65bb9be
JH
1359fipa-pure-const
1360Common Report Var(flag_ipa_pure_const) Init(0) Optimization
1361Discover pure and const functions
1362
ea900239 1363fipa-reference
c662432e 1364Common Report Var(flag_ipa_reference) Init(0) Optimization
ea900239
DB
1365Discover readonly and non addressable static variables
1366
43d861a5 1367fipa-matrix-reorg
04f92ff4
RG
1368Common Ignore
1369Does nothing. Preserved for backward compatibility.
43d861a5 1370
e1dc98b2 1371fipa-struct-reorg
b8beb4d1
RG
1372Common Ignore
1373Does nothing. Preserved for backward compatibility.
e1dc98b2 1374
058e97ec 1375fira-algorithm=
e6d4b984 1376Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB)
7db7ed3c
VM
1377-fira-algorithm=[CB|priority] Set the used IRA algorithm
1378
e6d4b984
JM
1379Enum
1380Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1381
1382EnumValue
1383Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1384
1385EnumValue
1386Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1387
7db7ed3c 1388fira-region=
ffe8727f 1389Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT)
7db7ed3c 1390-fira-region=[one|all|mixed] Set regions for IRA
058e97ec 1391
e6d4b984
JM
1392Enum
1393Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1394
1395EnumValue
1396Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1397
1398EnumValue
1399Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1400
1401EnumValue
1402Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1403
b11f0116
BC
1404fira-hoist-pressure
1405Common Report Var(flag_ira_hoist_pressure) Init(1) Optimization
1406Use IRA based register pressure calculation
1407in RTL hoist optimizations.
1408
1833192f
VM
1409fira-loop-pressure
1410Common Report Var(flag_ira_loop_pressure)
1411Use IRA based register pressure calculation
1412in RTL loop optimizations.
1413
058e97ec
VM
1414fira-share-save-slots
1415Common Report Var(flag_ira_share_save_slots) Init(1)
1416Share slots for saving different hard registers.
1417
1418fira-share-spill-slots
1419Common Report Var(flag_ira_share_spill_slots) Init(1)
1420Share stack slots for spilled pseudo-registers.
1421
1422fira-verbose=
5498f011 1423Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
f94e1d66 1424-fira-verbose=<number> Control IRA's level of diagnostic messages.
058e97ec 1425
8b11a64c 1426fivopts
c662432e 1427Common Report Var(flag_ivopts) Init(1) Optimization
8b11a64c
ZD
1428Optimize induction variables on trees
1429
82c0180d 1430fjump-tables
c662432e 1431Common Var(flag_jump_tables) Init(1) Optimization
82c0180d
JM
1432Use jump tables for sufficiently large switch statements
1433
de32c0cb 1434fkeep-inline-functions
50431bc4 1435Common Report Var(flag_keep_inline_functions)
f3fdaec4 1436Generate code for functions even if they are fully inlined
de32c0cb
NB
1437
1438fkeep-static-consts
50431bc4 1439Common Report Var(flag_keep_static_consts) Init(1)
f3fdaec4 1440Emit static const variables even if they are not used
de32c0cb 1441
6ff3a151 1442fleading-underscore
50431bc4 1443Common Report Var(flag_leading_underscore) Init(-1)
f3fdaec4 1444Give external symbols a leading underscore
6ff3a151 1445
efa1cdf0 1446floop-optimize
2d2bd949 1447Common Ignore
c0220ea4 1448Does nothing. Preserved for backward compatibility.
efa1cdf0 1449
d7f09764 1450flto
014d92e1 1451Common
d7f09764
DN
1452Enable link-time optimization.
1453
014d92e1
JH
1454flto=
1455Common RejectNegative Joined Var(flag_lto)
1456Link-time optimization with number of parallel jobs or jobserver.
1457
852e4bd2
JH
1458flto-partition=1to1
1459Common Var(flag_lto_partition_1to1)
c3c445e1 1460Partition symbols and vars at linktime based on object files they originate from
852e4bd2
JH
1461
1462flto-partition=balanced
1463Common Var(flag_lto_partition_balanced)
1464Partition functions and vars at linktime into approximately same sized buckets
1465
c3c445e1
JH
1466flto-partition=max
1467Common Var(flag_lto_partition_max)
1468Put every symbol into separate partition
1469
014d92e1
JH
1470flto-partition=none
1471Common Var(flag_lto_partition_none)
1472Disable partioning and streaming
1473
d7f09764
DN
1474; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1475flto-compression-level=
fcfbd84e 1476Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
f94e1d66 1477-flto-compression-level=<number> Use zlib compression level <number> for IL
d7f09764
DN
1478
1479flto-report
1d67dde8 1480Common Report Var(flag_lto_report) Init(0)
d7f09764
DN
1481Report various link-time optimization statistics
1482
6ff3a151 1483fmath-errno
5e46b0c6 1484Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined
f3fdaec4 1485Set errno after built-in math functions
6ff3a151 1486
3a789837
NF
1487fmax-errors=
1488Common Joined RejectNegative UInteger Var(flag_max_errors)
1489-fmax-errors=<number> Maximum number of errors to report
1490
6ff3a151 1491fmem-report
50431bc4 1492Common Report Var(mem_report)
f3fdaec4 1493Report on permanent memory allocation
6ff3a151 1494
b3e44629
AK
1495fmem-report-wpa
1496Common Report Var(mem_report_wpa)
1497Report on permanent memory allocation in WPA only
1498
31b66477
KC
1499; This will attempt to merge constant section constants, if 1 only
1500; string constants and constants from constant pool, if 2 also constant
1501; variables.
6ff3a151 1502fmerge-all-constants
c662432e 1503Common Report Var(flag_merge_constants,2) Init(1) Optimization
f3fdaec4 1504Attempt to merge identical constants and constant variables
6ff3a151
NB
1505
1506fmerge-constants
f0036cca 1507Common Report Var(flag_merge_constants,1) Optimization
f3fdaec4 1508Attempt to merge identical constants across compilation units
6ff3a151 1509
28a08168
ILT
1510fmerge-debug-strings
1511Common Report Var(flag_merge_debug_strings) Init(1)
1512Attempt to merge identical debug strings across compilation units
1513
de32c0cb
NB
1514fmessage-length=
1515Common RejectNegative Joined UInteger
cf03fd63 1516-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
de32c0cb 1517
e5626198 1518fmodulo-sched
c662432e 1519Common Report Var(flag_modulo_sched) Optimization
e5626198
AZ
1520Perform SMS based modulo scheduling before the first scheduling pass
1521
517d76fa
VY
1522fmodulo-sched-allow-regmoves
1523Common Report Var(flag_modulo_sched_allow_regmoves)
1524Perform SMS based modulo scheduling with register moves allowed
1525
5e962776 1526fmove-loop-invariants
c662432e 1527Common Report Var(flag_move_loop_invariants) Init(1) Optimization
5e962776
ZD
1528Move loop invariant computations out of loops
1529
6fb5fa3c 1530fdce
6ae4be32 1531Common Var(flag_dce) Init(1) Optimization
6fb5fa3c
DB
1532Use the RTL dead code elimination pass
1533
1534fdse
6ae4be32 1535Common Var(flag_dse) Init(1) Optimization
6fb5fa3c
DB
1536Use the RTL dead store elimination pass
1537
d72372e4 1538freschedule-modulo-scheduled-loops
c662432e 1539Common Report Var(flag_resched_modulo_sched) Optimization
d72372e4
MH
1540Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
1541
6ff3a151 1542fnon-call-exceptions
c662432e 1543Common Report Var(flag_non_call_exceptions) Optimization
f3fdaec4 1544Support synchronous non-call exceptions
6ff3a151 1545
de32c0cb 1546fomit-frame-pointer
c662432e 1547Common Report Var(flag_omit_frame_pointer) Optimization
f3fdaec4 1548When possible do not generate stack frames
de32c0cb 1549
78c60e3d
SS
1550fopt-info
1551Common Report Var(flag_opt_info) Optimization
1552Enable all optimization info dumps on stderr
1553
1554fopt-info-
1555Common Joined RejectNegative Var(common_deferred_options) Defer
1556-fopt-info[-<type>=filename] Dump compiler optimization details
1557
6ff3a151 1558foptimize-register-move
c662432e 1559Common Report Var(flag_regmove) Optimization
f3fdaec4 1560Do the full register move optimization pass
6ff3a151 1561
de32c0cb 1562foptimize-sibling-calls
c662432e 1563Common Report Var(flag_optimize_sibling_calls) Optimization
f3fdaec4 1564Optimize sibling and tail recursive calls
de32c0cb 1565
3e485f62
JH
1566fpartial-inlining
1567Common Report Var(flag_partial_inlining)
1568Perform partial inlining
1569
a5573239
JH
1570fpre-ipa-mem-report
1571Common Report Var(pre_ipa_mem_report)
1572Report on memory allocation before interprocedural optimization
1573
1574fpost-ipa-mem-report
1575Common Report Var(post_ipa_mem_report)
1576Report on memory allocation before interprocedural optimization
1577
6ff3a151 1578fpack-struct
c662432e 1579Common Report Var(flag_pack_struct) Optimization
f3fdaec4 1580Pack structure members together without holes
6ff3a151 1581
467cecf3 1582fpack-struct=
c662432e 1583Common RejectNegative Joined UInteger Optimization
467cecf3
JB
1584-fpack-struct=<number> Set initial maximum structure member alignment
1585
de32c0cb 1586fpcc-struct-return
5498f011 1587Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
f3fdaec4 1588Return small aggregates in memory, not registers
de32c0cb
NB
1589
1590fpeel-loops
c662432e 1591Common Report Var(flag_peel_loops) Optimization
f3fdaec4 1592Perform loop peeling
de32c0cb
NB
1593
1594fpeephole
c662432e 1595Common Report Var(flag_no_peephole,0) Optimization
f3fdaec4 1596Enable machine specific peephole optimizations
de32c0cb 1597
6ff3a151 1598fpeephole2
c662432e 1599Common Report Var(flag_peephole2) Optimization
f3fdaec4 1600Enable an RTL peephole pass before sched2
6ff3a151 1601
31b66477 1602fPIC
da0aa2cc 1603Common Report Var(flag_pic,2) Negative(fPIE)
31b66477
KC
1604Generate position-independent code if possible (large mode)
1605
1606fPIE
da0aa2cc 1607Common Report Var(flag_pie,2) Negative(fpic)
31b66477
KC
1608Generate position-independent code for executables if possible (large mode)
1609
6ff3a151 1610fpic
da0aa2cc 1611Common Report Var(flag_pic,1) Negative(fpie)
31b66477 1612Generate position-independent code if possible (small mode)
6ff3a151
NB
1613
1614fpie
da0aa2cc 1615Common Report Var(flag_pie,1) Negative(fPIC)
31b66477 1616Generate position-independent code for executables if possible (small mode)
6ff3a151 1617
68a607d8 1618fplugin=
21bf1558 1619Common Joined RejectNegative Var(common_deferred_options) Defer
68a607d8
DN
1620Specify a plugin to load
1621
1622fplugin-arg-
21bf1558 1623Common Joined RejectNegative Var(common_deferred_options) Defer
f94e1d66 1624-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
68a607d8 1625
bbc8a8dc 1626fpredictive-commoning
6ae4be32 1627Common Report Var(flag_predictive_commoning) Optimization
bbc8a8dc
ZD
1628Run predictive commoning optimization.
1629
de32c0cb 1630fprefetch-loop-arrays
1fbb509a 1631Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
f3fdaec4 1632Generate prefetch instructions, if available, for arrays in loops
de32c0cb 1633
6ff3a151 1634fprofile
50431bc4 1635Common Report Var(profile_flag)
f3fdaec4 1636Enable basic program profiling code
6ff3a151
NB
1637
1638fprofile-arcs
50431bc4 1639Common Report Var(profile_arc_flag)
f3fdaec4 1640Insert arc-based program profiling code
6ff3a151 1641
2f908293 1642fprofile-dir=
0576d21f 1643Common Joined RejectNegative Var(profile_data_prefix)
2f908293
SP
1644Set the top-level directory for storing the profile data.
1645The default is 'pwd'.
1646
52c76998
PY
1647fprofile-correction
1648Common Report Var(flag_profile_correction)
1649Enable correction of flow inconsistent profile data input
1650
a8a5f53a
JH
1651fprofile-generate
1652Common
1653Enable common options for generating profile info for profile feedback directed optimizations
1654
2f908293
SP
1655fprofile-generate=
1656Common Joined RejectNegative
1657Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1658
a8a5f53a 1659fprofile-use
2f908293 1660Common Var(flag_profile_use)
a8a5f53a
JH
1661Enable common options for performing profile feedback directed optimizations
1662
2f908293
SP
1663fprofile-use=
1664Common Joined RejectNegative
1665Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1666
fca9dc00 1667fprofile-values
50431bc4 1668Common Report Var(flag_profile_values)
fca9dc00
ZD
1669Insert code to profile values of expressions
1670
37e5402b
JH
1671fprofile-report
1672Common Report Var(profile_report)
1673Report on consistency of profile
1674
de32c0cb 1675frandom-seed
299404a1 1676Common Var(common_deferred_options) Defer
de32c0cb
NB
1677
1678frandom-seed=
299404a1 1679Common Joined RejectNegative Var(common_deferred_options) Defer
cf03fd63 1680-frandom-seed=<string> Make compile reproducible using <string>
de32c0cb 1681
e0d9d0dd
NC
1682; This switch causes the command line that was used to create an
1683; object file to be recorded into the object file. The exact format
1684; of this recording is target and binary file format dependent.
1685; It is related to the -fverbose-asm switch, but that switch only
1686; records information in the assembler output file as comments, so
1687; they never reach the object file.
1688frecord-gcc-switches
1689Common Report Var(flag_record_gcc_switches)
1690Record gcc command line switches in the object file.
1691
de32c0cb 1692freg-struct-return
f0036cca 1693Common Report Var(flag_pcc_struct_return,0) Optimization
f3fdaec4 1694Return small aggregates in registers
de32c0cb 1695
6ff3a151 1696fregmove
c662432e 1697Common Report Var(flag_regmove) Optimization
f3fdaec4 1698Enables a register move optimization
6ff3a151
NB
1699
1700frename-registers
c662432e 1701Common Report Var(flag_rename_registers) Init(2) Optimization
f3fdaec4 1702Perform a register renaming optimization pass
6ff3a151
NB
1703
1704freorder-blocks
c662432e 1705Common Report Var(flag_reorder_blocks) Optimization
f3fdaec4 1706Reorder basic blocks to improve code placement
6ff3a151 1707
750054a2 1708freorder-blocks-and-partition
c662432e 1709Common Report Var(flag_reorder_blocks_and_partition) Optimization
750054a2
CT
1710Reorder basic blocks and partition into hot and cold sections
1711
6ff3a151 1712freorder-functions
c662432e 1713Common Report Var(flag_reorder_functions) Optimization
f3fdaec4 1714Reorder functions to improve code placement
6ff3a151 1715
de32c0cb 1716frerun-cse-after-loop
3020190e 1717Common Report Var(flag_rerun_cse_after_loop) Optimization
f3fdaec4 1718Add a common subexpression elimination pass after loop optimizations
de32c0cb 1719
efa1cdf0 1720frerun-loop-opt
2d2bd949 1721Common Ignore
c0220ea4 1722Does nothing. Preserved for backward compatibility.
efa1cdf0 1723
039c3d42 1724frounding-math
5e46b0c6 1725Common Report Var(flag_rounding_math) Optimization SetByCombined
039c3d42
RS
1726Disable optimizations that assume default FP rounding behavior
1727
6ff3a151 1728fsched-interblock
c662432e 1729Common Report Var(flag_schedule_interblock) Init(1) Optimization
f3fdaec4 1730Enable scheduling across basic blocks
6ff3a151 1731
ce18efcb
VM
1732fsched-pressure
1733Common Report Var(flag_sched_pressure) Init(0) Optimization
1734Enable register pressure sensitive insn scheduling
1735
6ff3a151 1736fsched-spec
c662432e 1737Common Report Var(flag_schedule_speculative) Init(1) Optimization
f3fdaec4 1738Allow speculative motion of non-loads
6ff3a151
NB
1739
1740fsched-spec-load
c662432e 1741Common Report Var(flag_schedule_speculative_load) Optimization
f3fdaec4 1742Allow speculative motion of some loads
6ff3a151
NB
1743
1744fsched-spec-load-dangerous
c662432e 1745Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
f3fdaec4 1746Allow speculative motion of more loads
6ff3a151 1747
de32c0cb 1748fsched-verbose=
299404a1 1749Common RejectNegative Joined UInteger Var(sched_verbose_param)
cf03fd63 1750-fsched-verbose=<number> Set the verbosity level of the scheduler
de32c0cb 1751
6ff3a151 1752fsched2-use-superblocks
c662432e 1753Common Report Var(flag_sched2_use_superblocks) Optimization
f3fdaec4 1754If scheduling post reload, do superblock scheduling
6ff3a151
NB
1755
1756fsched2-use-traces
2d2bd949 1757Common Ignore
57257f0d 1758Does nothing. Preserved for backward compatibility.
6ff3a151 1759
de32c0cb 1760fschedule-insns
c662432e 1761Common Report Var(flag_schedule_insns) Optimization
f3fdaec4 1762Reschedule instructions before register allocation
de32c0cb
NB
1763
1764fschedule-insns2
c662432e 1765Common Report Var(flag_schedule_insns_after_reload) Optimization
f3fdaec4 1766Reschedule instructions after register allocation
de32c0cb 1767
e855c69d
AB
1768; This flag should be on when a target implements non-trivial
1769; scheduling hooks, maybe saving some information for its own sake.
1770; On IA64, for example, this is used for correct bundling.
1771fselective-scheduling
1772Common Report Var(flag_selective_scheduling) Optimization
1773Schedule instructions using selective scheduling algorithm
1774
1775fselective-scheduling2
1776Common Report Var(flag_selective_scheduling2) Optimization
1777Run selective scheduling after reload
1778
1779fsel-sched-pipelining
1780Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1781Perform software pipelining of inner loops during selective scheduling
1782
1783fsel-sched-pipelining-outer-loops
1784Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1785Perform software pipelining of outer loops during selective scheduling
1786
1787fsel-sched-reschedule-pipelined
1788Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1789Reschedule pipelined regions without pipelining
1790
31b66477
KC
1791; sched_stalled_insns means that insns can be moved prematurely from the queue
1792; of stalled insns into the ready list.
569fa502 1793fsched-stalled-insns
ab442df7 1794Common Report Var(flag_sched_stalled_insns) Optimization UInteger
569fa502
DN
1795Allow premature scheduling of queued insns
1796
1797fsched-stalled-insns=
c22cacf3 1798Common RejectNegative Joined UInteger
4e994432 1799-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
569fa502 1800
31b66477
KC
1801; sched_stalled_insns_dep controls how many recently scheduled cycles will
1802; be examined for a dependency on a stalled insn that is candidate for
1803; premature removal from the queue of stalled insns into the ready list (has
1804; an effect only if the flag 'sched_stalled_insns' is set).
569fa502 1805fsched-stalled-insns-dep
ab442df7 1806Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
569fa502
DN
1807Set dependence distance checking in premature scheduling of queued insns
1808
1809fsched-stalled-insns-dep=
1810Common RejectNegative Joined UInteger
4e994432 1811-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
569fa502 1812
ee4764a8
GS
1813fsched-group-heuristic
1814Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1815Enable the group heuristic in the scheduler
1816
1817fsched-critical-path-heuristic
1818Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1819Enable the critical path heuristic in the scheduler
1820
1821fsched-spec-insn-heuristic
1822Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1823Enable the speculative instruction heuristic in the scheduler
1824
ee4764a8
GS
1825fsched-rank-heuristic
1826Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1827Enable the rank heuristic in the scheduler
1828
1829fsched-last-insn-heuristic
1830Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1831Enable the last instruction heuristic in the scheduler
1832
1833fsched-dep-count-heuristic
1834Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1835Enable the dependent count heuristic in the scheduler
1836
aacd3885 1837fsection-anchors
c662432e 1838Common Report Var(flag_section_anchors) Optimization
aacd3885
RS
1839Access data in the same section from shared anchor points
1840
8cd37d0b 1841fsee
2d2bd949 1842Common Ignore
8393a9c8 1843Does nothing. Preserved for backward compatibility.
8cd37d0b 1844
87a0ebfd 1845fzee
26cd9add
EI
1846Common Ignore
1847Does nothing. Preserved for backward compatibility.
1848
1849free
1850Common Report Var(flag_ree) Init(0)
1851Turn on Redundant Extensions Elimination pass.
87a0ebfd 1852
8abb6b22 1853fshow-column
1cb42611 1854Common Report Var(flag_show_column) Init(1)
e74fe492 1855Show column numbers in diagnostics, when available. Default on
8abb6b22 1856
484db665
BS
1857fshrink-wrap
1858Common Report Var(flag_shrink_wrap) Optimization
1859Emit function prologues only before parts of the function that need it,
1860rather than at the top of the function.
1861
6ff3a151 1862fsignaling-nans
5e46b0c6 1863Common Report Var(flag_signaling_nans) Optimization SetByCombined
f3fdaec4 1864Disable optimizations observable by IEEE signaling NaNs
6ff3a151 1865
db02da79 1866fsigned-zeros
5e46b0c6 1867Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined
db02da79
RS
1868Disable floating point optimizations that ignore the IEEE signedness of zero
1869
6ff3a151 1870fsingle-precision-constant
c662432e 1871Common Report Var(flag_single_precision_constant) Optimization
f3fdaec4 1872Convert floating point constants to single precision constants
6ff3a151 1873
113d659a 1874fsplit-ivs-in-unroller
c662432e 1875Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
c85ce869 1876Split lifetimes of induction variables when loops are unrolled
113d659a 1877
7458026b
ILT
1878fsplit-stack
1879Common Report Var(flag_split_stack) Init(-1)
1880Generate discontiguous stack frames
1881
e53a16e7 1882fsplit-wide-types
21af5cdf 1883Common Report Var(flag_split_wide_types) Optimization
e53a16e7
ILT
1884Split wide types into independent registers
1885
f37a4f14 1886fvariable-expansion-in-unroller
c662432e 1887Common Report Var(flag_variable_expansion_in_unroller) Optimization
c85ce869 1888Apply variable expansion when loops are unrolled
f37a4f14 1889
b38f3813
EB
1890fstack-check=
1891Common Report RejectNegative Joined
1892-fstack-check=[no|generic|specific] Insert stack checking code into the program
1893
6ff3a151 1894fstack-check
5de8299c 1895Common Alias(fstack-check=, specific, no)
b38f3813 1896Insert stack checking code into the program. Same as -fstack-check=specific
6ff3a151 1897
de32c0cb 1898fstack-limit
21bf1558 1899Common Var(common_deferred_options) Defer
de32c0cb 1900
058de654 1901fstack-limit-register=
21bf1558 1902Common RejectNegative Joined Var(common_deferred_options) Defer
cf03fd63 1903-fstack-limit-register=<register> Trap if the stack goes past <register>
058de654
NB
1904
1905fstack-limit-symbol=
21bf1558 1906Common RejectNegative Joined Var(common_deferred_options) Defer
cf03fd63 1907-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
058de654 1908
7d69de61
RH
1909fstack-protector
1910Common Report Var(flag_stack_protect, 1)
1911Use propolice as a stack protection method
1912
1913fstack-protector-all
f0036cca 1914Common Report RejectNegative Var(flag_stack_protect, 2)
7d69de61
RH
1915Use a stack protection method for every function
1916
d3c12306
EB
1917fstack-usage
1918Common RejectNegative Var(flag_stack_usage)
1919Output stack usage information on a per-function basis
1920
de32c0cb 1921fstrength-reduce
2d2bd949 1922Common Ignore
c0220ea4 1923Does nothing. Preserved for backward compatibility.
de32c0cb 1924
31b66477
KC
1925; Nonzero if we should do (language-dependent) alias analysis.
1926; Typically, this analysis will assume that expressions of certain
1927; types do not alias expressions of certain other types. Only used
1928; if alias analysis (in general) is enabled.
6ff3a151 1929fstrict-aliasing
c662432e 1930Common Report Var(flag_strict_aliasing) Optimization
f3fdaec4 1931Assume strict aliasing rules apply
6ff3a151 1932
eeef0e45
ILT
1933fstrict-overflow
1934Common Report Var(flag_strict_overflow)
1935Treat signed overflow as undefined
1936
e8053cf5
RH
1937fsync-libcalls
1938Common Report Var(flag_sync_libcalls) Init(1)
1939Implement __atomic operations via libcalls to legacy __sync functions
1940
de32c0cb 1941fsyntax-only
50431bc4 1942Common Report Var(flag_syntax_only)
f3fdaec4 1943Check for syntax errors, then stop
de32c0cb 1944
6ff3a151 1945ftest-coverage
50431bc4 1946Common Report Var(flag_test_coverage)
f3fdaec4 1947Create data files needed by \"gcov\"
6ff3a151 1948
de32c0cb 1949fthread-jumps
c662432e 1950Common Report Var(flag_thread_jumps) Optimization
f3fdaec4 1951Perform jump threading optimizations
de32c0cb 1952
6ff3a151 1953ftime-report
50431bc4 1954Common Report Var(time_report)
f3fdaec4 1955Report the time taken by each compiler pass
6ff3a151 1956
058de654 1957ftls-model=
e6d4b984 1958Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
cf03fd63 1959-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
058de654 1960
e6d4b984
JM
1961Enum
1962Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
1963
1964EnumValue
1965Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
1966
1967EnumValue
1968Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
1969
1970EnumValue
1971Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
1972
1973EnumValue
1974Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
1975
474eccc6 1976ftoplevel-reorder
d6cc6ec9 1977Common Report Var(flag_toplevel_reorder) Init(2) Optimization
474eccc6
ILT
1978Reorder top level functions, variables, and asms
1979
de32c0cb 1980ftracer
50431bc4 1981Common Report Var(flag_tracer)
f3fdaec4 1982Perform superblock formation via tail duplication
de32c0cb 1983
31b66477
KC
1984; Zero means that floating-point math operations cannot generate a
1985; (user-visible) trap. This is the case, for example, in nonstop
1986; IEEE 754 arithmetic.
6ff3a151 1987ftrapping-math
5e46b0c6 1988Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined
f3fdaec4 1989Assume floating-point operations can trap
6ff3a151
NB
1990
1991ftrapv
c662432e 1992Common Report Var(flag_trapv) Optimization
f3fdaec4 1993Trap for signed overflow in addition, subtraction and multiplication
6ff3a151 1994
6de9cd9a 1995ftree-ccp
c662432e 1996Common Report Var(flag_tree_ccp) Optimization
6de9cd9a
DN
1997Enable SSA-CCP optimization on trees
1998
0b4b14ac
RG
1999ftree-bit-ccp
2000Common Report Var(flag_tree_bit_ccp) Optimization
2001Enable SSA-BIT-CCP optimization on trees
2002
0bca51f0 2003ftree-store-ccp
2d2bd949 2004Common Ignore
dce2b2f6 2005Does nothing. Preserved for backward compatibility.
0bca51f0 2006
6de9cd9a 2007ftree-ch
c662432e 2008Common Report Var(flag_tree_ch) Optimization
6de9cd9a
DN
2009Enable loop header copying on trees
2010
21d01365
AO
2011ftree-coalesce-inlined-vars
2012Common Report Var(flag_ssa_coalesce_vars,1) Init(2) RejectNegative Optimization
2013Enable coalescing of copy-related user variables that are inlined
2014
2015ftree-coalesce-vars
2016Common Report Var(flag_ssa_coalesce_vars,2) Optimization
2017Enable coalescing of all copy-related user variables
2018
6de9cd9a 2019ftree-copyrename
c662432e 2020Common Report Var(flag_tree_copyrename) Optimization
c85ce869 2021Replace SSA temporaries with better names in copies
6de9cd9a 2022
0bca51f0 2023ftree-copy-prop
c662432e 2024Common Report Var(flag_tree_copy_prop) Optimization
0bca51f0
DN
2025Enable copy propagation on trees
2026
2027ftree-store-copy-prop
2d2bd949 2028Common Ignore
e9033855 2029Does nothing. Preserved for backward compatibility.
0bca51f0 2030
a5828d1e
MM
2031ftree-cselim
2032Common Report Var(flag_tree_cselim) Init(2) Optimization
2033Transform condition stores into unconditional ones
2034
b6e99746
MJ
2035ftree-switch-conversion
2036Common Report Var(flag_tree_switch_conversion) Optimization
2037Perform conversions of switch initializations.
2038
6de9cd9a 2039ftree-dce
c662432e 2040Common Report Var(flag_tree_dce) Optimization
6de9cd9a
DN
2041Enable SSA dead code elimination optimization on trees
2042
2043ftree-dominator-opts
c662432e 2044Common Report Var(flag_tree_dom) Optimization
6de9cd9a
DN
2045Enable dominator optimizations
2046
c9e93168
TV
2047ftree-tail-merge
2048Common Report Var(flag_tree_tail_merge) Optimization
2049Enable tail merging on trees
2050
6de9cd9a 2051ftree-dse
c662432e 2052Common Report Var(flag_tree_dse) Optimization
6de9cd9a
DN
2053Enable dead store elimination
2054
248fc9f3
RG
2055ftree-forwprop
2056Common Report Var(flag_tree_forwprop) Init(1) Optimization
2057Enable forward propagation on trees
2058
ff2ad0f7 2059ftree-fre
c662432e 2060Common Report Var(flag_tree_fre) Optimization
ff2ad0f7
DN
2061Enable Full Redundancy Elimination (FRE) on trees
2062
8b57bfeb
JJ
2063foptimize-strlen
2064Common Report Var(flag_optimize_strlen) Optimization
2065Enable string length optimizations on trees
2066
dea61d92 2067ftree-loop-distribution
53ed2f0e 2068Common Report Var(flag_tree_loop_distribution) Optimization
dea61d92
SP
2069Enable loop distribution on trees
2070
20769d5e
SP
2071ftree-loop-distribute-patterns
2072Common Report Var(flag_tree_loop_distribute_patterns) Optimization
2073Enable loop distribution for patterns transformed into a library call
2074
1b08d87d 2075ftree-loop-im
c662432e 2076Common Report Var(flag_tree_loop_im) Init(1) Optimization
a7e5372d
ZD
2077Enable loop invariant motion on trees
2078
599eabdb 2079ftree-loop-linear
7633415c
SP
2080Common Alias(floop-interchange)
2081Enable loop interchange transforms. Same as -floop-interchange
599eabdb 2082
1b08d87d 2083ftree-loop-ivcanon
c662432e 2084Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1b08d87d
DB
2085Create canonical induction variables in loops
2086
c66b6c66 2087ftree-loop-optimize
c662432e 2088Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
c66b6c66
ZD
2089Enable loop optimizations on tree level
2090
5f40b3cb 2091ftree-parallelize-loops=
fcfbd84e 2092Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
5f40b3cb
ZD
2093Enable automatic parallelization of loops
2094
248fc9f3
RG
2095ftree-phiprop
2096Common Report Var(flag_tree_phiprop) Init(1) Optimization
2097Enable hoisting loads from conditional pointers.
2098
6de9cd9a 2099ftree-pre
c662432e 2100Common Report Var(flag_tree_pre) Optimization
6de9cd9a
DN
2101Enable SSA-PRE optimization on trees
2102
fa06ad0d
JR
2103ftree-partial-pre
2104Common Report Var(flag_tree_partial_pre) Optimization
2105In SSA-PRE optimization on trees, enable partial-partial redundancy elimination
2106
248fc9f3
RG
2107ftree-pta
2108Common Report Var(flag_tree_pta) Init(1) Optimization
2109Perform function-local points-to analysis on trees.
2110
13c59415
UB
2111ftree-reassoc
2112Common Report Var(flag_tree_reassoc) Init(1) Optimization
2113Enable reassociation on tree level
2114
c75ab022 2115ftree-salias
2d2bd949 2116Common Ignore
1353232d 2117Does nothing. Preserved for backward compatibility.
c75ab022 2118
fa555252 2119ftree-sink
c662432e 2120Common Report Var(flag_tree_sink) Optimization
fa555252
DB
2121Enable SSA code sinking on trees
2122
75cfe445
BS
2123ftree-slsr
2124Common Report Var(flag_tree_slsr) Optimization
2125Perform straight-line strength reduction
2126
6de9cd9a 2127ftree-sra
c662432e 2128Common Report Var(flag_tree_sra) Optimization
6de9cd9a
DN
2129Perform scalar replacement of aggregates
2130
2131ftree-ter
3020190e 2132Common Report Var(flag_tree_ter) Optimization
6de9cd9a
DN
2133Replace temporary expressions in the SSA->normal pass
2134
c662432e
NC
2135ftree-lrs
2136Common Report Var(flag_tree_live_range_split) Optimization
2137Perform live range splitting during the SSA->normal pass
2138
0bca51f0 2139ftree-vrp
c662432e 2140Common Report Var(flag_tree_vrp) Init(0) Optimization
0bca51f0
DN
2141Perform Value Range Propagation on trees
2142
de32c0cb 2143funit-at-a-time
d6cc6ec9 2144Common Report Var(flag_unit_at_a_time) Init(1) Optimization
f3fdaec4 2145Compile whole compilation unit at a time
de32c0cb
NB
2146
2147funroll-loops
c662432e 2148Common Report Var(flag_unroll_loops) Optimization
f3fdaec4 2149Perform loop unrolling when iteration count is known
de32c0cb
NB
2150
2151funroll-all-loops
c662432e 2152Common Report Var(flag_unroll_all_loops) Optimization
f3fdaec4 2153Perform loop unrolling for all loops
de32c0cb 2154
f9cc1a70
PB
2155; Nonzero means that loop optimizer may assume that the induction variables
2156; that control loops do not overflow and that the loops with nontrivial
2157; exit condition are not infinite
2158funsafe-loop-optimizations
c662432e 2159Common Report Var(flag_unsafe_loop_optimizations) Optimization
f9cc1a70
PB
2160Allow loop optimizations to assume that the loops behave in normal way
2161
a1a82611 2162fassociative-math
5e46b0c6 2163Common Report Var(flag_associative_math) SetByCombined
a1a82611
RE
2164Allow optimization for floating-point arithmetic which may change the
2165result of the operation due to rounding.
2166
2167freciprocal-math
5e46b0c6 2168Common Report Var(flag_reciprocal_math) SetByCombined
a1a82611
RE
2169Same as -fassociative-math for expressions which include division.
2170
31b66477
KC
2171; Nonzero means that unsafe floating-point math optimizations are allowed
2172; for the sake of speed. IEEE compliance is not guaranteed, and operations
2173; are allowed to assume that their arguments and results are "normal"
2174; (e.g., nonnegative for SQRT).
6ff3a151 2175funsafe-math-optimizations
5e46b0c6 2176Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined
f3fdaec4 2177Allow math optimizations that may violate IEEE or ISO standards
6ff3a151 2178
de32c0cb 2179funswitch-loops
c662432e 2180Common Report Var(flag_unswitch_loops) Optimization
f3fdaec4 2181Perform loop unswitching
de32c0cb 2182
6ff3a151 2183funwind-tables
c662432e 2184Common Report Var(flag_unwind_tables) Optimization
f3fdaec4 2185Just generate unwind tables for exception handling
6ff3a151 2186
b352afba
NC
2187fuse-ld=bfd
2188Common Negative(fuse-ld=gold)
2189Use the bfd linker instead of the default linker
2190
2191fuse-ld=gold
2192Common Negative(fuse-ld=bfd)
2193Use the gold linker instead of the default linker
2194
da18ea94
RAE
2195fuse-linker-plugin
2196Common Undocumented
2197
e90afde6
JM
2198; Positive if we should track variables, negative if we should run
2199; the var-tracking pass only to discard debug annotations, zero if
2200; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it
2201; will be set according to optimize, debug_info_level and debug_hooks
2202; in process_options ().
014a1138 2203fvar-tracking
e90afde6 2204Common Report Var(flag_var_tracking) Init(2) Optimization
014a1138
JZ
2205Perform variable tracking
2206
e90afde6
JM
2207; Positive if we should track variables at assignments, negative if
2208; we should run the var-tracking pass only to discard debug
2209; annotations. When flag_var_tracking_assignments ==
2210; AUTODETECT_VALUE it will be set according to flag_var_tracking.
b5b8b0ac 2211fvar-tracking-assignments
e90afde6 2212Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
b5b8b0ac
AO
2213Perform variable tracking by annotating assignments
2214
e90afde6
JM
2215; Nonzero if we should toggle flag_var_tracking_assignments after
2216; processing options and computing its default. */
b5b8b0ac 2217fvar-tracking-assignments-toggle
e90afde6 2218Common Report Var(flag_var_tracking_assignments_toggle) Optimization
b5b8b0ac
AO
2219Toggle -fvar-tracking-assignments
2220
1267ca30
EB
2221; Positive if we should track uninitialized variables, negative if
2222; we should run the var-tracking pass only to discard debug
2223; annotations. When flag_var_tracking_uninit == AUTODETECT_VALUE it
2224; will be set according to flag_var_tracking.
62760ffd
CT
2225fvar-tracking-uninit
2226Common Report Var(flag_var_tracking_uninit) Optimization
2227Perform variable tracking and also tag variables that are uninitialized
2228
79fe1b3b 2229ftree-vectorize
c662432e 2230Common Report Var(flag_tree_vectorize) Optimization
79fe1b3b
DN
2231Enable loop vectorization on trees
2232
78c60e3d
SS
2233ftree-vectorizer-verbose=
2234Common RejectNegative Joined UInteger Var(common_deferred_options) Defer
2235-ftree-vectorizer-verbose=<number> This switch is deprecated. Use -fopt-info instead.
2236
a70d6342
IR
2237ftree-slp-vectorize
2238Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
2239Enable basic block vectorization (SLP) on trees
2240
792ed98b
HJ
2241fvect-cost-model
2242Common Report Var(flag_vect_cost_model) Optimization
2243Enable use of cost model in vectorization
2244
c12cc930 2245ftree-vect-loop-version
c662432e 2246Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
c12cc930
KB
2247Enable loop versioning when doing loop vectorization on trees
2248
fbf798fc 2249ftree-scev-cprop
21af5cdf 2250Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
fbf798fc
DN
2251Enable copy propagation of scalar-evolution information.
2252
31b66477
KC
2253; -fverbose-asm causes extra commentary information to be produced in
2254; the generated assembly code (to make it more readable). This option
2255; is generally only of use to those who actually need to read the
2256; generated assembly code (perhaps while debugging the compiler itself).
2257; -fno-verbose-asm, the default, causes the extra information
2258; to not be added and is useful when comparing two assembler files.
6ff3a151 2259fverbose-asm
50431bc4 2260Common Report Var(flag_verbose_asm)
f3fdaec4 2261Add extra commentary to assembler output
6ff3a151 2262
d7afec4b 2263fvisibility=
e6d4b984 2264Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
d7afec4b
ND
2265-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
2266
e6d4b984
JM
2267Enum
2268Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
2269
2270EnumValue
2271Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
2272
2273EnumValue
2274Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
2275
2276EnumValue
2277Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
2278
2279EnumValue
2280Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
d7afec4b 2281
fca9dc00 2282fvpt
c662432e 2283Common Report Var(flag_value_profile_transformations) Optimization
fca9dc00
ZD
2284Use expression value profiles in optimizations
2285
62551c66 2286fweb
c662432e 2287Common Report Var(flag_web) Init(2) Optimization
62551c66
JH
2288Construct webs and split unrelated uses of single variable
2289
c2699190
XDL
2290ftree-builtin-call-dce
2291Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
2292Enable conditional dead code elimination for builtin calls
2293
ce91e74c 2294fwhole-program
c662432e 2295Common Report Var(flag_whole_program) Init(0) Optimization
ce91e74c
JH
2296Perform whole program optimizations
2297
6ff3a151 2298fwrapv
c662432e 2299Common Report Var(flag_wrapv) Optimization
f3fdaec4 2300Assume signed arithmetic overflow wraps around
6ff3a151 2301
6ff3a151 2302fzero-initialized-in-bss
50431bc4 2303Common Report Var(flag_zero_initialized_in_bss) Init(1)
f3fdaec4 2304Put zero initialized data in the bss section
6ff3a151 2305
e01cc6dc
NB
2306g
2307Common JoinedOrMissing
df38ffef
NB
2308Generate debug information in default format
2309
2310gcoff
6782438d 2311Common JoinedOrMissing Negative(gdwarf)
df38ffef
NB
2312Generate debug information in COFF format
2313
6782438d
SKS
2314gdwarf
2315Common JoinedOrMissing Negative(gdwarf-)
2316Generate debug information in default version of DWARF format
2317
53b2323e 2318gdwarf-
98095aa3 2319Common Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs)
53b2323e 2320Generate debug information in DWARF v2 (or later) format
df38ffef
NB
2321
2322ggdb
2323Common JoinedOrMissing
2324Generate debug information in default extended format
2325
5175cbaf
SA
2326gno-pubnames
2327Common RejectNegative Var(debug_generate_pub_sections, 0) Init(-1)
2328Don't generate DWARF pubnames and pubtypes sections.
2329
2330gpubnames
2331Common RejectNegative Var(debug_generate_pub_sections, 1)
2332Generate DWARF pubnames and pubtypes sections.
2333
e967adf4 2334gno-record-gcc-switches
98095aa3 2335Common RejectNegative Var(dwarf_record_gcc_switches,0) Init(1)
e967adf4
JJ
2336Don't record gcc command line switches in DWARF DW_AT_producer.
2337
2338grecord-gcc-switches
2339Common RejectNegative Var(dwarf_record_gcc_switches,1)
2340Record gcc command line switches in DWARF DW_AT_producer.
2341
99ea153e
SA
2342gno-split-dwarf
2343Common Driver RejectNegative Var(dwarf_split_debug_info,0) Init(0)
2344Don't generate debug information in separate .dwo files
2345
2346gsplit-dwarf
2347Common Driver RejectNegative Var(dwarf_split_debug_info,1)
2348Generate debug information in separate .dwo files
2349
df38ffef 2350gstabs
14c7833c 2351Common JoinedOrMissing Negative(gstabs+)
df38ffef
NB
2352Generate debug information in STABS format
2353
2354gstabs+
14c7833c 2355Common JoinedOrMissing Negative(gvms)
df38ffef
NB
2356Generate debug information in extended STABS format
2357
65f753a0 2358gno-strict-dwarf
98095aa3 2359Common RejectNegative Var(dwarf_strict,0) Init(0)
65f753a0
JJ
2360Emit DWARF additions beyond selected version
2361
2362gstrict-dwarf
f0036cca 2363Common Report RejectNegative Var(dwarf_strict,1)
65f753a0
JJ
2364Don't emit DWARF additions beyond selected version
2365
2153915d
AO
2366gtoggle
2367Common Report Var(flag_gtoggle)
2368Toggle debug information generation
2369
df38ffef 2370gvms
14c7833c 2371Common JoinedOrMissing Negative(gxcoff)
df38ffef
NB
2372Generate debug information in VMS format
2373
2374gxcoff
14c7833c 2375Common JoinedOrMissing Negative(gxcoff+)
df38ffef
NB
2376Generate debug information in XCOFF format
2377
2378gxcoff+
14c7833c 2379Common JoinedOrMissing Negative(gcoff)
df38ffef 2380Generate debug information in extended XCOFF format
e01cc6dc 2381
6d721f67
JM
2382h
2383Driver Joined Separate
2384
4adbd5dd
MK
2385iplugindir=
2386Common Joined Var(plugindir_string) Init(0)
2387-iplugindir=<dir> Set <dir> to be the default plugin directory
2388
e0cdc09f
MK
2389imultiarch
2390Common Joined Separate RejectDriver Var(imultiarch) Init(0)
2391-imultiarch <dir> Set <dir> to be the multiarch include subdirectory
2392
603349bf
JM
2393l
2394Driver Joined Separate
2395
dd9f93dc
JM
2396n
2397Driver
2398
603349bf
JM
2399no-canonical-prefixes
2400Driver
2401
d9d16a19
JM
2402nodefaultlibs
2403Driver
2404
bab79a40
JM
2405nostartfiles
2406Driver
2407
d9d16a19
JM
2408nostdlib
2409Driver
2410
d185d268 2411o
d5478783 2412Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
cf03fd63 2413-o <file> Place output into <file>
d185d268
NB
2414
2415p
50431bc4 2416Common Var(profile_flag)
cf03fd63 2417Enable function profiling
d185d268 2418
603349bf
JM
2419pass-exit-codes
2420Driver Var(pass_exit_codes)
2421
d185d268 2422pedantic
c1771a20 2423Common Alias(Wpedantic)
d185d268
NB
2424
2425pedantic-errors
d5478783 2426Common Var(flag_pedantic_errors)
cf03fd63 2427Like -pedantic but issue them as errors
d185d268 2428
d9d16a19
JM
2429pg
2430Driver
2431
603349bf
JM
2432pipe
2433Driver Var(use_pipes)
2434
2435print-file-name=
2436Driver JoinedOrMissing Var(print_file_name)
2437
2438print-libgcc-file-name
2439Driver
2440
2441print-multi-directory
2442Driver Var(print_multi_directory)
2443
2444print-multi-lib
2445Driver Var(print_multi_lib)
2446
2447print-multi-os-directory
2448Driver Var(print_multi_os_directory)
e0cdc09f
MK
2449
2450print-multiarch
2451Driver Var(print_multiarch)
603349bf
JM
2452
2453print-prog-name=
2454Driver JoinedOrMissing Var(print_prog_name)
2455
2456print-search-dirs
2457Driver Var(print_search_dirs)
2458
2459print-sysroot
2460Driver Var(print_sysroot)
2461
2462print-sysroot-headers-suffix
2463Driver Var(print_sysroot_headers_suffix)
2464
d7b42618 2465quiet
603349bf 2466Common Var(quiet_flag) RejectDriver
cf03fd63 2467Do not display functions compiled or elapsed time
d7b42618 2468
dd9f93dc
JM
2469r
2470Driver
2471
2472s
2473Driver
2474
603349bf
JM
2475save-temps
2476Driver
2477
2478save-temps=
2479Driver Joined
2480
dd9f93dc
JM
2481t
2482Driver
2483
603349bf
JM
2484time
2485Driver Var(report_times)
2486
2487time=
2488Driver JoinedOrMissing
2489
e200444e
JM
2490u
2491Driver Joined Separate
2492
5642f5d5
JM
2493undef
2494Driver
2495; C option, but driver must not handle as "-u ndef".
2496
603349bf 2497v
d5478783
JM
2498Common Driver Var(verbose_flag)
2499Enable verbose output
603349bf 2500
d185d268 2501version
603349bf 2502Common Var(version_flag) RejectDriver
cf03fd63 2503Display the compiler's version
d185d268
NB
2504
2505w
50431bc4 2506Common Var(inhibit_warnings)
cf03fd63 2507Suppress warnings
d185d268 2508
603349bf
JM
2509wrapper
2510Driver Separate Var(wrapper_string)
2511
2512x
2513Driver Joined Separate
2514
528dc603 2515shared
5460e1fc 2516Driver RejectNegative Negative(pie)
528dc603
L
2517Create a shared library
2518
603349bf
JM
2519shared-libgcc
2520Driver
2521
2522specs
5de8299c 2523Driver Separate Alias(specs=)
603349bf
JM
2524
2525specs=
2526Driver Joined
2527
d9d16a19
JM
2528static
2529Driver
2530
603349bf
JM
2531static-libgcc
2532Driver
2533
2534static-libgfortran
2535Driver
2536; Documented for Fortran, but always accepted by driver.
2537
2538static-libstdc++
2539Driver
2540
7a938933
ILT
2541static-libgo
2542Driver
2543; Documented for Go, but always accepted by driver.
2544
7e8d1b2d
L
2545static-libasan
2546Driver
2547
32b4b7f5
DV
2548static-libtsan
2549Driver
2550
e200444e
JM
2551symbolic
2552Driver
2553
528dc603 2554pie
5460e1fc 2555Driver RejectNegative Negative(shared)
528dc603
L
2556Create a position independent executable
2557
6d721f67
JM
2558z
2559Driver Joined Separate
2560
d7b42618 2561; This comment is to ensure we retain the blank line above.
This page took 2.694923 seconds and 5 git commands to generate.