]> gcc.gnu.org Git - gcc.git/blame - gcc/common.opt
gimple.c (iterative_hash_canonical_type): Skip non-FIELD_DECLs.
[gcc.git] / gcc / common.opt
CommitLineData
d7b42618 1; Options for the language- and target-independent parts of the compiler.
50431bc4 2
5e46b0c6 3; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
28a08168 4; Free Software Foundation, Inc.
d7b42618
NB
5;
6; This file is part of GCC.
7;
8; GCC is free software; you can redistribute it and/or modify it under
9; the terms of the GNU General Public License as published by the Free
9dcd6f09 10; Software Foundation; either version 3, or (at your option) any later
d7b42618 11; version.
c22cacf3 12;
d7b42618
NB
13; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14; WARRANTY; without even the implied warranty of MERCHANTABILITY or
15; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16; for more details.
c22cacf3 17;
d7b42618 18; You should have received a copy of the GNU General Public License
9dcd6f09
NC
19; along with GCC; see the file COPYING3. If not see
20; <http://www.gnu.org/licenses/>.
d7b42618 21
71733172 22; See the GCC internals manual (options.texi) for a description of this file's format.
d7b42618
NB
23
24; Please try to keep this file in ASCII collating order.
25
e90afde6
JM
26Variable
27int target_flags
28
46625112
JM
29Variable
30int optimize
31
32Variable
33int optimize_size
34
0a8134ca
JM
35; Not used directly to control optimizations, only to save -Ofast
36; setting for "optimize" attributes.
37Variable
38int optimize_fast
39
a75bfaa6
JM
40; 0 means straightforward implementation of complex divide acceptable.
41; 1 means wide ranges of inputs must work for complex divide.
42; 2 means C99-like requirements for complex multiply and divide.
43Variable
44int flag_complex_method = 1
45
46; Nonzero if subexpressions must be evaluated from left-to-right.
47Variable
48int flag_evaluation_order = 0
49
a75bfaa6
JM
50; Language specific warning pass for unused results.
51Variable
52bool flag_warn_unused_result = false
53
48476d13
JM
54Variable
55int *param_values
56
d5478783
JM
57; Nonzero if we should write GIMPLE bytecode for link-time optimization.
58Variable
59int flag_generate_lto
60
61; True to warn about any objects definitions whose size is larger
62; than N bytes. Also want about function definitions whose returned
63; values are larger than N bytes, where N is 'larger_than_size'.
64Variable
65bool warn_larger_than
66
67Variable
68HOST_WIDE_INT larger_than_size
69
70; True to warn about any function whose frame size is larger
71; than N bytes.
72Variable
73bool warn_frame_larger_than
74
75Variable
76HOST_WIDE_INT frame_larger_than_size
77
78; Nonzero means we should be saving declaration info into a .X file.
79Variable
80int flag_gen_aux_info = 0
81
82; Nonzero if we are compiling code for a shared library, zero for
83; executable.
84Variable
85int flag_shlib
86
6a1f6c9c
JM
87; These two are really VEC(char_p,heap) *.
88
89Variable
90void *flag_instrument_functions_exclude_functions
91
92Variable
93void *flag_instrument_functions_exclude_files
94
69ccdddb
JM
95; Generic structs (e.g. templates not explicitly specialized)
96; may not have a compilation unit associated with them, and so
97; may need to be treated differently from ordinary structs.
98;
99; Structs only handled by reference (indirectly), will also usually
100; not need as much debugging information.
101
102Variable
103enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
104
105Variable
106enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
107
0576d21f
JM
108; True if we should exit after parsing options.
109Variable
110bool exit_after_options
111
112; Type(s) of debugging information we are producing (if any). See
113; flag-types.h for the definitions of the different possible types of
114; debugging information.
115Variable
116enum debug_info_type write_symbols = NO_DEBUG
117
118; Level of debugging information we are producing. See flag-types.h
119; for the definitions of the different possible levels.
120Variable
121enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
122
123; Nonzero means use GNU-only extensions in the generated symbolic
124; debugging information. Currently, this only has an effect when
125; write_symbols is set to DBX_DEBUG, XCOFF_DEBUG, or DWARF_DEBUG.
126Variable
127bool use_gnu_debug_info_extensions
128
299404a1
JM
129; Original value of maximum field alignment in bytes, specified via
130; -fpack-struct=<value>.
131Variable
132unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
133
7cd23050
JM
134Variable
135enum vect_verbosity_levels user_vect_verbosity_level = MAX_VERBOSITY_LEVEL
136
5e471ea6
JM
137; Type of stack check.
138Variable
139enum stack_check_type flag_stack_check = NO_STACK_CHECK
140
299404a1
JM
141; -dA causes debug commentary information to be produced in
142; the generated assembly code (to make it more readable). This option
143; is generally only of use to those who actually need to read the
144; generated assembly code (perhaps while debugging the compiler itself).
145; Currently, this switch is only used by dwarf2out.c; however, it is intended
146; to be a catchall for printing debug information in the assembler file.
147Variable
148int flag_debug_asm
149
150; -dP causes the rtl to be emitted as a comment in assembly.
151Variable
152int flag_dump_rtl_in_asm
153
154; Whether -da was passed (used only in handle_common_deferred_options).
155Variable
156bool flag_dump_all_passed
157
158; Other flags saying which kinds of debugging dump have been requested.
159
160Variable
161int rtl_dump_and_exit
162
163Variable
164int flag_print_asm_name
165
166Variable
167enum graph_dump_types graph_dump_format = no_graph
168
a803773f
JM
169; Name of top-level original source file (what was input to cpp).
170; This comes from the #-command at the beginning of the actual input.
171; If there isn't any there, then this is the cc1 input file name.
172Variable
173const char *main_input_filename
174
175; Pointer to base name in main_input_filename, with directories and a
176; single final extension removed, and the length of this base
177; name.
178
179Variable
180const char *main_input_basename
181
182Variable
183int main_input_baselength
184
299404a1
JM
185; Which options have been printed by --help.
186Variable
187char *help_printed
188
e6d4b984
JM
189; Which enums have been printed by --help. 0 = not printed, no
190; relevant options seen, 1 = relevant option seen, not yet printed, 2
191; = printed.
192Variable
193char *help_enum_printed
194
299404a1
JM
195; The number of columns for --help output.
196Variable
197unsigned int help_columns
198
199; Whether this options structure has been through finish_options
200Variable
201bool flag_opts_finished
202
603349bf
JM
203###
204Driver
205
e200444e
JM
206-assemble
207Driver Alias(S)
208
209-compile
210Driver Alias(c)
211
212-coverage
213Driver Alias(coverage)
214
215-debug
216Common Alias(g)
217
218-dump
219Common Separate Alias(d)
220
221-dump=
222Common Joined Alias(d)
223
224-dumpbase
225Common Separate Alias(dumpbase)
226
227-dumpdir
228Common Separate Alias(dumpdir)
229
230-entry
231Driver Separate Alias(e)
232
233-entry=
234Driver Joined Alias(e)
235
236-extra-warnings
237Common Warning Alias(Wextra)
238
239-for-assembler
240Driver Separate Alias(Xassembler)
241
242-for-assembler=
243Driver JoinedOrMissing Alias(Xassembler)
244
245-for-linker
246Driver Separate Alias(Xlinker)
247
248-for-linker=
249Driver JoinedOrMissing Alias(Xlinker)
250
251-force-link
252Driver Separate Alias(u)
253
254-force-link=
255Driver Joined Alias(u)
256
d185d268 257-help
e200444e 258Common Driver Var(help_flag)
cf03fd63 259Display this information
d185d268 260
c662432e 261-help=
603349bf 262Common Driver Report Joined
c662432e 263--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
903caebf 264
e200444e
JM
265-language
266Driver Separate Alias(x)
267
268-language=
269Driver Joined Alias(x)
270
271-library-directory
272Driver Separate Alias(L)
273
274-library-directory=
275Driver Joined Alias(L)
276
277-no-canonical-prefixes
278Driver Alias(no-canonical-prefixes)
279
280-no-standard-libraries
281Driver Alias(nostdlib)
282
283-no-warnings
284Common Alias(w)
285
286-optimize
287Common Alias(O)
288
289-output
290Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
291
292-output=
293Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
294
295-pass-exit-codes
296Driver Alias(pass-exit-codes)
297
298-pedantic
299Common Alias(pedantic)
300
301-pedantic-errors
302Common Alias(pedantic-errors)
303
304-pie
305Common Alias(pie)
306
307-pipe
308Driver Alias(pipe)
309
310-prefix
311Driver Separate Alias(B)
312
313-prefix=
314Driver JoinedOrMissing Alias(B)
315
316-preprocess
317Driver Alias(E)
318
319-print-file-name
320Driver Separate Alias(print-file-name=)
321
322-print-file-name=
323Driver JoinedOrMissing Alias(print-file-name=)
324
325-print-libgcc-file-name
326Driver Alias(print-libgcc-file-name)
327
328-print-multi-directory
329Driver Alias(print-multi-directory)
330
331-print-multi-lib
332Driver Alias(print-multi-lib)
333
334-print-multi-os-directory
335Driver Alias(print-multi-os-directory)
336
337-print-prog-name
338Driver Separate Alias(print-prog-name=)
339
340-print-prog-name=
341Driver JoinedOrMissing Alias(print-prog-name=)
342
343-print-search-dirs
344Driver Alias(print-search-dirs)
345
346-print-sysroot
347Driver Alias(print-sysroot)
348
349-print-sysroot-headers-suffix
350Driver Alias(print-sysroot-headers-suffix)
351
352-profile
353Common Alias(p)
354
355-save-temps
356Driver Alias(save-temps)
357
358-shared
359Common Alias(shared)
360
361-specs
362Driver Separate Alias(specs=)
363
364-specs=
365Driver Joined Alias(specs=)
366
367-static
368Driver Alias(static)
369
370-symbolic
371Driver Alias(symbolic)
372
d185d268 373-target-help
603349bf 374Common Driver
c662432e
NC
375Alias for --help=target
376
e200444e
JM
377-time
378Driver Alias(time)
379
380-verbose
381Driver Alias(v)
382
383;; The driver used to convert options such as --help into forms such
384;; as -fhelp; the following four entries are for compatibility with
385;; any direct uses of those (undocumented) -f forms
c662432e 386fhelp
e200444e 387Common Driver Alias(-help)
c662432e
NC
388
389fhelp=
e200444e 390Common Driver Joined Alias(-help=)
c662432e
NC
391
392ftarget-help
e200444e 393Common Driver Alias(-target-help)
c662432e 394
41fd0f9b 395fversion
e200444e 396Common Driver Alias(-version)
41fd0f9b 397
c662432e
NC
398-param
399Common Separate
400--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
d185d268 401
e200444e
JM
402-param=
403Common Joined Alias(-param)
404
405-sysroot
406Driver Separate Alias(-sysroot=)
407
603349bf
JM
408-sysroot=
409Driver JoinedOrMissing
410
d185d268 411-version
603349bf
JM
412Common Driver
413
414B
415Driver Joined Separate
416
417E
418Driver
d185d268 419
d9d16a19
JM
420L
421Driver Joined Separate
422
dd9f93dc
JM
423N
424Driver
425
903caebf 426O
ab442df7 427Common JoinedOrMissing Optimization
cf03fd63 428-O<number> Set optimization level to <number>
903caebf
NB
429
430Os
ab442df7 431Common Optimization
cf03fd63 432Optimize for space rather than speed
903caebf 433
be6d3f0e
RG
434Ofast
435Common Optimization
436Optimize for speed disregarding exact standards compliance
437
dd9f93dc
JM
438Q
439Driver
440
441Qn
442Driver Negative(Qy)
443
444Qy
445Driver Negative(Qn)
446
6d721f67
JM
447R
448Driver Joined Separate
449
603349bf
JM
450S
451Driver
452
6d721f67
JM
453T
454Driver Joined Separate
455
456Tbss
457Driver Separate
458
e69d7376
JM
459Tbss=
460Driver Joined
461
6d721f67
JM
462Tdata
463Driver Separate
464
e69d7376
JM
465Tdata=
466Driver Joined
467
6d721f67
JM
468Ttext
469Driver Separate
470
e69d7376
JM
471Ttext=
472Driver Joined
473
903caebf 474W
5de8299c 475Common RejectNegative Warning Alias(Wextra)
28786366 476This switch is deprecated; use -Wextra instead
903caebf 477
603349bf
JM
478Wa,
479Driver JoinedOrMissing
480
481Wl,
482Driver JoinedOrMissing
483
484Wp,
485Driver JoinedOrMissing
486
e01cc6dc 487Waggregate-return
c662432e 488Common Var(warn_aggregate_return) Warning
28786366 489Warn about returning structures, unions or arrays
e01cc6dc 490
590b1f2d 491Warray-bounds
21af5cdf 492Common Var(warn_array_bounds) Warning
590b1f2d
DM
493Warn if an array is accessed out of bounds
494
5c498b10 495Wattributes
c662432e 496Common Var(warn_attributes) Init(1) Warning
5c498b10
DD
497Warn about inappropriate attribute usage
498
e01cc6dc 499Wcast-align
c662432e 500Common Var(warn_cast_align) Warning
28786366 501Warn about pointer casts which increase alignment
e01cc6dc 502
87cf0651
SB
503Wcpp
504Common Var(warn_cpp) Init(1) Warning
505Warn when a #warning directive is encountered
506
e01cc6dc 507Wdeprecated-declarations
c662432e 508Common Var(warn_deprecated_decl) Init(1) Warning
28786366 509Warn about uses of __attribute__((deprecated)) declarations
e01cc6dc
NB
510
511Wdisabled-optimization
c662432e 512Common Var(warn_disabled_optimization) Warning
28786366 513Warn when an optimization pass is disabled
e01cc6dc
NB
514
515Werror
50431bc4 516Common Var(warnings_are_errors)
28786366 517Treat all warnings as errors
e01cc6dc 518
79cf5994
DD
519Werror=
520Common Joined
521Treat specified warning as error
522
903caebf 523Wextra
62a67c94 524Common Var(extra_warnings) Warning
cf03fd63 525Print extra (possibly unwanted) warnings
903caebf 526
c65a01af 527Wfatal-errors
50431bc4 528Common Var(flag_fatal_errors)
c65a01af
RG
529Exit on the first error occurred
530
a214518f
SP
531Wframe-larger-than=
532Common RejectNegative Joined UInteger
f94e1d66 533-Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
a214518f 534
e01cc6dc 535Winline
c662432e 536Common Var(warn_inline) Warning
28786366 537Warn when an inlined function cannot be inlined
e01cc6dc
NB
538
539Wlarger-than-
5de8299c 540Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
e8fc888d
MLI
541
542Wlarger-than=
543Common RejectNegative Joined UInteger Warning
544-Wlarger-than=<number> Warn if an object is larger than <number> bytes
e01cc6dc 545
f9cc1a70 546Wunsafe-loop-optimizations
c662432e 547Common Var(warn_unsafe_loop_optimizations) Warning
f9cc1a70
PB
548Warn if the loop cannot be optimized due to nontrivial assumptions.
549
e01cc6dc 550Wmissing-noreturn
c662432e 551Common Var(warn_missing_noreturn) Warning
28786366 552Warn about functions which might be candidates for __attribute__((noreturn))
e01cc6dc 553
7621f5d5
VR
554Wmudflap
555Common Var(warn_mudflap) Init(1) Warning
556Warn about constructs not instrumented by -fmudflap
557
71834ad3 558Woverflow
c662432e 559Common Var(warn_overflow) Init(1) Warning
71834ad3
RS
560Warn about overflow in arithmetic expressions
561
e01cc6dc 562Wpacked
c662432e 563Common Var(warn_packed) Warning
28786366 564Warn when the packed attribute has no effect on struct layout
e01cc6dc
NB
565
566Wpadded
c662432e 567Common Var(warn_padded) Warning
28786366 568Warn when padding is required to align structure members
e01cc6dc
NB
569
570Wshadow
c662432e 571Common Var(warn_shadow) Warning
28786366 572Warn when one local variable shadows another
e01cc6dc 573
7d69de61 574Wstack-protector
c662432e 575Common Var(warn_stack_protect) Warning
7d69de61
RH
576Warn when not issuing stack smashing protection for some reason
577
e01cc6dc 578Wstrict-aliasing
c662432e 579Common Warning
28786366 580Warn about code which might break strict aliasing rules
e01cc6dc 581
5399d643 582Wstrict-aliasing=
fcfbd84e 583Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
5399d643
JW
584Warn about code which might break strict aliasing rules
585
6ac01510 586Wstrict-overflow
21af5cdf 587Common Warning
6ac01510
ILT
588Warn about optimizations that assume that signed overflow is undefined
589
590Wstrict-overflow=
fcfbd84e 591Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
6ac01510
ILT
592Warn about optimizations that assume that signed overflow is undefined
593
5dc16b19
MLI
594Wsuggest-attribute=const
595Common Var(warn_suggest_attribute_const) Warning
596Warn about functions which might be candidates for __attribute__((const))
597
598Wsuggest-attribute=pure
599Common Var(warn_suggest_attribute_pure) Warning
600Warn about functions which might be candidates for __attribute__((pure))
601
7ea6b6cf
JH
602Wsuggest-attribute=noreturn
603Common Var(warn_suggest_attribute_noreturn) Warning
604Warn about functions which might be candidates for __attribute__((noreturn))
605
e01cc6dc 606Wswitch
c662432e 607Common Var(warn_switch) Warning
28786366 608Warn about enumerated switches, with no default, missing a case
e01cc6dc
NB
609
610Wswitch-default
c662432e 611Common Var(warn_switch_default) Warning
28786366 612Warn about enumerated switches missing a \"default:\" statement
e01cc6dc
NB
613
614Wswitch-enum
c662432e 615Common Var(warn_switch_enum) Warning
28786366 616Warn about all enumerated switches missing a specific case
e01cc6dc
NB
617
618Wsystem-headers
c662432e 619Common Var(warn_system_headers) Warning
f3fdaec4 620Do not suppress warnings from system headers
e01cc6dc 621
8ffadef9
MG
622Wtrampolines
623Common Var(warn_trampolines) Warning
624Warn whenever a trampoline is generated
625
faebccf9
DN
626Wtype-limits
627Common Var(warn_type_limits) Init(-1) Warning
628Warn if a comparison is always true or always false due to the limited range of the data type
629
e01cc6dc 630Wuninitialized
62a67c94 631Common Var(warn_uninitialized) Init(-1) Warning
28786366 632Warn about uninitialized automatic variables
e01cc6dc 633
2f964ad6
XDL
634Wmaybe-uninitialized
635Common Var(warn_maybe_uninitialized) Warning
636Warn about maybe uninitialized automatic variables
637
e01cc6dc 638Wunreachable-code
2d2bd949 639Common Ignore
bc3c12a2 640Does nothing. Preserved for backward compatibility.
e01cc6dc 641
903caebf 642Wunused
e73f7547 643Common Var(warn_unused) Init(0) Warning
cf03fd63 644Enable all -Wunused- warnings
903caebf 645
ebfbbdc5
JJ
646Wunused-but-set-parameter
647Common Var(warn_unused_but_set_parameter) Init(-1) Warning
648Warn when a function parameter is only set, otherwise unused
649
650Wunused-but-set-variable
651Common Var(warn_unused_but_set_variable) Init(-1) Warning
652Warn when a variable is only set, otherwise unused
653
e01cc6dc 654Wunused-function
e73f7547 655Common Var(warn_unused_function) Init(-1) Warning
28786366 656Warn when a function is unused
e01cc6dc
NB
657
658Wunused-label
e73f7547 659Common Var(warn_unused_label) Init(-1) Warning
28786366 660Warn when a label is unused
e01cc6dc
NB
661
662Wunused-parameter
e73f7547 663Common Var(warn_unused_parameter) Init(-1) Warning
28786366 664Warn when a function parameter is unused
e01cc6dc
NB
665
666Wunused-value
e73f7547 667Common Var(warn_unused_value) Init(-1) Warning
28786366 668Warn when an expression value is unused
e01cc6dc
NB
669
670Wunused-variable
e73f7547 671Common Var(warn_unused_variable) Init(-1) Warning
28786366 672Warn when a variable is unused
e01cc6dc 673
16c1c158 674Wcoverage-mismatch
650cfcab
NV
675Common Var(warn_coverage_mismatch) Init(1) Warning
676Warn in case profiles in -fprofile-use do not match
16c1c158 677
603349bf
JM
678Xassembler
679Driver Separate
680
681Xlinker
682Driver Separate
683
684Xpreprocessor
685Driver Separate
686
dd9f93dc
JM
687Z
688Driver
689
d185d268 690aux-info
d5478783 691Common Separate Var(aux_info_file_name)
cf03fd63 692-aux-info <file> Emit declaration information into <file>
d185d268
NB
693
694aux-info=
5de8299c 695Common Joined Alias(aux-info)
d185d268
NB
696
697auxbase
d5478783 698Common Separate RejectDriver Var(aux_base_name)
d185d268
NB
699
700auxbase-strip
603349bf
JM
701Common Separate RejectDriver
702
e200444e
JM
703coverage
704Driver
705
603349bf
JM
706c
707Driver
d185d268
NB
708
709d
710Common Joined
cf03fd63 711-d<letters> Enable dumps from specific passes of the compiler
d185d268
NB
712
713dumpbase
d5478783 714Common Separate Var(dump_base_name)
cf03fd63 715-dumpbase <file> Set the file basename to be used for dumps
d185d268 716
d7fb0a6d 717dumpdir
d5478783 718Common Separate Var(dump_dir_name)
316fc112 719-dumpdir <dir> Set the directory name to be used for dumps
d7fb0a6d 720
603349bf
JM
721dumpmachine
722Driver
723
724dumpspecs
725Driver
726
727dumpversion
728Driver
729
e200444e
JM
730e
731Driver Joined Separate
732
fa381cb2
JM
733; This option has historically been passed down to the linker by an
734; accident of a %{e*} spec, so ensure it continues to be passed down
735; as a single option. The supported option for this purpose is
736; -rdynamic. See PR 47390.
737export-dynamic
738Driver Undocumented
739
31b66477
KC
740; The version of the C++ ABI in use. The following values are allowed:
741;
742; 0: The version of the ABI believed most conformant with the C++ ABI
743; specification. This ABI may change as bugs are discovered and fixed.
744; Therefore, 0 will not necessarily indicate the same ABI in different
745; versions of G++.
746;
747; 1: The version of the ABI first used in G++ 3.2.
748;
abfe01ce
JM
749; 2: The version of the ABI first used in G++ 3.4 (and current default).
750;
751; 3: The version of the ABI that fixes the missing underscore
752; in template non-type arguments of pointer type.
753;
754; 4: The version of the ABI that introduces unambiguous mangling of
55af847f 755; vector types. First selectable in G++ 4.5.
99a8d35b 756;
67e18edb 757; 5: The version of the ABI that ignores attribute const/noreturn
55af847f 758; in function pointer mangling, and corrects mangling of decltype and
67e18edb 759; function parameters used in other parameters and the return type.
55af847f 760; First selectable in G++ 4.6.
67e18edb 761;
967444bb
JM
762; 6: The version of the ABI that doesn't promote scoped enums to int.
763; First selectable in G++ 4.7.
764;
31b66477
KC
765; Additional positive integers will be assigned as new versions of
766; the ABI become the default version of the ABI.
57782ad8 767fabi-version=
fcfbd84e 768Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
57782ad8 769
6ff3a151 770falign-functions
ab442df7 771Common Report Var(align_functions,0) Optimization UInteger
f3fdaec4 772Align the start of functions
6ff3a151 773
058de654 774falign-functions=
d5478783 775Common RejectNegative Joined UInteger Var(align_functions)
058de654 776
6ff3a151 777falign-jumps
ab442df7 778Common Report Var(align_jumps,0) Optimization UInteger
f3fdaec4 779Align labels which are only reached by jumping
6ff3a151 780
058de654 781falign-jumps=
d5478783 782Common RejectNegative Joined UInteger Var(align_jumps)
058de654 783
6ff3a151 784falign-labels
ab442df7 785Common Report Var(align_labels,0) Optimization UInteger
f3fdaec4 786Align all labels
6ff3a151 787
058de654 788falign-labels=
d5478783 789Common RejectNegative Joined UInteger Var(align_labels)
058de654 790
6ff3a151 791falign-loops
3020190e 792Common Report Var(align_loops,0) Optimization UInteger
f3fdaec4 793Align the start of loops
6ff3a151 794
058de654 795falign-loops=
d5478783 796Common RejectNegative Joined UInteger Var(align_loops)
058de654 797
6ff3a151 798fargument-alias
2d2bd949 799Common Ignore
0d3c82d6 800Does nothing. Preserved for backward compatibility.
6ff3a151
NB
801
802fargument-noalias
2d2bd949 803Common Ignore
0d3c82d6 804Does nothing. Preserved for backward compatibility.
6ff3a151
NB
805
806fargument-noalias-global
2d2bd949 807Common Ignore
0d3c82d6 808Does nothing. Preserved for backward compatibility.
6ff3a151 809
0698a1d2 810fargument-noalias-anything
2d2bd949 811Common Ignore
0d3c82d6 812Does nothing. Preserved for backward compatibility.
0698a1d2 813
6ff3a151 814fasynchronous-unwind-tables
c662432e 815Common Report Var(flag_asynchronous_unwind_tables) Optimization
f3fdaec4 816Generate unwind tables that are exact at each instruction boundary
6ff3a151 817
6fb5fa3c
DB
818fauto-inc-dec
819Common Report Var(flag_auto_inc_dec) Init(1)
820Generate auto-inc/dec instructions
821
31b66477
KC
822; -fcheck-bounds causes gcc to generate array bounds checks.
823; For C, C++ and ObjC: defaults off.
824; For Java: defaults to on.
825; For Fortran: defaults to off.
6ff3a151 826fbounds-check
50431bc4 827Common Report Var(flag_bounds_check)
f3fdaec4 828Generate code to check bounds before indexing arrays
6ff3a151
NB
829
830fbranch-count-reg
c662432e 831Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
f3fdaec4 832Replace add, compare, branch with branch on count register
6ff3a151
NB
833
834fbranch-probabilities
c662432e 835Common Report Var(flag_branch_probabilities) Optimization
f3fdaec4 836Use profiling information for branch probabilities
6ff3a151 837
de32c0cb 838fbranch-target-load-optimize
c662432e 839Common Report Var(flag_branch_target_load_optimize) Optimization
f3fdaec4 840Perform branch target load optimization before prologue / epilogue threading
de32c0cb
NB
841
842fbranch-target-load-optimize2
c662432e 843Common Report Var(flag_branch_target_load_optimize2) Optimization
f3fdaec4 844Perform branch target load optimization after prologue / epilogue threading
de32c0cb 845
1194fc79 846fbtr-bb-exclusive
c662432e 847Common Report Var(flag_btr_bb_exclusive) Optimization
1194fc79
R
848Restrict target load migration not to re-use registers in any basic block
849
058de654 850fcall-saved-
21bf1558 851Common Joined RejectNegative Var(common_deferred_options) Defer
cf03fd63 852-fcall-saved-<register> Mark <register> as being preserved across functions
058de654
NB
853
854fcall-used-
21bf1558 855Common Joined RejectNegative Var(common_deferred_options) Defer
cf03fd63 856-fcall-used-<register> Mark <register> as being corrupted by function calls
058de654 857
31b66477
KC
858; Nonzero for -fcaller-saves: allocate values in regs that need to
859; be saved across function calls, if that produces overall better code.
860; Optional now, so people can test it.
de32c0cb 861fcaller-saves
c662432e 862Common Report Var(flag_caller_saves) Optimization
f3fdaec4 863Save registers around function calls
de32c0cb 864
3d8864c0
SP
865fcheck-data-deps
866Common Report Var(flag_check_data_deps)
867Compare the results of several data dependence analyzers.
868
ccaeeafe
NC
869fcombine-stack-adjustments
870Common Report Var(flag_combine_stack_adjustments) Optimization
871Looks for opportunities to reduce stack adjustments and stack references.
872
6ff3a151 873fcommon
c662432e 874Common Report Var(flag_no_common,0) Optimization
f3fdaec4 875Do not put uninitialized globals in the common section
6ff3a151 876
603349bf
JM
877fcompare-debug
878Driver
879; Converted by the driver to -fcompare-debug= options.
880
2153915d 881fcompare-debug=
603349bf 882Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
f94e1d66 883-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
2153915d
AO
884
885fcompare-debug-second
5e471ea6 886Common Driver RejectNegative Var(flag_compare_debug)
2153915d
AO
887Run only the second compilation of -fcompare-debug
888
e692f276
RH
889fcompare-elim
890Common Report Var(flag_compare_elim_after_reload) Optimization
891Perform comparison elimination after register allocation has finished
892
b5b8b0ac
AO
893fconserve-stack
894Common Var(flag_conserve_stack) Optimization
895Do not perform optimizations increasing noticeably stack usage
896
6ff3a151 897fcprop-registers
c662432e 898Common Report Var(flag_cprop_registers) Optimization
f3fdaec4 899Perform a register copy-propagation optimization pass
6ff3a151 900
de32c0cb 901fcrossjumping
c662432e 902Common Report Var(flag_crossjumping) Optimization
f3fdaec4 903Perform cross-jumping optimization
de32c0cb
NB
904
905fcse-follow-jumps
c662432e 906Common Report Var(flag_cse_follow_jumps) Optimization
f3fdaec4 907When running CSE, follow jumps to their targets
de32c0cb
NB
908
909fcse-skip-blocks
2d2bd949 910Common Ignore
5f39ad47 911Does nothing. Preserved for backward compatibility.
de32c0cb 912
c7463669 913fcx-limited-range
5e46b0c6 914Common Report Var(flag_cx_limited_range) Optimization SetByCombined
c7463669
RH
915Omit range reduction step when performing complex division
916
35085f76
JB
917fcx-fortran-rules
918Common Report Var(flag_cx_fortran_rules) Optimization
919Complex multiplication and division follow Fortran rules
920
6ff3a151 921fdata-sections
c662432e 922Common Report Var(flag_data_sections) Optimization
f3fdaec4 923Place data items into their own section
6ff3a151 924
0a090f42 925fdbg-cnt-list
299404a1 926Common Report Var(common_deferred_options) Defer
0a090f42
SP
927List all available debugging counters with their limits and counts.
928
6fb5fa3c 929fdbg-cnt=
299404a1 930Common RejectNegative Joined Var(common_deferred_options) Defer
f94e1d66 931-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
6fb5fa3c 932
c8aea42c 933fdebug-prefix-map=
299404a1 934Common Joined RejectNegative Var(common_deferred_options) Defer
c8aea42c
PB
935Map one directory name to another in debug information
936
76f9db36
JJ
937fdebug-types-section
938Common Report Var(flag_debug_types_section) Init(1)
939Output .debug_types section when using DWARF v4 debuginfo.
940
31b66477
KC
941; Nonzero for -fdefer-pop: don't pop args after each function call
942; instead save them up to pop many calls' args with one insns.
de32c0cb 943fdefer-pop
c662432e 944Common Report Var(flag_defer_pop) Optimization
f3fdaec4 945Defer popping functions args from stack until later
de32c0cb
NB
946
947fdelayed-branch
c662432e 948Common Report Var(flag_delayed_branch) Optimization
f3fdaec4 949Attempt to fill delay slots of branch instructions
de32c0cb
NB
950
951fdelete-null-pointer-checks
1ad2f450 952Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
f3fdaec4 953Delete useless null pointer checks
de32c0cb 954
05842ff5
MJ
955fdevirtualize
956Common Report Var(flag_devirtualize) Optimization
957Try to convert virtual calls to direct ones.
958
de32c0cb 959fdiagnostics-show-location=
e6d4b984 960Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
cf03fd63 961-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
de32c0cb 962
e6d4b984
JM
963; Required for these enum values.
964SourceInclude
965pretty-print.h
966
967Enum
968Name(diagnostic_prefixing_rule) Type(int)
969
970EnumValue
971Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
972
973EnumValue
974Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
975
ccf08a6e 976fdiagnostics-show-option
c7d0de89 977Common Var(flag_diagnostics_show_option) Init(1)
c85ce869 978Amend appropriate diagnostic messages with the command line option that controls them
ccf08a6e 979
6de9cd9a 980fdump-
21bf1558 981Common Joined RejectNegative Var(common_deferred_options) Defer
6de9cd9a
DN
982-fdump-<type> Dump various compiler internals to a file
983
d1583032
JM
984fdump-final-insns
985Driver RejectNegative
986
2153915d
AO
987fdump-final-insns=
988Common RejectNegative Joined Var(flag_dump_final_insns)
989-fdump-final-insns=filename Dump to filename the insns at the end of translation
990
c6a13190
ILT
991fdump-go-spec=
992Common RejectNegative Joined Var(flag_dump_go_spec)
993-fdump-go-spec=filename Write all declarations to file as Go code
994
24a7799e
R
995fdump-noaddr
996Common Report Var(flag_dump_noaddr)
997Suppress output of addresses in debugging dumps
998
6ff3a151 999fdump-unnumbered
e90afde6 1000Common Report Var(flag_dump_unnumbered)
24a7799e 1001Suppress output of instruction numbers, line number notes and addresses in debugging dumps
6ff3a151 1002
2aa7c49b 1003fdump-unnumbered-links
e90afde6 1004Common Report Var(flag_dump_unnumbered_links)
2aa7c49b
AO
1005Suppress output of previous and next insn numbers in debugging dumps
1006
b5b8b0ac
AO
1007fdwarf2-cfi-asm
1008Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1009Enable CFI tables via GAS assembler directives.
1010
355866de 1011fearly-inlining
c662432e 1012Common Report Var(flag_early_inlining) Init(1) Optimization
355866de
RG
1013Perform early inlining
1014
de32c0cb 1015feliminate-dwarf2-dups
50431bc4 1016Common Report Var(flag_eliminate_dwarf2_dups)
f3fdaec4 1017Perform DWARF2 duplicate elimination
de32c0cb 1018
07ffa034
MJ
1019fipa-sra
1020Common Report Var(flag_ipa_sra) Init(0) Optimization
1021Perform interprocedural reduction of aggregates
1022
6a08f7b3 1023feliminate-unused-debug-symbols
50431bc4 1024Common Report Var(flag_debug_only_used_symbols)
f3fdaec4 1025Perform unused type elimination in debug info
6a08f7b3 1026
de32c0cb 1027feliminate-unused-debug-types
50431bc4 1028Common Report Var(flag_eliminate_unused_debug_types) Init(1)
f3fdaec4 1029Perform unused type elimination in debug info
de32c0cb 1030
e713adf6 1031femit-class-debug-always
eae8e474 1032Common Report Var(flag_emit_class_debug_always) Init(0)
e713adf6
CD
1033Do not suppress C++ class debug information.
1034
6ff3a151 1035fexceptions
c662432e 1036Common Report Var(flag_exceptions) Optimization
f3fdaec4 1037Enable exception handling
6ff3a151 1038
de32c0cb 1039fexpensive-optimizations
c662432e 1040Common Report Var(flag_expensive_optimizations) Optimization
f3fdaec4 1041Perform a number of minor, expensive optimizations
de32c0cb 1042
8ce94e44 1043fexcess-precision=
e6d4b984 1044Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT)
8ce94e44
JM
1045-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
1046
e6d4b984
JM
1047Enum
1048Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1049
1050EnumValue
1051Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1052
1053EnumValue
1054Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1055
058de654
NB
1056ffast-math
1057Common
1058
6ff3a151 1059ffinite-math-only
5e46b0c6 1060Common Report Var(flag_finite_math_only) Optimization SetByCombined
f3fdaec4 1061Assume no NaNs or infinities are generated
6ff3a151 1062
058de654 1063ffixed-
21bf1558 1064Common Joined RejectNegative Var(common_deferred_options) Defer
cf03fd63 1065-ffixed-<register> Mark <register> as being unavailable to the compiler
058de654 1066
de32c0cb 1067ffloat-store
c662432e 1068Common Report Var(flag_float_store) Optimization
31b66477 1069Don't allocate floats and doubles in extended-precision registers
de32c0cb
NB
1070
1071fforce-addr
2d2bd949 1072Common Ignore
3de5e93a 1073Does nothing. Preserved for backward compatibility.
de32c0cb 1074
2ca2b607
SB
1075fforward-propagate
1076Common Report Var(flag_forward_propagate) Optimization
a52b023a
PB
1077Perform a forward propagation pass on RTL
1078
16949072 1079ffp-contract=
e6d4b984 1080Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST)
16949072
RG
1081-ffp-contract=[off|on|fast] Perform floating-point expression contraction.
1082
e6d4b984
JM
1083Enum
1084Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1085
1086EnumValue
1087Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1088
1089; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1090EnumValue
1091Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1092
1093EnumValue
1094Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1095
31b66477
KC
1096; Nonzero means don't put addresses of constant functions in registers.
1097; Used for compiling the Unix kernel, where strange substitutions are
1098; done on the assembly output.
de32c0cb 1099ffunction-cse
50431bc4 1100Common Report Var(flag_no_function_cse,0)
f3fdaec4 1101Allow function addresses to be held in registers
de32c0cb 1102
6ff3a151 1103ffunction-sections
50431bc4 1104Common Report Var(flag_function_sections)
f3fdaec4 1105Place each function into its own section
6ff3a151 1106
de32c0cb 1107fgcse
c662432e 1108Common Report Var(flag_gcse) Optimization
f3fdaec4 1109Perform global common subexpression elimination
de32c0cb
NB
1110
1111fgcse-lm
c662432e 1112Common Report Var(flag_gcse_lm) Init(1) Optimization
f3fdaec4 1113Perform enhanced load motion during global common subexpression elimination
de32c0cb
NB
1114
1115fgcse-sm
c662432e 1116Common Report Var(flag_gcse_sm) Init(0) Optimization
f3fdaec4 1117Perform store motion after global common subexpression elimination
de32c0cb 1118
f5f2e3cd 1119fgcse-las
c662432e 1120Common Report Var(flag_gcse_las) Init(0) Optimization
f9957958
MH
1121Perform redundant load after store elimination in global common subexpression
1122elimination
1123
1124fgcse-after-reload
c662432e 1125Common Report Var(flag_gcse_after_reload) Optimization
f9957958 1126Perform global common subexpression elimination after register allocation
c85ce869 1127has finished
f5f2e3cd 1128
d0a58904 1129; This option is not documented yet as its semantics will change.
f8bf9252
SP
1130fgraphite
1131Common Report Var(flag_graphite)
1132Enable in and out of Graphite representation
1133
204b560f
SP
1134fgraphite-identity
1135Common Report Var(flag_graphite_identity) Optimization
1136Enable Graphite Identity transformation
1137
3cf0e270
SP
1138floop-parallelize-all
1139Common Report Var(flag_loop_parallelize_all) Optimization
204b560f
SP
1140Mark all loops as parallel
1141
f8bf9252
SP
1142floop-strip-mine
1143Common Report Var(flag_loop_strip_mine) Optimization
1144Enable Loop Strip Mining transformation
1145
1146floop-interchange
1147Common Report Var(flag_loop_interchange) Optimization
1148Enable Loop Interchange transformation
1149
1150floop-block
1151Common Report Var(flag_loop_block) Optimization
1152Enable Loop Blocking transformation
1153
98af4c9f
SP
1154floop-flatten
1155Common Report Var(flag_loop_flatten) Optimization
1156Enable Loop Flattening transformation
1157
6a78b724
DD
1158fstrict-volatile-bitfields
1159Common Report Var(flag_strict_volatile_bitfields) Init(-1)
1160Force bitfield accesses to match their type width
1161
6ff3a151 1162fguess-branch-probability
c662432e 1163Common Report Var(flag_guess_branch_prob) Optimization
f3fdaec4 1164Enable guessing of branch probabilities
6ff3a151 1165
31b66477
KC
1166; Nonzero means ignore `#ident' directives. 0 means handle them.
1167; Generate position-independent code for executables if possible
1168; On SVR4 targets, it also controls whether or not to emit a
1169; string identifying the compiler.
6ff3a151 1170fident
50431bc4 1171Common Report Var(flag_no_ident,0)
f3fdaec4 1172Process #ident directives
6ff3a151 1173
de32c0cb 1174fif-conversion
c662432e 1175Common Report Var(flag_if_conversion) Optimization
f3fdaec4 1176Perform conversion of conditional jumps to branchless equivalents
de32c0cb
NB
1177
1178fif-conversion2
c662432e 1179Common Report Var(flag_if_conversion2) Optimization
f3fdaec4 1180Perform conversion of conditional jumps to conditional execution
de32c0cb 1181
384a5197
SP
1182ftree-loop-if-convert
1183Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
1184Convert conditional jumps in innermost loops to branchless equivalents
1185
bd544141
SP
1186ftree-loop-if-convert-stores
1187Common Report Var(flag_tree_loop_if_convert_stores) Optimization
1188Also if-convert conditional jumps containing memory writes
1189
31b66477
KC
1190; -finhibit-size-directive inhibits output of .size for ELF.
1191; This is used only for compiling crtstuff.c,
1192; and it may be extended to other effects
1193; needed for crtstuff.c on other systems.
6ff3a151 1194finhibit-size-directive
50431bc4 1195Common Report Var(flag_inhibit_size_directive)
f3fdaec4 1196Do not generate .size directives
6ff3a151 1197
3e293154
MJ
1198findirect-inlining
1199Common Report Var(flag_indirect_inlining)
1200Perform indirect inlining
1201
31b66477
KC
1202; Nonzero means that functions declared `inline' will be treated
1203; as `static'. Prevents generation of zillions of copies of unused
1204; static inline functions; instead, `inlines' are written out
1205; only when actually used. Used in conjunction with -g. Also
1206; does the right thing with #pragma interface.
de32c0cb 1207finline
e90acd93 1208Common Report Var(flag_no_inline,0) Init(0)
f3fdaec4 1209Pay attention to the \"inline\" keyword
de32c0cb 1210
4d4b8cb9
JH
1211finline-small-functions
1212Common Report Var(flag_inline_small_functions) Optimization
1213Integrate simple functions into their callers when code size is known to not growth
1214
de32c0cb 1215finline-functions
c662432e 1216Common Report Var(flag_inline_functions) Optimization
f3fdaec4 1217Integrate simple functions into their callers
de32c0cb 1218
355866de 1219finline-functions-called-once
c662432e 1220Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
355866de 1221Integrate functions called once into their callers
d63db217 1222
d302c9d6 1223finline-limit-
5de8299c 1224Common RejectNegative Joined Alias(finline-limit=)
d302c9d6
NB
1225
1226finline-limit=
1227Common RejectNegative Joined UInteger
cf03fd63 1228-finline-limit=<number> Limit the size of inlined functions to <number>
d302c9d6 1229
6ff3a151 1230finstrument-functions
50431bc4 1231Common Report Var(flag_instrument_function_entry_exit)
f3fdaec4 1232Instrument function entry and exit with profiling calls
6ff3a151 1233
8d5a7d1f
ILT
1234finstrument-functions-exclude-function-list=
1235Common RejectNegative Joined
1236-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
1237
1238finstrument-functions-exclude-file-list=
1239Common RejectNegative Joined
1240-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
1241
d6e14e8f 1242fipa-cp
c662432e 1243Common Report Var(flag_ipa_cp) Optimization
d6e14e8f
SB
1244Perform Interprocedural constant propagation
1245
5e45130d
JH
1246fipa-cp-clone
1247Common Report Var(flag_ipa_cp_clone) Optimization
1248Perform cloning to make Interprocedural constant propagation stronger
1249
e65bb9be
JH
1250fipa-profile
1251Common Report Var(flag_ipa_profile) Init(0) Optimization
1252Perform interprocedural profile propagation
ea900239 1253
4cf4d6a3 1254fipa-pta
c662432e 1255Common Report Var(flag_ipa_pta) Init(0) Optimization
4cf4d6a3
DB
1256Perform interprocedural points-to analysis
1257
e65bb9be
JH
1258fipa-pure-const
1259Common Report Var(flag_ipa_pure_const) Init(0) Optimization
1260Discover pure and const functions
1261
ea900239 1262fipa-reference
c662432e 1263Common Report Var(flag_ipa_reference) Init(0) Optimization
ea900239
DB
1264Discover readonly and non addressable static variables
1265
43d861a5 1266fipa-matrix-reorg
6ae4be32 1267Common Report Var(flag_ipa_matrix_reorg) Optimization
43d861a5
RL
1268Perform matrix layout flattening and transposing based
1269on profiling information.
1270
e1dc98b2 1271fipa-struct-reorg
b8beb4d1
RG
1272Common Ignore
1273Does nothing. Preserved for backward compatibility.
e1dc98b2 1274
058e97ec 1275fira-algorithm=
e6d4b984 1276Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB)
7db7ed3c
VM
1277-fira-algorithm=[CB|priority] Set the used IRA algorithm
1278
e6d4b984
JM
1279Enum
1280Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1281
1282EnumValue
1283Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1284
1285EnumValue
1286Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1287
7db7ed3c 1288fira-region=
e6d4b984 1289Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_MIXED)
7db7ed3c 1290-fira-region=[one|all|mixed] Set regions for IRA
058e97ec 1291
e6d4b984
JM
1292Enum
1293Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1294
1295EnumValue
1296Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1297
1298EnumValue
1299Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1300
1301EnumValue
1302Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1303
1833192f
VM
1304fira-loop-pressure
1305Common Report Var(flag_ira_loop_pressure)
1306Use IRA based register pressure calculation
1307in RTL loop optimizations.
1308
058e97ec
VM
1309fira-share-save-slots
1310Common Report Var(flag_ira_share_save_slots) Init(1)
1311Share slots for saving different hard registers.
1312
1313fira-share-spill-slots
1314Common Report Var(flag_ira_share_spill_slots) Init(1)
1315Share stack slots for spilled pseudo-registers.
1316
1317fira-verbose=
5498f011 1318Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
f94e1d66 1319-fira-verbose=<number> Control IRA's level of diagnostic messages.
058e97ec 1320
8b11a64c 1321fivopts
c662432e 1322Common Report Var(flag_ivopts) Init(1) Optimization
8b11a64c
ZD
1323Optimize induction variables on trees
1324
82c0180d 1325fjump-tables
c662432e 1326Common Var(flag_jump_tables) Init(1) Optimization
82c0180d
JM
1327Use jump tables for sufficiently large switch statements
1328
de32c0cb 1329fkeep-inline-functions
50431bc4 1330Common Report Var(flag_keep_inline_functions)
f3fdaec4 1331Generate code for functions even if they are fully inlined
de32c0cb
NB
1332
1333fkeep-static-consts
50431bc4 1334Common Report Var(flag_keep_static_consts) Init(1)
f3fdaec4 1335Emit static const variables even if they are not used
de32c0cb 1336
6ff3a151 1337fleading-underscore
50431bc4 1338Common Report Var(flag_leading_underscore) Init(-1)
f3fdaec4 1339Give external symbols a leading underscore
6ff3a151 1340
efa1cdf0 1341floop-optimize
2d2bd949 1342Common Ignore
c0220ea4 1343Does nothing. Preserved for backward compatibility.
efa1cdf0 1344
d7f09764 1345flto
014d92e1 1346Common
d7f09764
DN
1347Enable link-time optimization.
1348
014d92e1
JH
1349flto=
1350Common RejectNegative Joined Var(flag_lto)
1351Link-time optimization with number of parallel jobs or jobserver.
1352
852e4bd2
JH
1353flto-partition=1to1
1354Common Var(flag_lto_partition_1to1)
1355Partition functions and vars at linktime based on object files they originate from
1356
1357flto-partition=balanced
1358Common Var(flag_lto_partition_balanced)
1359Partition functions and vars at linktime into approximately same sized buckets
1360
014d92e1
JH
1361flto-partition=none
1362Common Var(flag_lto_partition_none)
1363Disable partioning and streaming
1364
d7f09764
DN
1365; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1366flto-compression-level=
fcfbd84e 1367Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
f94e1d66 1368-flto-compression-level=<number> Use zlib compression level <number> for IL
d7f09764
DN
1369
1370flto-report
1371Common Report Var(flag_lto_report) Init(0) Optimization
1372Report various link-time optimization statistics
1373
6ff3a151 1374fmath-errno
5e46b0c6 1375Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined
f3fdaec4 1376Set errno after built-in math functions
6ff3a151 1377
3a789837
NF
1378fmax-errors=
1379Common Joined RejectNegative UInteger Var(flag_max_errors)
1380-fmax-errors=<number> Maximum number of errors to report
1381
6ff3a151 1382fmem-report
50431bc4 1383Common Report Var(mem_report)
f3fdaec4 1384Report on permanent memory allocation
6ff3a151 1385
31b66477
KC
1386; This will attempt to merge constant section constants, if 1 only
1387; string constants and constants from constant pool, if 2 also constant
1388; variables.
6ff3a151 1389fmerge-all-constants
c662432e 1390Common Report Var(flag_merge_constants,2) Init(1) Optimization
f3fdaec4 1391Attempt to merge identical constants and constant variables
6ff3a151
NB
1392
1393fmerge-constants
f0036cca 1394Common Report Var(flag_merge_constants,1) Optimization
f3fdaec4 1395Attempt to merge identical constants across compilation units
6ff3a151 1396
28a08168
ILT
1397fmerge-debug-strings
1398Common Report Var(flag_merge_debug_strings) Init(1)
1399Attempt to merge identical debug strings across compilation units
1400
de32c0cb
NB
1401fmessage-length=
1402Common RejectNegative Joined UInteger
cf03fd63 1403-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
de32c0cb 1404
e5626198 1405fmodulo-sched
c662432e 1406Common Report Var(flag_modulo_sched) Optimization
e5626198
AZ
1407Perform SMS based modulo scheduling before the first scheduling pass
1408
517d76fa
VY
1409fmodulo-sched-allow-regmoves
1410Common Report Var(flag_modulo_sched_allow_regmoves)
1411Perform SMS based modulo scheduling with register moves allowed
1412
5e962776 1413fmove-loop-invariants
c662432e 1414Common Report Var(flag_move_loop_invariants) Init(1) Optimization
5e962776
ZD
1415Move loop invariant computations out of loops
1416
6de9cd9a 1417fmudflap
50431bc4 1418Common RejectNegative Report Var(flag_mudflap)
c85ce869 1419Add mudflap bounds-checking instrumentation for single-threaded program
6de9cd9a
DN
1420
1421fmudflapth
f0036cca 1422Common RejectNegative Report Var(flag_mudflap,2)
c85ce869 1423Add mudflap bounds-checking instrumentation for multi-threaded program
6de9cd9a
DN
1424
1425fmudflapir
50431bc4 1426Common RejectNegative Report Var(flag_mudflap_ignore_reads)
c85ce869 1427Ignore read operations when inserting mudflap instrumentation
6de9cd9a 1428
6fb5fa3c 1429fdce
6ae4be32 1430Common Var(flag_dce) Init(1) Optimization
6fb5fa3c
DB
1431Use the RTL dead code elimination pass
1432
1433fdse
6ae4be32 1434Common Var(flag_dse) Init(1) Optimization
6fb5fa3c
DB
1435Use the RTL dead store elimination pass
1436
d72372e4 1437freschedule-modulo-scheduled-loops
c662432e 1438Common Report Var(flag_resched_modulo_sched) Optimization
d72372e4
MH
1439Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
1440
6ff3a151 1441fnon-call-exceptions
c662432e 1442Common Report Var(flag_non_call_exceptions) Optimization
f3fdaec4 1443Support synchronous non-call exceptions
6ff3a151 1444
de32c0cb 1445fomit-frame-pointer
c662432e 1446Common Report Var(flag_omit_frame_pointer) Optimization
f3fdaec4 1447When possible do not generate stack frames
de32c0cb 1448
6ff3a151 1449foptimize-register-move
c662432e 1450Common Report Var(flag_regmove) Optimization
f3fdaec4 1451Do the full register move optimization pass
6ff3a151 1452
de32c0cb 1453foptimize-sibling-calls
c662432e 1454Common Report Var(flag_optimize_sibling_calls) Optimization
f3fdaec4 1455Optimize sibling and tail recursive calls
de32c0cb 1456
3e485f62
JH
1457fpartial-inlining
1458Common Report Var(flag_partial_inlining)
1459Perform partial inlining
1460
a5573239
JH
1461fpre-ipa-mem-report
1462Common Report Var(pre_ipa_mem_report)
1463Report on memory allocation before interprocedural optimization
1464
1465fpost-ipa-mem-report
1466Common Report Var(post_ipa_mem_report)
1467Report on memory allocation before interprocedural optimization
1468
6ff3a151 1469fpack-struct
c662432e 1470Common Report Var(flag_pack_struct) Optimization
f3fdaec4 1471Pack structure members together without holes
6ff3a151 1472
467cecf3 1473fpack-struct=
c662432e 1474Common RejectNegative Joined UInteger Optimization
467cecf3
JB
1475-fpack-struct=<number> Set initial maximum structure member alignment
1476
de32c0cb 1477fpcc-struct-return
5498f011 1478Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
f3fdaec4 1479Return small aggregates in memory, not registers
de32c0cb
NB
1480
1481fpeel-loops
c662432e 1482Common Report Var(flag_peel_loops) Optimization
f3fdaec4 1483Perform loop peeling
de32c0cb
NB
1484
1485fpeephole
c662432e 1486Common Report Var(flag_no_peephole,0) Optimization
f3fdaec4 1487Enable machine specific peephole optimizations
de32c0cb 1488
6ff3a151 1489fpeephole2
c662432e 1490Common Report Var(flag_peephole2) Optimization
f3fdaec4 1491Enable an RTL peephole pass before sched2
6ff3a151 1492
31b66477
KC
1493fPIC
1494Common Report Var(flag_pic,2)
1495Generate position-independent code if possible (large mode)
1496
1497fPIE
1498Common Report Var(flag_pie,2)
1499Generate position-independent code for executables if possible (large mode)
1500
6ff3a151 1501fpic
f0036cca 1502Common Report Var(flag_pic,1)
31b66477 1503Generate position-independent code if possible (small mode)
6ff3a151
NB
1504
1505fpie
f0036cca 1506Common Report Var(flag_pie,1)
31b66477 1507Generate position-independent code for executables if possible (small mode)
6ff3a151 1508
68a607d8 1509fplugin=
21bf1558 1510Common Joined RejectNegative Var(common_deferred_options) Defer
68a607d8
DN
1511Specify a plugin to load
1512
1513fplugin-arg-
21bf1558 1514Common Joined RejectNegative Var(common_deferred_options) Defer
f94e1d66 1515-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
68a607d8 1516
bbc8a8dc 1517fpredictive-commoning
6ae4be32 1518Common Report Var(flag_predictive_commoning) Optimization
bbc8a8dc
ZD
1519Run predictive commoning optimization.
1520
de32c0cb 1521fprefetch-loop-arrays
1fbb509a 1522Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
f3fdaec4 1523Generate prefetch instructions, if available, for arrays in loops
de32c0cb 1524
6ff3a151 1525fprofile
50431bc4 1526Common Report Var(profile_flag)
f3fdaec4 1527Enable basic program profiling code
6ff3a151
NB
1528
1529fprofile-arcs
50431bc4 1530Common Report Var(profile_arc_flag)
f3fdaec4 1531Insert arc-based program profiling code
6ff3a151 1532
2f908293 1533fprofile-dir=
0576d21f 1534Common Joined RejectNegative Var(profile_data_prefix)
2f908293
SP
1535Set the top-level directory for storing the profile data.
1536The default is 'pwd'.
1537
52c76998
PY
1538fprofile-correction
1539Common Report Var(flag_profile_correction)
1540Enable correction of flow inconsistent profile data input
1541
a8a5f53a
JH
1542fprofile-generate
1543Common
1544Enable common options for generating profile info for profile feedback directed optimizations
1545
2f908293
SP
1546fprofile-generate=
1547Common Joined RejectNegative
1548Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1549
a8a5f53a 1550fprofile-use
2f908293 1551Common Var(flag_profile_use)
a8a5f53a
JH
1552Enable common options for performing profile feedback directed optimizations
1553
2f908293
SP
1554fprofile-use=
1555Common Joined RejectNegative
1556Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1557
fca9dc00 1558fprofile-values
50431bc4 1559Common Report Var(flag_profile_values)
fca9dc00
ZD
1560Insert code to profile values of expressions
1561
de32c0cb 1562frandom-seed
299404a1 1563Common Var(common_deferred_options) Defer
de32c0cb
NB
1564
1565frandom-seed=
299404a1 1566Common Joined RejectNegative Var(common_deferred_options) Defer
cf03fd63 1567-frandom-seed=<string> Make compile reproducible using <string>
de32c0cb 1568
e0d9d0dd
NC
1569; This switch causes the command line that was used to create an
1570; object file to be recorded into the object file. The exact format
1571; of this recording is target and binary file format dependent.
1572; It is related to the -fverbose-asm switch, but that switch only
1573; records information in the assembler output file as comments, so
1574; they never reach the object file.
1575frecord-gcc-switches
1576Common Report Var(flag_record_gcc_switches)
1577Record gcc command line switches in the object file.
1578
de32c0cb 1579freg-struct-return
f0036cca 1580Common Report Var(flag_pcc_struct_return,0) Optimization
f3fdaec4 1581Return small aggregates in registers
de32c0cb 1582
6ff3a151 1583fregmove
c662432e 1584Common Report Var(flag_regmove) Optimization
f3fdaec4 1585Enables a register move optimization
6ff3a151
NB
1586
1587frename-registers
c662432e 1588Common Report Var(flag_rename_registers) Init(2) Optimization
f3fdaec4 1589Perform a register renaming optimization pass
6ff3a151
NB
1590
1591freorder-blocks
c662432e 1592Common Report Var(flag_reorder_blocks) Optimization
f3fdaec4 1593Reorder basic blocks to improve code placement
6ff3a151 1594
750054a2 1595freorder-blocks-and-partition
c662432e 1596Common Report Var(flag_reorder_blocks_and_partition) Optimization
750054a2
CT
1597Reorder basic blocks and partition into hot and cold sections
1598
6ff3a151 1599freorder-functions
c662432e 1600Common Report Var(flag_reorder_functions) Optimization
f3fdaec4 1601Reorder functions to improve code placement
6ff3a151 1602
de32c0cb 1603frerun-cse-after-loop
3020190e 1604Common Report Var(flag_rerun_cse_after_loop) Optimization
f3fdaec4 1605Add a common subexpression elimination pass after loop optimizations
de32c0cb 1606
efa1cdf0 1607frerun-loop-opt
2d2bd949 1608Common Ignore
c0220ea4 1609Does nothing. Preserved for backward compatibility.
efa1cdf0 1610
039c3d42 1611frounding-math
5e46b0c6 1612Common Report Var(flag_rounding_math) Optimization SetByCombined
039c3d42
RS
1613Disable optimizations that assume default FP rounding behavior
1614
6ff3a151 1615fsched-interblock
c662432e 1616Common Report Var(flag_schedule_interblock) Init(1) Optimization
f3fdaec4 1617Enable scheduling across basic blocks
6ff3a151 1618
ce18efcb
VM
1619fsched-pressure
1620Common Report Var(flag_sched_pressure) Init(0) Optimization
1621Enable register pressure sensitive insn scheduling
1622
6ff3a151 1623fsched-spec
c662432e 1624Common Report Var(flag_schedule_speculative) Init(1) Optimization
f3fdaec4 1625Allow speculative motion of non-loads
6ff3a151
NB
1626
1627fsched-spec-load
c662432e 1628Common Report Var(flag_schedule_speculative_load) Optimization
f3fdaec4 1629Allow speculative motion of some loads
6ff3a151
NB
1630
1631fsched-spec-load-dangerous
c662432e 1632Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
f3fdaec4 1633Allow speculative motion of more loads
6ff3a151 1634
de32c0cb 1635fsched-verbose=
299404a1 1636Common RejectNegative Joined UInteger Var(sched_verbose_param)
cf03fd63 1637-fsched-verbose=<number> Set the verbosity level of the scheduler
de32c0cb 1638
6ff3a151 1639fsched2-use-superblocks
c662432e 1640Common Report Var(flag_sched2_use_superblocks) Optimization
f3fdaec4 1641If scheduling post reload, do superblock scheduling
6ff3a151
NB
1642
1643fsched2-use-traces
2d2bd949 1644Common Ignore
57257f0d 1645Does nothing. Preserved for backward compatibility.
6ff3a151 1646
de32c0cb 1647fschedule-insns
c662432e 1648Common Report Var(flag_schedule_insns) Optimization
f3fdaec4 1649Reschedule instructions before register allocation
de32c0cb
NB
1650
1651fschedule-insns2
c662432e 1652Common Report Var(flag_schedule_insns_after_reload) Optimization
f3fdaec4 1653Reschedule instructions after register allocation
de32c0cb 1654
e855c69d
AB
1655; This flag should be on when a target implements non-trivial
1656; scheduling hooks, maybe saving some information for its own sake.
1657; On IA64, for example, this is used for correct bundling.
1658fselective-scheduling
1659Common Report Var(flag_selective_scheduling) Optimization
1660Schedule instructions using selective scheduling algorithm
1661
1662fselective-scheduling2
1663Common Report Var(flag_selective_scheduling2) Optimization
1664Run selective scheduling after reload
1665
1666fsel-sched-pipelining
1667Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1668Perform software pipelining of inner loops during selective scheduling
1669
1670fsel-sched-pipelining-outer-loops
1671Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1672Perform software pipelining of outer loops during selective scheduling
1673
1674fsel-sched-reschedule-pipelined
1675Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1676Reschedule pipelined regions without pipelining
1677
31b66477
KC
1678; sched_stalled_insns means that insns can be moved prematurely from the queue
1679; of stalled insns into the ready list.
569fa502 1680fsched-stalled-insns
ab442df7 1681Common Report Var(flag_sched_stalled_insns) Optimization UInteger
569fa502
DN
1682Allow premature scheduling of queued insns
1683
1684fsched-stalled-insns=
c22cacf3 1685Common RejectNegative Joined UInteger
4e994432 1686-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
569fa502 1687
31b66477
KC
1688; sched_stalled_insns_dep controls how many recently scheduled cycles will
1689; be examined for a dependency on a stalled insn that is candidate for
1690; premature removal from the queue of stalled insns into the ready list (has
1691; an effect only if the flag 'sched_stalled_insns' is set).
569fa502 1692fsched-stalled-insns-dep
ab442df7 1693Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
569fa502
DN
1694Set dependence distance checking in premature scheduling of queued insns
1695
1696fsched-stalled-insns-dep=
1697Common RejectNegative Joined UInteger
4e994432 1698-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
569fa502 1699
ee4764a8
GS
1700fsched-group-heuristic
1701Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1702Enable the group heuristic in the scheduler
1703
1704fsched-critical-path-heuristic
1705Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1706Enable the critical path heuristic in the scheduler
1707
1708fsched-spec-insn-heuristic
1709Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1710Enable the speculative instruction heuristic in the scheduler
1711
ee4764a8
GS
1712fsched-rank-heuristic
1713Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1714Enable the rank heuristic in the scheduler
1715
1716fsched-last-insn-heuristic
1717Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1718Enable the last instruction heuristic in the scheduler
1719
1720fsched-dep-count-heuristic
1721Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1722Enable the dependent count heuristic in the scheduler
1723
aacd3885 1724fsection-anchors
c662432e 1725Common Report Var(flag_section_anchors) Optimization
aacd3885
RS
1726Access data in the same section from shared anchor points
1727
8cd37d0b 1728fsee
2d2bd949 1729Common Ignore
8393a9c8 1730Does nothing. Preserved for backward compatibility.
8cd37d0b 1731
87a0ebfd
ST
1732fzee
1733Common Report Var(flag_zee) Init(0)
1734Eliminate redundant zero extensions on targets that support implicit extensions.
1735
8abb6b22 1736fshow-column
1cb42611 1737Common Report Var(flag_show_column) Init(1)
e74fe492 1738Show column numbers in diagnostics, when available. Default on
8abb6b22 1739
6ff3a151 1740fsignaling-nans
5e46b0c6 1741Common Report Var(flag_signaling_nans) Optimization SetByCombined
f3fdaec4 1742Disable optimizations observable by IEEE signaling NaNs
6ff3a151 1743
db02da79 1744fsigned-zeros
5e46b0c6 1745Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined
db02da79
RS
1746Disable floating point optimizations that ignore the IEEE signedness of zero
1747
6ff3a151 1748fsingle-precision-constant
c662432e 1749Common Report Var(flag_single_precision_constant) Optimization
f3fdaec4 1750Convert floating point constants to single precision constants
6ff3a151 1751
113d659a 1752fsplit-ivs-in-unroller
c662432e 1753Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
c85ce869 1754Split lifetimes of induction variables when loops are unrolled
113d659a 1755
7458026b
ILT
1756fsplit-stack
1757Common Report Var(flag_split_stack) Init(-1)
1758Generate discontiguous stack frames
1759
e53a16e7 1760fsplit-wide-types
21af5cdf 1761Common Report Var(flag_split_wide_types) Optimization
e53a16e7
ILT
1762Split wide types into independent registers
1763
f37a4f14 1764fvariable-expansion-in-unroller
c662432e 1765Common Report Var(flag_variable_expansion_in_unroller) Optimization
c85ce869 1766Apply variable expansion when loops are unrolled
f37a4f14 1767
b38f3813
EB
1768fstack-check=
1769Common Report RejectNegative Joined
1770-fstack-check=[no|generic|specific] Insert stack checking code into the program
1771
6ff3a151 1772fstack-check
5de8299c 1773Common Alias(fstack-check=, specific, no)
b38f3813 1774Insert stack checking code into the program. Same as -fstack-check=specific
6ff3a151 1775
de32c0cb 1776fstack-limit
21bf1558 1777Common Var(common_deferred_options) Defer
de32c0cb 1778
058de654 1779fstack-limit-register=
21bf1558 1780Common RejectNegative Joined Var(common_deferred_options) Defer
cf03fd63 1781-fstack-limit-register=<register> Trap if the stack goes past <register>
058de654
NB
1782
1783fstack-limit-symbol=
21bf1558 1784Common RejectNegative Joined Var(common_deferred_options) Defer
cf03fd63 1785-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
058de654 1786
7d69de61
RH
1787fstack-protector
1788Common Report Var(flag_stack_protect, 1)
1789Use propolice as a stack protection method
1790
1791fstack-protector-all
f0036cca 1792Common Report RejectNegative Var(flag_stack_protect, 2)
7d69de61
RH
1793Use a stack protection method for every function
1794
d3c12306
EB
1795fstack-usage
1796Common RejectNegative Var(flag_stack_usage)
1797Output stack usage information on a per-function basis
1798
de32c0cb 1799fstrength-reduce
2d2bd949 1800Common Ignore
c0220ea4 1801Does nothing. Preserved for backward compatibility.
de32c0cb 1802
31b66477
KC
1803; Nonzero if we should do (language-dependent) alias analysis.
1804; Typically, this analysis will assume that expressions of certain
1805; types do not alias expressions of certain other types. Only used
1806; if alias analysis (in general) is enabled.
6ff3a151 1807fstrict-aliasing
c662432e 1808Common Report Var(flag_strict_aliasing) Optimization
f3fdaec4 1809Assume strict aliasing rules apply
6ff3a151 1810
eeef0e45
ILT
1811fstrict-overflow
1812Common Report Var(flag_strict_overflow)
1813Treat signed overflow as undefined
1814
de32c0cb 1815fsyntax-only
50431bc4 1816Common Report Var(flag_syntax_only)
f3fdaec4 1817Check for syntax errors, then stop
de32c0cb 1818
6ff3a151 1819ftest-coverage
50431bc4 1820Common Report Var(flag_test_coverage)
f3fdaec4 1821Create data files needed by \"gcov\"
6ff3a151 1822
de32c0cb 1823fthread-jumps
c662432e 1824Common Report Var(flag_thread_jumps) Optimization
f3fdaec4 1825Perform jump threading optimizations
de32c0cb 1826
6ff3a151 1827ftime-report
50431bc4 1828Common Report Var(time_report)
f3fdaec4 1829Report the time taken by each compiler pass
6ff3a151 1830
058de654 1831ftls-model=
e6d4b984 1832Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
cf03fd63 1833-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
058de654 1834
e6d4b984
JM
1835Enum
1836Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
1837
1838EnumValue
1839Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
1840
1841EnumValue
1842Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
1843
1844EnumValue
1845Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
1846
1847EnumValue
1848Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
1849
474eccc6 1850ftoplevel-reorder
d6cc6ec9 1851Common Report Var(flag_toplevel_reorder) Init(2) Optimization
474eccc6
ILT
1852Reorder top level functions, variables, and asms
1853
de32c0cb 1854ftracer
50431bc4 1855Common Report Var(flag_tracer)
f3fdaec4 1856Perform superblock formation via tail duplication
de32c0cb 1857
31b66477
KC
1858; Zero means that floating-point math operations cannot generate a
1859; (user-visible) trap. This is the case, for example, in nonstop
1860; IEEE 754 arithmetic.
6ff3a151 1861ftrapping-math
5e46b0c6 1862Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined
f3fdaec4 1863Assume floating-point operations can trap
6ff3a151
NB
1864
1865ftrapv
c662432e 1866Common Report Var(flag_trapv) Optimization
f3fdaec4 1867Trap for signed overflow in addition, subtraction and multiplication
6ff3a151 1868
6de9cd9a 1869ftree-ccp
c662432e 1870Common Report Var(flag_tree_ccp) Optimization
6de9cd9a
DN
1871Enable SSA-CCP optimization on trees
1872
0b4b14ac
RG
1873ftree-bit-ccp
1874Common Report Var(flag_tree_bit_ccp) Optimization
1875Enable SSA-BIT-CCP optimization on trees
1876
0bca51f0 1877ftree-store-ccp
2d2bd949 1878Common Ignore
dce2b2f6 1879Does nothing. Preserved for backward compatibility.
0bca51f0 1880
6de9cd9a 1881ftree-ch
c662432e 1882Common Report Var(flag_tree_ch) Optimization
6de9cd9a
DN
1883Enable loop header copying on trees
1884
6de9cd9a 1885ftree-copyrename
c662432e 1886Common Report Var(flag_tree_copyrename) Optimization
c85ce869 1887Replace SSA temporaries with better names in copies
6de9cd9a 1888
0bca51f0 1889ftree-copy-prop
c662432e 1890Common Report Var(flag_tree_copy_prop) Optimization
0bca51f0
DN
1891Enable copy propagation on trees
1892
1893ftree-store-copy-prop
2d2bd949 1894Common Ignore
e9033855 1895Does nothing. Preserved for backward compatibility.
0bca51f0 1896
a5828d1e
MM
1897ftree-cselim
1898Common Report Var(flag_tree_cselim) Init(2) Optimization
1899Transform condition stores into unconditional ones
1900
b6e99746
MJ
1901ftree-switch-conversion
1902Common Report Var(flag_tree_switch_conversion) Optimization
1903Perform conversions of switch initializations.
1904
6de9cd9a 1905ftree-dce
c662432e 1906Common Report Var(flag_tree_dce) Optimization
6de9cd9a
DN
1907Enable SSA dead code elimination optimization on trees
1908
1909ftree-dominator-opts
c662432e 1910Common Report Var(flag_tree_dom) Optimization
6de9cd9a
DN
1911Enable dominator optimizations
1912
1913ftree-dse
c662432e 1914Common Report Var(flag_tree_dse) Optimization
6de9cd9a
DN
1915Enable dead store elimination
1916
248fc9f3
RG
1917ftree-forwprop
1918Common Report Var(flag_tree_forwprop) Init(1) Optimization
1919Enable forward propagation on trees
1920
ff2ad0f7 1921ftree-fre
c662432e 1922Common Report Var(flag_tree_fre) Optimization
ff2ad0f7
DN
1923Enable Full Redundancy Elimination (FRE) on trees
1924
dea61d92 1925ftree-loop-distribution
53ed2f0e 1926Common Report Var(flag_tree_loop_distribution) Optimization
dea61d92
SP
1927Enable loop distribution on trees
1928
20769d5e
SP
1929ftree-loop-distribute-patterns
1930Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1931Enable loop distribution for patterns transformed into a library call
1932
1b08d87d 1933ftree-loop-im
c662432e 1934Common Report Var(flag_tree_loop_im) Init(1) Optimization
a7e5372d
ZD
1935Enable loop invariant motion on trees
1936
599eabdb 1937ftree-loop-linear
7633415c
SP
1938Common Alias(floop-interchange)
1939Enable loop interchange transforms. Same as -floop-interchange
599eabdb 1940
1b08d87d 1941ftree-loop-ivcanon
c662432e 1942Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
1b08d87d
DB
1943Create canonical induction variables in loops
1944
c66b6c66 1945ftree-loop-optimize
c662432e 1946Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
c66b6c66
ZD
1947Enable loop optimizations on tree level
1948
5f40b3cb 1949ftree-parallelize-loops=
fcfbd84e 1950Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
5f40b3cb
ZD
1951Enable automatic parallelization of loops
1952
248fc9f3
RG
1953ftree-phiprop
1954Common Report Var(flag_tree_phiprop) Init(1) Optimization
1955Enable hoisting loads from conditional pointers.
1956
6de9cd9a 1957ftree-pre
c662432e 1958Common Report Var(flag_tree_pre) Optimization
6de9cd9a
DN
1959Enable SSA-PRE optimization on trees
1960
248fc9f3
RG
1961ftree-pta
1962Common Report Var(flag_tree_pta) Init(1) Optimization
1963Perform function-local points-to analysis on trees.
1964
13c59415
UB
1965ftree-reassoc
1966Common Report Var(flag_tree_reassoc) Init(1) Optimization
1967Enable reassociation on tree level
1968
c75ab022 1969ftree-salias
2d2bd949 1970Common Ignore
1353232d 1971Does nothing. Preserved for backward compatibility.
c75ab022 1972
fa555252 1973ftree-sink
c662432e 1974Common Report Var(flag_tree_sink) Optimization
fa555252
DB
1975Enable SSA code sinking on trees
1976
6de9cd9a 1977ftree-sra
c662432e 1978Common Report Var(flag_tree_sra) Optimization
6de9cd9a
DN
1979Perform scalar replacement of aggregates
1980
1981ftree-ter
3020190e 1982Common Report Var(flag_tree_ter) Optimization
6de9cd9a
DN
1983Replace temporary expressions in the SSA->normal pass
1984
c662432e
NC
1985ftree-lrs
1986Common Report Var(flag_tree_live_range_split) Optimization
1987Perform live range splitting during the SSA->normal pass
1988
0bca51f0 1989ftree-vrp
c662432e 1990Common Report Var(flag_tree_vrp) Init(0) Optimization
0bca51f0
DN
1991Perform Value Range Propagation on trees
1992
de32c0cb 1993funit-at-a-time
d6cc6ec9 1994Common Report Var(flag_unit_at_a_time) Init(1) Optimization
f3fdaec4 1995Compile whole compilation unit at a time
de32c0cb
NB
1996
1997funroll-loops
c662432e 1998Common Report Var(flag_unroll_loops) Optimization
f3fdaec4 1999Perform loop unrolling when iteration count is known
de32c0cb
NB
2000
2001funroll-all-loops
c662432e 2002Common Report Var(flag_unroll_all_loops) Optimization
f3fdaec4 2003Perform loop unrolling for all loops
de32c0cb 2004
f9cc1a70
PB
2005; Nonzero means that loop optimizer may assume that the induction variables
2006; that control loops do not overflow and that the loops with nontrivial
2007; exit condition are not infinite
2008funsafe-loop-optimizations
c662432e 2009Common Report Var(flag_unsafe_loop_optimizations) Optimization
f9cc1a70
PB
2010Allow loop optimizations to assume that the loops behave in normal way
2011
a1a82611 2012fassociative-math
5e46b0c6 2013Common Report Var(flag_associative_math) SetByCombined
a1a82611
RE
2014Allow optimization for floating-point arithmetic which may change the
2015result of the operation due to rounding.
2016
2017freciprocal-math
5e46b0c6 2018Common Report Var(flag_reciprocal_math) SetByCombined
a1a82611
RE
2019Same as -fassociative-math for expressions which include division.
2020
31b66477
KC
2021; Nonzero means that unsafe floating-point math optimizations are allowed
2022; for the sake of speed. IEEE compliance is not guaranteed, and operations
2023; are allowed to assume that their arguments and results are "normal"
2024; (e.g., nonnegative for SQRT).
6ff3a151 2025funsafe-math-optimizations
5e46b0c6 2026Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined
f3fdaec4 2027Allow math optimizations that may violate IEEE or ISO standards
6ff3a151 2028
de32c0cb 2029funswitch-loops
c662432e 2030Common Report Var(flag_unswitch_loops) Optimization
f3fdaec4 2031Perform loop unswitching
de32c0cb 2032
6ff3a151 2033funwind-tables
c662432e 2034Common Report Var(flag_unwind_tables) Optimization
f3fdaec4 2035Just generate unwind tables for exception handling
6ff3a151 2036
da18ea94
RAE
2037fuse-linker-plugin
2038Common Undocumented
2039
e90afde6
JM
2040; Positive if we should track variables, negative if we should run
2041; the var-tracking pass only to discard debug annotations, zero if
2042; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it
2043; will be set according to optimize, debug_info_level and debug_hooks
2044; in process_options ().
014a1138 2045fvar-tracking
e90afde6 2046Common Report Var(flag_var_tracking) Init(2) Optimization
014a1138
JZ
2047Perform variable tracking
2048
e90afde6
JM
2049; Positive if we should track variables at assignments, negative if
2050; we should run the var-tracking pass only to discard debug
2051; annotations. When flag_var_tracking_assignments ==
2052; AUTODETECT_VALUE it will be set according to flag_var_tracking.
b5b8b0ac 2053fvar-tracking-assignments
e90afde6 2054Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
b5b8b0ac
AO
2055Perform variable tracking by annotating assignments
2056
e90afde6
JM
2057; Nonzero if we should toggle flag_var_tracking_assignments after
2058; processing options and computing its default. */
b5b8b0ac 2059fvar-tracking-assignments-toggle
e90afde6 2060Common Report Var(flag_var_tracking_assignments_toggle) Optimization
b5b8b0ac
AO
2061Toggle -fvar-tracking-assignments
2062
62760ffd
CT
2063fvar-tracking-uninit
2064Common Report Var(flag_var_tracking_uninit) Optimization
2065Perform variable tracking and also tag variables that are uninitialized
2066
79fe1b3b 2067ftree-vectorize
c662432e 2068Common Report Var(flag_tree_vectorize) Optimization
79fe1b3b
DN
2069Enable loop vectorization on trees
2070
a70d6342
IR
2071ftree-slp-vectorize
2072Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
2073Enable basic block vectorization (SLP) on trees
2074
792ed98b
HJ
2075fvect-cost-model
2076Common Report Var(flag_vect_cost_model) Optimization
2077Enable use of cost model in vectorization
2078
c12cc930 2079ftree-vect-loop-version
c662432e 2080Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
c12cc930
KB
2081Enable loop versioning when doing loop vectorization on trees
2082
c866976a 2083ftree-vectorizer-verbose=
7cd23050 2084Common RejectNegative Joined UInteger
4e994432 2085-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
c866976a 2086
fbf798fc 2087ftree-scev-cprop
21af5cdf 2088Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
fbf798fc
DN
2089Enable copy propagation of scalar-evolution information.
2090
31b66477
KC
2091; -fverbose-asm causes extra commentary information to be produced in
2092; the generated assembly code (to make it more readable). This option
2093; is generally only of use to those who actually need to read the
2094; generated assembly code (perhaps while debugging the compiler itself).
2095; -fno-verbose-asm, the default, causes the extra information
2096; to not be added and is useful when comparing two assembler files.
6ff3a151 2097fverbose-asm
50431bc4 2098Common Report Var(flag_verbose_asm)
f3fdaec4 2099Add extra commentary to assembler output
6ff3a151 2100
d7afec4b 2101fvisibility=
e6d4b984 2102Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
d7afec4b
ND
2103-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
2104
e6d4b984
JM
2105Enum
2106Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
2107
2108EnumValue
2109Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
2110
2111EnumValue
2112Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
2113
2114EnumValue
2115Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
2116
2117EnumValue
2118Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
d7afec4b 2119
fca9dc00 2120fvpt
c662432e 2121Common Report Var(flag_value_profile_transformations) Optimization
fca9dc00
ZD
2122Use expression value profiles in optimizations
2123
62551c66 2124fweb
c662432e 2125Common Report Var(flag_web) Init(2) Optimization
62551c66
JH
2126Construct webs and split unrelated uses of single variable
2127
c2699190
XDL
2128ftree-builtin-call-dce
2129Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
2130Enable conditional dead code elimination for builtin calls
2131
ce91e74c 2132fwhole-program
c662432e 2133Common Report Var(flag_whole_program) Init(0) Optimization
ce91e74c
JH
2134Perform whole program optimizations
2135
6ff3a151 2136fwrapv
c662432e 2137Common Report Var(flag_wrapv) Optimization
f3fdaec4 2138Assume signed arithmetic overflow wraps around
6ff3a151 2139
6ff3a151 2140fzero-initialized-in-bss
50431bc4 2141Common Report Var(flag_zero_initialized_in_bss) Init(1)
f3fdaec4 2142Put zero initialized data in the bss section
6ff3a151 2143
e01cc6dc
NB
2144g
2145Common JoinedOrMissing
df38ffef
NB
2146Generate debug information in default format
2147
2148gcoff
53b2323e 2149Common JoinedOrMissing Negative(gdwarf-)
df38ffef
NB
2150Generate debug information in COFF format
2151
53b2323e
RH
2152gdwarf-
2153Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
2154Generate debug information in DWARF v2 (or later) format
df38ffef
NB
2155
2156ggdb
2157Common JoinedOrMissing
2158Generate debug information in default extended format
2159
2160gstabs
14c7833c 2161Common JoinedOrMissing Negative(gstabs+)
df38ffef
NB
2162Generate debug information in STABS format
2163
2164gstabs+
14c7833c 2165Common JoinedOrMissing Negative(gvms)
df38ffef
NB
2166Generate debug information in extended STABS format
2167
65f753a0 2168gno-strict-dwarf
047a3193 2169Common RejectNegative Var(dwarf_strict,0) Init(-1)
65f753a0
JJ
2170Emit DWARF additions beyond selected version
2171
2172gstrict-dwarf
f0036cca 2173Common Report RejectNegative Var(dwarf_strict,1)
65f753a0
JJ
2174Don't emit DWARF additions beyond selected version
2175
2153915d
AO
2176gtoggle
2177Common Report Var(flag_gtoggle)
2178Toggle debug information generation
2179
df38ffef 2180gvms
14c7833c 2181Common JoinedOrMissing Negative(gxcoff)
df38ffef
NB
2182Generate debug information in VMS format
2183
2184gxcoff
14c7833c 2185Common JoinedOrMissing Negative(gxcoff+)
df38ffef
NB
2186Generate debug information in XCOFF format
2187
2188gxcoff+
14c7833c 2189Common JoinedOrMissing Negative(gcoff)
df38ffef 2190Generate debug information in extended XCOFF format
e01cc6dc 2191
6d721f67
JM
2192h
2193Driver Joined Separate
2194
4adbd5dd
MK
2195iplugindir=
2196Common Joined Var(plugindir_string) Init(0)
2197-iplugindir=<dir> Set <dir> to be the default plugin directory
2198
603349bf
JM
2199l
2200Driver Joined Separate
2201
dd9f93dc
JM
2202n
2203Driver
2204
603349bf
JM
2205no-canonical-prefixes
2206Driver
2207
d9d16a19
JM
2208nodefaultlibs
2209Driver
2210
bab79a40
JM
2211nostartfiles
2212Driver
2213
d9d16a19
JM
2214nostdlib
2215Driver
2216
d185d268 2217o
d5478783 2218Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
cf03fd63 2219-o <file> Place output into <file>
d185d268
NB
2220
2221p
50431bc4 2222Common Var(profile_flag)
cf03fd63 2223Enable function profiling
d185d268 2224
603349bf
JM
2225pass-exit-codes
2226Driver Var(pass_exit_codes)
2227
d185d268 2228pedantic
50431bc4 2229Common Var(pedantic)
cf03fd63 2230Issue warnings needed for strict compliance to the standard
d185d268
NB
2231
2232pedantic-errors
d5478783 2233Common Var(flag_pedantic_errors)
cf03fd63 2234Like -pedantic but issue them as errors
d185d268 2235
d9d16a19
JM
2236pg
2237Driver
2238
603349bf
JM
2239pipe
2240Driver Var(use_pipes)
2241
2242print-file-name=
2243Driver JoinedOrMissing Var(print_file_name)
2244
2245print-libgcc-file-name
2246Driver
2247
2248print-multi-directory
2249Driver Var(print_multi_directory)
2250
2251print-multi-lib
2252Driver Var(print_multi_lib)
2253
2254print-multi-os-directory
2255Driver Var(print_multi_os_directory)
2256
2257print-prog-name=
2258Driver JoinedOrMissing Var(print_prog_name)
2259
2260print-search-dirs
2261Driver Var(print_search_dirs)
2262
2263print-sysroot
2264Driver Var(print_sysroot)
2265
2266print-sysroot-headers-suffix
2267Driver Var(print_sysroot_headers_suffix)
2268
d7b42618 2269quiet
603349bf 2270Common Var(quiet_flag) RejectDriver
cf03fd63 2271Do not display functions compiled or elapsed time
d7b42618 2272
dd9f93dc
JM
2273r
2274Driver
2275
2276s
2277Driver
2278
603349bf
JM
2279save-temps
2280Driver
2281
2282save-temps=
2283Driver Joined
2284
dd9f93dc
JM
2285t
2286Driver
2287
603349bf
JM
2288time
2289Driver Var(report_times)
2290
2291time=
2292Driver JoinedOrMissing
2293
e200444e
JM
2294u
2295Driver Joined Separate
2296
5642f5d5
JM
2297undef
2298Driver
2299; C option, but driver must not handle as "-u ndef".
2300
603349bf 2301v
d5478783
JM
2302Common Driver Var(verbose_flag)
2303Enable verbose output
603349bf 2304
d185d268 2305version
603349bf 2306Common Var(version_flag) RejectDriver
cf03fd63 2307Display the compiler's version
d185d268
NB
2308
2309w
50431bc4 2310Common Var(inhibit_warnings)
cf03fd63 2311Suppress warnings
d185d268 2312
603349bf
JM
2313wrapper
2314Driver Separate Var(wrapper_string)
2315
2316x
2317Driver Joined Separate
2318
528dc603
L
2319shared
2320Common RejectNegative Negative(pie)
2321Create a shared library
2322
603349bf
JM
2323shared-libgcc
2324Driver
2325
2326specs
5de8299c 2327Driver Separate Alias(specs=)
603349bf
JM
2328
2329specs=
2330Driver Joined
2331
d9d16a19
JM
2332static
2333Driver
2334
603349bf
JM
2335static-libgcc
2336Driver
2337
2338static-libgfortran
2339Driver
2340; Documented for Fortran, but always accepted by driver.
2341
2342static-libstdc++
2343Driver
2344
7a938933
ILT
2345static-libgo
2346Driver
2347; Documented for Go, but always accepted by driver.
2348
e200444e
JM
2349symbolic
2350Driver
2351
528dc603
L
2352pie
2353Common RejectNegative Negative(shared)
2354Create a position independent executable
2355
6d721f67
JM
2356z
2357Driver Joined Separate
2358
d7b42618 2359; This comment is to ensure we retain the blank line above.
This page took 2.425756 seconds and 5 git commands to generate.