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