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