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