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