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