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