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