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