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