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