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