]> gcc.gnu.org Git - gcc.git/blame - gcc/common.opt
sparc.c (sparc_expand_vector_init): Only accept literal constants in CONST_VECTORs.
[gcc.git] / gcc / common.opt
CommitLineData
d7b42618 1; Options for the language- and target-independent parts of the compiler.
50431bc4 2
818ab71a 3; Copyright (C) 2003-2016 Free Software Foundation, Inc.
d7b42618
NB
4;
5; This file is part of GCC.
6;
7; GCC is free software; you can redistribute it and/or modify it under
8; the terms of the GNU General Public License as published by the Free
9dcd6f09 9; Software Foundation; either version 3, or (at your option) any later
d7b42618 10; version.
c22cacf3 11;
d7b42618
NB
12; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15; for more details.
c22cacf3 16;
d7b42618 17; You should have received a copy of the GNU General Public License
9dcd6f09
NC
18; along with GCC; see the file COPYING3. If not see
19; <http://www.gnu.org/licenses/>.
d7b42618 20
71733172 21; See the GCC internals manual (options.texi) for a description of this file's format.
d7b42618
NB
22
23; Please try to keep this file in ASCII collating order.
24
e90afde6
JM
25Variable
26int target_flags
27
46625112
JM
28Variable
29int optimize
30
31Variable
32int optimize_size
33
bf7a7185
RG
34Variable
35int optimize_debug
36
0a8134ca
JM
37; Not used directly to control optimizations, only to save -Ofast
38; setting for "optimize" attributes.
39Variable
40int optimize_fast
41
a7d0d30f
JM
42; True if this is the lto front end. This is used to disable gimple
43; generation and lowering passes that are normally run on the output
44; of a front end. These passes must be bypassed for lto since they
45; have already been done before the gimple was written.
46Variable
47bool in_lto_p = false
48
1ff9ed6f
JH
49; This variable is set to non-0 only by LTO front-end. 1 indicates that
50; the output produced will be used for incrmeental linking (thus weak symbols
51; can still be bound).
52Variable
53int flag_incremental_link = 0
54
a75bfaa6
JM
55; 0 means straightforward implementation of complex divide acceptable.
56; 1 means wide ranges of inputs must work for complex divide.
57; 2 means C99-like requirements for complex multiply and divide.
58Variable
59int flag_complex_method = 1
60
61; Nonzero if subexpressions must be evaluated from left-to-right.
62Variable
63int flag_evaluation_order = 0
64
a75bfaa6
JM
65; Language specific warning pass for unused results.
66Variable
67bool flag_warn_unused_result = false
68
48476d13
JM
69Variable
70int *param_values
71
d5478783
JM
72; Nonzero if we should write GIMPLE bytecode for link-time optimization.
73Variable
74int flag_generate_lto
75
f0d78df9
IV
76; Nonzero if we should write GIMPLE bytecode for offload compilation.
77Variable
78int flag_generate_offload = 0
79
d5478783
JM
80; True to warn about any objects definitions whose size is larger
81; than N bytes. Also want about function definitions whose returned
82; values are larger than N bytes, where N is 'larger_than_size'.
83Variable
84bool warn_larger_than
85
86Variable
87HOST_WIDE_INT larger_than_size
88
89; True to warn about any function whose frame size is larger
90; than N bytes.
91Variable
92bool warn_frame_larger_than
93
94Variable
95HOST_WIDE_INT frame_larger_than_size
96
97; Nonzero means we should be saving declaration info into a .X file.
98Variable
99int flag_gen_aux_info = 0
100
101; Nonzero if we are compiling code for a shared library, zero for
102; executable.
103Variable
104int flag_shlib
105
6a1f6c9c
JM
106; These two are really VEC(char_p,heap) *.
107
108Variable
109void *flag_instrument_functions_exclude_functions
110
111Variable
112void *flag_instrument_functions_exclude_files
113
69ccdddb
JM
114; Generic structs (e.g. templates not explicitly specialized)
115; may not have a compilation unit associated with them, and so
116; may need to be treated differently from ordinary structs.
117;
118; Structs only handled by reference (indirectly), will also usually
119; not need as much debugging information.
120
121Variable
122enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
123
124Variable
125enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
126
0576d21f
JM
127; True if we should exit after parsing options.
128Variable
129bool exit_after_options
130
131; Type(s) of debugging information we are producing (if any). See
132; flag-types.h for the definitions of the different possible types of
133; debugging information.
134Variable
135enum debug_info_type write_symbols = NO_DEBUG
136
137; Level of debugging information we are producing. See flag-types.h
138; for the definitions of the different possible levels.
139Variable
140enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
141
142; Nonzero means use GNU-only extensions in the generated symbolic
143; debugging information. Currently, this only has an effect when
144; write_symbols is set to DBX_DEBUG, XCOFF_DEBUG, or DWARF_DEBUG.
145Variable
146bool use_gnu_debug_info_extensions
147
299404a1
JM
148; Original value of maximum field alignment in bytes, specified via
149; -fpack-struct=<value>.
150Variable
151unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
152
5e471ea6
JM
153; Type of stack check.
154Variable
155enum stack_check_type flag_stack_check = NO_STACK_CHECK
156
a11e0df4
EB
157; True if stack usage information needs to be computed.
158Variable
159bool flag_stack_usage_info = false
160
299404a1
JM
161; -dA causes debug commentary information to be produced in
162; the generated assembly code (to make it more readable). This option
163; is generally only of use to those who actually need to read the
164; generated assembly code (perhaps while debugging the compiler itself).
165; Currently, this switch is only used by dwarf2out.c; however, it is intended
166; to be a catchall for printing debug information in the assembler file.
167Variable
168int flag_debug_asm
169
6592d14b
PMR
170
171; Balance between GNAT encodings and standard DWARF to emit.
172Variable
173enum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT
174
299404a1
JM
175; -dP causes the rtl to be emitted as a comment in assembly.
176Variable
177int flag_dump_rtl_in_asm
178
179; Whether -da was passed (used only in handle_common_deferred_options).
180Variable
181bool flag_dump_all_passed
182
183; Other flags saying which kinds of debugging dump have been requested.
184
185Variable
186int rtl_dump_and_exit
187
188Variable
189int flag_print_asm_name
190
a803773f
JM
191; Name of top-level original source file (what was input to cpp).
192; This comes from the #-command at the beginning of the actual input.
193; If there isn't any there, then this is the cc1 input file name.
194Variable
195const char *main_input_filename
196
197; Pointer to base name in main_input_filename, with directories and a
198; single final extension removed, and the length of this base
199; name.
200
201Variable
202const char *main_input_basename
203
204Variable
205int main_input_baselength
206
299404a1
JM
207; Which options have been printed by --help.
208Variable
209char *help_printed
210
e6d4b984
JM
211; Which enums have been printed by --help. 0 = not printed, no
212; relevant options seen, 1 = relevant option seen, not yet printed, 2
213; = printed.
214Variable
215char *help_enum_printed
216
299404a1
JM
217; The number of columns for --help output.
218Variable
219unsigned int help_columns
220
221; Whether this options structure has been through finish_options
222Variable
223bool flag_opts_finished
224
de5a5fa1
MP
225; What the sanitizer should instrument
226Variable
227unsigned int flag_sanitize
228
d95a2703
JJ
229; What sanitizers should recover from errors
230Variable
5cc6c41c 231unsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_NONDEFAULT | SANITIZE_KERNEL_ADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN)
d95a2703 232
95e7bbb8
DV
233fsanitize-coverage=trace-pc
234Common Report Var(flag_sanitize_coverage)
235Enable coverage-guided fuzzing code instrumentation.
236Inserts call to __sanitizer_cov_trace_pc into every basic block.
237
91035653
JJ
238; Flag whether a prefix has been added to dump_base_name
239Variable
240bool dump_base_name_prefixed = false
241
b2b40051
MJ
242; Flag whether HSA generation has been explicitely disabled
243Variable
244bool flag_disable_hsa = false
245
603349bf
JM
246###
247Driver
248
e200444e
JM
249-assemble
250Driver Alias(S)
251
252-compile
253Driver Alias(c)
254
255-coverage
256Driver Alias(coverage)
257
258-debug
259Common Alias(g)
260
261-dump
262Common Separate Alias(d)
263
264-dump=
265Common Joined Alias(d)
266
267-dumpbase
268Common Separate Alias(dumpbase)
269
270-dumpdir
271Common Separate Alias(dumpdir)
272
273-entry
274Driver Separate Alias(e)
275
276-entry=
277Driver Joined Alias(e)
278
279-extra-warnings
280Common Warning Alias(Wextra)
281
282-for-assembler
283Driver Separate Alias(Xassembler)
284
285-for-assembler=
286Driver JoinedOrMissing Alias(Xassembler)
287
288-for-linker
289Driver Separate Alias(Xlinker)
290
291-for-linker=
292Driver JoinedOrMissing Alias(Xlinker)
293
294-force-link
295Driver Separate Alias(u)
296
297-force-link=
298Driver Joined Alias(u)
299
d185d268 300-help
e200444e 301Common Driver Var(help_flag)
a7b2e184 302Display this information.
d185d268 303
c662432e 304-help=
603349bf 305Common Driver Report Joined
a7b2e184 306--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params.
903caebf 307
e200444e
JM
308-language
309Driver Separate Alias(x)
310
311-language=
312Driver Joined Alias(x)
313
314-library-directory
315Driver Separate Alias(L)
316
317-library-directory=
318Driver Joined Alias(L)
319
320-no-canonical-prefixes
321Driver Alias(no-canonical-prefixes)
322
323-no-standard-libraries
324Driver Alias(nostdlib)
325
28b4fc51
JM
326-no-sysroot-suffix
327Driver Var(no_sysroot_suffix)
328
e200444e
JM
329-no-warnings
330Common Alias(w)
331
332-optimize
333Common Alias(O)
334
335-output
336Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
337
338-output=
339Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
340
341-pass-exit-codes
342Driver Alias(pass-exit-codes)
343
344-pedantic
c1771a20 345Common Alias(Wpedantic)
e200444e
JM
346
347-pedantic-errors
348Common Alias(pedantic-errors)
349
350-pie
5460e1fc 351Driver Alias(pie)
e200444e
JM
352
353-pipe
354Driver Alias(pipe)
355
356-prefix
357Driver Separate Alias(B)
358
359-prefix=
360Driver JoinedOrMissing Alias(B)
361
362-preprocess
363Driver Alias(E)
364
365-print-file-name
366Driver Separate Alias(print-file-name=)
367
368-print-file-name=
369Driver JoinedOrMissing Alias(print-file-name=)
370
371-print-libgcc-file-name
372Driver Alias(print-libgcc-file-name)
373
374-print-multi-directory
375Driver Alias(print-multi-directory)
376
377-print-multi-lib
378Driver Alias(print-multi-lib)
379
380-print-multi-os-directory
381Driver Alias(print-multi-os-directory)
382
e0cdc09f
MK
383-print-multiarch
384Driver Alias(print-multiarch)
385
e200444e
JM
386-print-prog-name
387Driver Separate Alias(print-prog-name=)
388
389-print-prog-name=
390Driver JoinedOrMissing Alias(print-prog-name=)
391
392-print-search-dirs
393Driver Alias(print-search-dirs)
394
395-print-sysroot
396Driver Alias(print-sysroot)
397
398-print-sysroot-headers-suffix
399Driver Alias(print-sysroot-headers-suffix)
400
401-profile
402Common Alias(p)
403
404-save-temps
405Driver Alias(save-temps)
406
407-shared
5460e1fc 408Driver Alias(shared)
e200444e
JM
409
410-specs
411Driver Separate Alias(specs=)
412
413-specs=
414Driver Joined Alias(specs=)
415
416-static
417Driver Alias(static)
418
419-symbolic
420Driver Alias(symbolic)
421
d185d268 422-target-help
603349bf 423Common Driver
a7b2e184 424Alias for --help=target.
c662432e 425
e200444e
JM
426-time
427Driver Alias(time)
428
429-verbose
430Driver Alias(v)
431
432;; The driver used to convert options such as --help into forms such
433;; as -fhelp; the following four entries are for compatibility with
434;; any direct uses of those (undocumented) -f forms
c662432e 435fhelp
e200444e 436Common Driver Alias(-help)
c662432e
NC
437
438fhelp=
e200444e 439Common Driver Joined Alias(-help=)
c662432e
NC
440
441ftarget-help
e200444e 442Common Driver Alias(-target-help)
c662432e 443
41fd0f9b 444fversion
e200444e 445Common Driver Alias(-version)
41fd0f9b 446
c662432e
NC
447-param
448Common Separate
a7b2e184 449--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters.
d185d268 450
e200444e
JM
451-param=
452Common Joined Alias(-param)
453
454-sysroot
455Driver Separate Alias(-sysroot=)
456
603349bf
JM
457-sysroot=
458Driver JoinedOrMissing
459
d185d268 460-version
603349bf
JM
461Common Driver
462
463B
464Driver Joined Separate
465
466E
467Driver
d185d268 468
d9d16a19
JM
469L
470Driver Joined Separate
471
dd9f93dc
JM
472N
473Driver
474
903caebf 475O
ab442df7 476Common JoinedOrMissing Optimization
a7b2e184 477-O<number> Set optimization level to <number>.
903caebf
NB
478
479Os
ab442df7 480Common Optimization
a7b2e184 481Optimize for space rather than speed.
903caebf 482
be6d3f0e
RG
483Ofast
484Common Optimization
a7b2e184 485Optimize for speed disregarding exact standards compliance.
be6d3f0e 486
bf7a7185
RG
487Og
488Common Optimization
a7b2e184 489Optimize for debugging experience rather than speed or size.
bf7a7185 490
dd9f93dc
JM
491Q
492Driver
493
494Qn
495Driver Negative(Qy)
496
497Qy
498Driver Negative(Qn)
499
6d721f67
JM
500R
501Driver Joined Separate
502
603349bf
JM
503S
504Driver
505
6d721f67
JM
506T
507Driver Joined Separate
508
509Tbss
510Driver Separate
511
e69d7376
JM
512Tbss=
513Driver Joined
514
6d721f67
JM
515Tdata
516Driver Separate
517
e69d7376
JM
518Tdata=
519Driver Joined
520
6d721f67
JM
521Ttext
522Driver Separate
523
e69d7376
JM
524Ttext=
525Driver Joined
526
903caebf 527W
5de8299c 528Common RejectNegative Warning Alias(Wextra)
a7b2e184 529This switch is deprecated; use -Wextra instead.
903caebf 530
603349bf
JM
531Wa,
532Driver JoinedOrMissing
533
534Wl,
535Driver JoinedOrMissing
536
537Wp,
538Driver JoinedOrMissing
539
e01cc6dc 540Waggregate-return
c662432e 541Common Var(warn_aggregate_return) Warning
a7b2e184 542Warn about returning structures, unions or arrays.
e01cc6dc 543
fbd28bc3
JJ
544Waggressive-loop-optimizations
545Common Var(warn_aggressive_loop_optimizations) Init(1) Warning
a7b2e184 546Warn if a loop with constant number of iterations triggers undefined behavior.
fbd28bc3 547
590b1f2d 548Warray-bounds
21af5cdf 549Common Var(warn_array_bounds) Warning
a7b2e184 550Warn if an array is accessed out of bounds.
590b1f2d 551
de1b5c17
MU
552Warray-bounds=
553Common Joined RejectNegative UInteger Var(warn_array_bounds) Warning
a7b2e184 554Warn if an array is accessed out of bounds.
de1b5c17 555
5c498b10 556Wattributes
c662432e 557Common Var(warn_attributes) Init(1) Warning
a7b2e184 558Warn about inappropriate attribute usage.
5c498b10 559
e01cc6dc 560Wcast-align
c662432e 561Common Var(warn_cast_align) Warning
a7b2e184 562Warn about pointer casts which increase alignment.
e01cc6dc 563
87cf0651
SB
564Wcpp
565Common Var(warn_cpp) Init(1) Warning
a7b2e184 566Warn when a #warning directive is encountered.
87cf0651 567
e01cc6dc 568Wdeprecated-declarations
c662432e 569Common Var(warn_deprecated_decl) Init(1) Warning
a7b2e184 570Warn about uses of __attribute__((deprecated)) declarations.
e01cc6dc
NB
571
572Wdisabled-optimization
c662432e 573Common Var(warn_disabled_optimization) Warning
a7b2e184 574Warn when an optimization pass is disabled.
e01cc6dc
NB
575
576Werror
50431bc4 577Common Var(warnings_are_errors)
a7b2e184 578Treat all warnings as errors.
e01cc6dc 579
79cf5994
DD
580Werror=
581Common Joined
a7b2e184 582Treat specified warning as error.
79cf5994 583
903caebf 584Wextra
62a67c94 585Common Var(extra_warnings) Warning
a7b2e184 586Print extra (possibly unwanted) warnings.
903caebf 587
c65a01af 588Wfatal-errors
50431bc4 589Common Var(flag_fatal_errors)
a7b2e184 590Exit on the first error occurred.
c65a01af 591
a214518f 592Wframe-larger-than=
63bbf46d 593Common RejectNegative Joined UInteger Warning
a7b2e184 594-Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes.
a214518f 595
a3a704a4
MH
596Wfree-nonheap-object
597Common Var(warn_free_nonheap_object) Init(1) Warning
a7b2e184 598Warn when attempting to free a non-heap object.
a3a704a4 599
b2b40051
MJ
600Whsa
601Common Var(warn_hsa) Init(1) Warning
602Warn when a function cannot be expanded to HSAIL.
603
81fea426 604Wimplicit-fallthrough
70f6d5e1
JJ
605Common Alias(Wimplicit-fallthrough=,3,0) Warning
606
607Wimplicit-fallthrough=
608Common Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning
81fea426
MP
609Warn when a switch case falls through.
610
e01cc6dc 611Winline
c662432e 612Common Var(warn_inline) Warning
a7b2e184 613Warn when an inlined function cannot be inlined.
e01cc6dc 614
86951993
AM
615Winvalid-memory-model
616Common Var(warn_invalid_memory_model) Init(1) Warning
617Warn when an atomic memory model parameter is known to be outside the valid range.
618
e01cc6dc 619Wlarger-than-
5de8299c 620Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
e8fc888d
MLI
621
622Wlarger-than=
623Common RejectNegative Joined UInteger Warning
a7b2e184 624-Wlarger-than=<number> Warn if an object is larger than <number> bytes.
e01cc6dc 625
bf14eba2
JJ
626Wnonnull-compare
627Var(warn_nonnull_compare) Warning
628Warn if comparing pointer parameter with nonnull attribute with NULL.
629
76787f70 630Wnull-dereference
c2d89095 631Common Var(warn_null_dereference) Warning
a7b2e184 632Warn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
76787f70 633
f9cc1a70 634Wunsafe-loop-optimizations
c662432e 635Common Var(warn_unsafe_loop_optimizations) Warning
f9cc1a70
PB
636Warn if the loop cannot be optimized due to nontrivial assumptions.
637
e01cc6dc 638Wmissing-noreturn
54d62f51 639Common Warning Alias(Wsuggest-attribute=noreturn)
e01cc6dc 640
c59f7203 641Wodr
a0fd3373 642Common Var(warn_odr_violations) Init(1) Warning
a7b2e184 643Warn about some C++ One Definition Rule violations during link time optimization.
c59f7203 644
71834ad3 645Woverflow
c662432e 646Common Var(warn_overflow) Init(1) Warning
a7b2e184 647Warn about overflow in arithmetic expressions.
71834ad3 648
259d29e3
JH
649Wlto-type-mismatch
650Common Var(warn_lto_type_mismatch) Init(1) Warning
a7b2e184 651During link time optimization warn about mismatched types of global declarations.
259d29e3 652
e01cc6dc 653Wpacked
c662432e 654Common Var(warn_packed) Warning
a7b2e184 655Warn when the packed attribute has no effect on struct layout.
e01cc6dc
NB
656
657Wpadded
c662432e 658Common Var(warn_padded) Warning
a7b2e184 659Warn when padding is required to align structure members.
e01cc6dc 660
c1771a20 661Wpedantic
2b71f4a4 662Common Var(pedantic) Init(0) Warning
a7b2e184 663Issue warnings needed for strict compliance to the standard.
c1771a20 664
b4dfdc11
MG
665Wreturn-local-addr
666Common Var(warn_return_local_addr) Init(1) Warning
667Warn about returning a pointer/reference to a local or temporary variable.
668
e01cc6dc 669Wshadow
c662432e 670Common Var(warn_shadow) Warning
a7b2e184 671Warn when one local variable shadows another.
e01cc6dc 672
7d69de61 673Wstack-protector
c662432e 674Common Var(warn_stack_protect) Warning
a7b2e184 675Warn when not issuing stack smashing protection for some reason.
7d69de61 676
a11e0df4
EB
677Wstack-usage=
678Common Joined RejectNegative UInteger Var(warn_stack_usage) Init(-1) Warning
a7b2e184 679Warn if stack usage might be larger than specified amount.
a11e0df4 680
e01cc6dc 681Wstrict-aliasing
c662432e 682Common Warning
a7b2e184 683Warn about code which might break strict aliasing rules.
e01cc6dc 684
5399d643 685Wstrict-aliasing=
65d4f2cd 686Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
a7b2e184 687Warn about code which might break strict aliasing rules.
5399d643 688
6ac01510 689Wstrict-overflow
21af5cdf 690Common Warning
a7b2e184 691Warn about optimizations that assume that signed overflow is undefined.
6ac01510
ILT
692
693Wstrict-overflow=
65d4f2cd 694Common Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
a7b2e184 695Warn about optimizations that assume that signed overflow is undefined.
6ac01510 696
5dc16b19
MLI
697Wsuggest-attribute=const
698Common Var(warn_suggest_attribute_const) Warning
a7b2e184 699Warn about functions which might be candidates for __attribute__((const)).
5dc16b19
MLI
700
701Wsuggest-attribute=pure
702Common Var(warn_suggest_attribute_pure) Warning
a7b2e184 703Warn about functions which might be candidates for __attribute__((pure)).
5dc16b19 704
7ea6b6cf
JH
705Wsuggest-attribute=noreturn
706Common Var(warn_suggest_attribute_noreturn) Warning
a7b2e184 707Warn about functions which might be candidates for __attribute__((noreturn)).
7ea6b6cf 708
91bc34a9
JH
709Wsuggest-final-types
710Common Var(warn_suggest_final_types) Warning
a7b2e184 711Warn about C++ polymorphic types where adding final keyword would improve code quality.
91bc34a9
JH
712
713Wsuggest-final-methods
714Common Var(warn_suggest_final_methods) Warning
a7b2e184 715Warn about C++ virtual methods where adding final keyword would improve code quality.
91bc34a9 716
a7dc5980
MP
717Wswitch-unreachable
718Common Var(warn_switch_unreachable) Warning Init(1)
719Warn about statements between switch's controlling expression and the first
720case.
721
e01cc6dc 722Wsystem-headers
c662432e 723Common Var(warn_system_headers) Warning
a7b2e184 724Do not suppress warnings from system headers.
e01cc6dc 725
8ffadef9
MG
726Wtrampolines
727Common Var(warn_trampolines) Warning
a7b2e184 728Warn whenever a trampoline is generated.
8ffadef9 729
faebccf9 730Wtype-limits
95744782 731Common Var(warn_type_limits) Warning EnabledBy(Wextra)
a7b2e184 732Warn if a comparison is always true or always false due to the limited range of the data type.
faebccf9 733
e01cc6dc 734Wuninitialized
7d5a5747 735Common Var(warn_uninitialized) Warning EnabledBy(Wextra)
a7b2e184 736Warn about uninitialized automatic variables.
e01cc6dc 737
2f964ad6 738Wmaybe-uninitialized
7d5a5747 739Common Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
a7b2e184 740Warn about maybe uninitialized automatic variables.
2f964ad6 741
e01cc6dc 742Wunreachable-code
f1a62b6f 743Common Ignore Warning
bc3c12a2 744Does nothing. Preserved for backward compatibility.
e01cc6dc 745
903caebf 746Wunused
e73f7547 747Common Var(warn_unused) Init(0) Warning
a7b2e184 748Enable all -Wunused- warnings.
903caebf 749
ebfbbdc5 750Wunused-but-set-parameter
d919140b 751Common Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
a7b2e184 752Warn when a function parameter is only set, otherwise unused.
ebfbbdc5
JJ
753
754Wunused-but-set-variable
7d5a5747 755Common Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
a7b2e184 756Warn when a variable is only set, otherwise unused.
ebfbbdc5 757
e01cc6dc 758Wunused-function
7d5a5747 759Common Var(warn_unused_function) Warning EnabledBy(Wunused)
a7b2e184 760Warn when a function is unused.
e01cc6dc
NB
761
762Wunused-label
7d5a5747 763Common Var(warn_unused_label) Warning EnabledBy(Wunused)
a7b2e184 764Warn when a label is unused.
e01cc6dc
NB
765
766Wunused-parameter
d919140b 767Common Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
a7b2e184 768Warn when a function parameter is unused.
e01cc6dc
NB
769
770Wunused-value
7d5a5747 771Common Var(warn_unused_value) Warning EnabledBy(Wunused)
a7b2e184 772Warn when an expression value is unused.
e01cc6dc
NB
773
774Wunused-variable
7d5a5747 775Common Var(warn_unused_variable) Warning EnabledBy(Wunused)
a7b2e184 776Warn when a variable is unused.
e01cc6dc 777
16c1c158 778Wcoverage-mismatch
650cfcab 779Common Var(warn_coverage_mismatch) Init(1) Warning
a7b2e184 780Warn in case profiles in -fprofile-use do not match.
16c1c158 781
cdbb5ba3
AS
782Wvector-operation-performance
783Common Var(warn_vector_operation_performance) Warning
a7b2e184 784Warn when a vector operation is compiled outside the SIMD.
cdbb5ba3 785
603349bf
JM
786Xassembler
787Driver Separate
788
789Xlinker
790Driver Separate
791
792Xpreprocessor
793Driver Separate
794
dd9f93dc
JM
795Z
796Driver
797
d185d268 798aux-info
d5478783 799Common Separate Var(aux_info_file_name)
a7b2e184 800-aux-info <file> Emit declaration information into <file>.
d185d268
NB
801
802aux-info=
5de8299c 803Common Joined Alias(aux-info)
d185d268
NB
804
805auxbase
d5478783 806Common Separate RejectDriver Var(aux_base_name)
d185d268
NB
807
808auxbase-strip
603349bf
JM
809Common Separate RejectDriver
810
e200444e
JM
811coverage
812Driver
813
603349bf
JM
814c
815Driver
d185d268
NB
816
817d
818Common Joined
a7b2e184 819-d<letters> Enable dumps from specific passes of the compiler.
d185d268
NB
820
821dumpbase
d5478783 822Common Separate Var(dump_base_name)
a7b2e184 823-dumpbase <file> Set the file basename to be used for dumps.
d185d268 824
d7fb0a6d 825dumpdir
d5478783 826Common Separate Var(dump_dir_name)
a7b2e184 827-dumpdir <dir> Set the directory name to be used for dumps.
d7fb0a6d 828
603349bf
JM
829dumpmachine
830Driver
831
832dumpspecs
833Driver
834
835dumpversion
836Driver
837
e200444e
JM
838e
839Driver Joined Separate
840
fa381cb2
JM
841; This option has historically been passed down to the linker by an
842; accident of a %{e*} spec, so ensure it continues to be passed down
843; as a single option. The supported option for this purpose is
844; -rdynamic. See PR 47390.
845export-dynamic
846Driver Undocumented
847
31b66477
KC
848; The version of the C++ ABI in use. The following values are allowed:
849;
850; 0: The version of the ABI believed most conformant with the C++ ABI
851; specification. This ABI may change as bugs are discovered and fixed.
852; Therefore, 0 will not necessarily indicate the same ABI in different
853; versions of G++.
854;
90d84934 855; 1: The version of the ABI first used in G++ 3.2. No longer selectable.
31b66477 856;
785f21af
JM
857; 2: The version of the ABI first used in G++ 3.4, and the default
858; until GCC 4.9.
abfe01ce
JM
859;
860; 3: The version of the ABI that fixes the missing underscore
861; in template non-type arguments of pointer type.
862;
863; 4: The version of the ABI that introduces unambiguous mangling of
55af847f 864; vector types. First selectable in G++ 4.5.
99a8d35b 865;
67e18edb 866; 5: The version of the ABI that ignores attribute const/noreturn
55af847f 867; in function pointer mangling, and corrects mangling of decltype and
67e18edb 868; function parameters used in other parameters and the return type.
55af847f 869; First selectable in G++ 4.6.
67e18edb 870;
4b6aaa99
JM
871; 6: The version of the ABI that doesn't promote scoped enums to int and
872; changes the mangling of template argument packs, const/static_cast,
873; prefix ++ and --, and a class scope function used as a template
874; argument.
967444bb
JM
875; First selectable in G++ 4.7.
876;
622aac0b
JM
877; 7: The version of the ABI that treats nullptr_t as a builtin type and
878; corrects the mangling of lambdas in default argument scope.
a3ddb738 879; First selectable in G++ 4.8.
0861bec8
JM
880;
881; 8: The version of the ABI that corrects the substitution behavior of
882; function types with function-cv-qualifiers.
603eaec4
JM
883; First selectable in G++ 4.9 and default in G++ 5.
884;
a03c9bf1
JM
885; 9: The version of the ABI that corrects the alignment of nullptr_t.
886; First selectable and default in G++ 5.2.
887;
888; 10: The version of the ABI that mangles attributes that affect type
889; identity, such as ia32 calling convention attributes (stdcall, etc.)
890; Default in G++ 6 (set in c_common_post_options).
0861bec8 891;
34bbc4c5
JM
892; 11: The version of the ABI that corrects mangling of sizeof... expressions.
893; Default in G++ 7.
894;
31b66477
KC
895; Additional positive integers will be assigned as new versions of
896; the ABI become the default version of the ABI.
57782ad8 897fabi-version=
ca0e51a0 898Common Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
a7b2e184 899The version of the C++ ABI in use.
57782ad8 900
6e616110 901faggressive-loop-optimizations
a7b2e184
MS
902Common Report Var(flag_aggressive_loop_optimizations) Optimization Init(1)
903Aggressively optimize loops using language constraints.
6e616110 904
6ff3a151 905falign-functions
ab442df7 906Common Report Var(align_functions,0) Optimization UInteger
a7b2e184 907Align the start of functions.
6ff3a151 908
058de654 909falign-functions=
d5478783 910Common RejectNegative Joined UInteger Var(align_functions)
058de654 911
6ff3a151 912falign-jumps
ab442df7 913Common Report Var(align_jumps,0) Optimization UInteger
a7b2e184 914Align labels which are only reached by jumping.
6ff3a151 915
058de654 916falign-jumps=
d5478783 917Common RejectNegative Joined UInteger Var(align_jumps)
058de654 918
6ff3a151 919falign-labels
ab442df7 920Common Report Var(align_labels,0) Optimization UInteger
a7b2e184 921Align all labels.
6ff3a151 922
058de654 923falign-labels=
d5478783 924Common RejectNegative Joined UInteger Var(align_labels)
058de654 925
6ff3a151 926falign-loops
3020190e 927Common Report Var(align_loops,0) Optimization UInteger
a7b2e184 928Align the start of loops.
6ff3a151 929
058de654 930falign-loops=
d5478783 931Common RejectNegative Joined UInteger Var(align_loops)
058de654 932
6ff3a151 933fargument-alias
2d2bd949 934Common Ignore
0d3c82d6 935Does nothing. Preserved for backward compatibility.
6ff3a151
NB
936
937fargument-noalias
2d2bd949 938Common Ignore
0d3c82d6 939Does nothing. Preserved for backward compatibility.
6ff3a151
NB
940
941fargument-noalias-global
2d2bd949 942Common Ignore
0d3c82d6 943Does nothing. Preserved for backward compatibility.
6ff3a151 944
0698a1d2 945fargument-noalias-anything
2d2bd949 946Common Ignore
0d3c82d6 947Does nothing. Preserved for backward compatibility.
0698a1d2 948
de5a5fa1
MP
949fsanitize=
950Common Driver Report Joined
a7b2e184 951Select what to sanitize.
32b4b7f5 952
fd960af2
YG
953fasan-shadow-offset=
954Common Joined RejectNegative Var(common_deferred_options) Defer
955-fasan-shadow-offset=<number> Use custom shadow memory offset.
956
18af8d16
YG
957fsanitize-sections=
958Common Joined RejectNegative Var(common_deferred_options) Defer
959-fsanitize-sections=<sec1,sec2,...> Sanitize global variables
960in user-defined sections.
961
d95a2703
JJ
962fsanitize-recover=
963Common Report Joined
a7b2e184 964After diagnosing undefined behavior attempt to continue execution.
1c33c9b7 965
d95a2703
JJ
966fsanitize-recover
967Common Report
a7b2e184 968This switch is deprecated; use -fsanitize-recover= instead.
d95a2703 969
1c33c9b7 970fsanitize-undefined-trap-on-error
0115b91d 971Common Driver Report Var(flag_sanitize_undefined_trap_on_error) Init(0)
a7b2e184 972Use trap instead of a library function for undefined behavior sanitization.
1c33c9b7 973
6ff3a151 974fasynchronous-unwind-tables
c662432e 975Common Report Var(flag_asynchronous_unwind_tables) Optimization
a7b2e184 976Generate unwind tables that are exact at each instruction boundary.
6ff3a151 977
6fb5fa3c 978fauto-inc-dec
b16650ac 979Common Report Var(flag_auto_inc_dec) Init(1) Optimization
a7b2e184 980Generate auto-inc/dec instructions.
6fb5fa3c 981
be3c16c4 982fauto-profile
b16650ac 983Common Report Var(flag_auto_profile)
be3c16c4
DC
984Use sample profile information for call graph node weights. The default
985profile file is fbdata.afdo in 'pwd'.
986
987fauto-profile=
988Common Joined RejectNegative Var(auto_profile_file)
989Use sample profile information for call graph node weights. The profile
990file is specified in the argument.
991
31b66477
KC
992; -fcheck-bounds causes gcc to generate array bounds checks.
993; For C, C++ and ObjC: defaults off.
994; For Java: defaults to on.
995; For Fortran: defaults to off.
6ff3a151 996fbounds-check
50431bc4 997Common Report Var(flag_bounds_check)
a7b2e184 998Generate code to check bounds before indexing arrays.
6ff3a151
NB
999
1000fbranch-count-reg
14379e66 1001Common Report Var(flag_branch_on_count_reg) Optimization
a7b2e184 1002Replace add, compare, branch with branch on count register.
6ff3a151
NB
1003
1004fbranch-probabilities
c662432e 1005Common Report Var(flag_branch_probabilities) Optimization
a7b2e184 1006Use profiling information for branch probabilities.
6ff3a151 1007
de32c0cb 1008fbranch-target-load-optimize
c662432e 1009Common Report Var(flag_branch_target_load_optimize) Optimization
a7b2e184 1010Perform branch target load optimization before prologue / epilogue threading.
de32c0cb
NB
1011
1012fbranch-target-load-optimize2
c662432e 1013Common Report Var(flag_branch_target_load_optimize2) Optimization
a7b2e184 1014Perform branch target load optimization after prologue / epilogue threading.
de32c0cb 1015
1194fc79 1016fbtr-bb-exclusive
c662432e 1017Common Report Var(flag_btr_bb_exclusive) Optimization
a7b2e184 1018Restrict target load migration not to re-use registers in any basic block.
1194fc79 1019
058de654 1020fcall-saved-
21bf1558 1021Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1022-fcall-saved-<register> Mark <register> as being preserved across functions.
058de654
NB
1023
1024fcall-used-
21bf1558 1025Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1026-fcall-used-<register> Mark <register> as being corrupted by function calls.
058de654 1027
31b66477
KC
1028; Nonzero for -fcaller-saves: allocate values in regs that need to
1029; be saved across function calls, if that produces overall better code.
1030; Optional now, so people can test it.
de32c0cb 1031fcaller-saves
c662432e 1032Common Report Var(flag_caller_saves) Optimization
a7b2e184 1033Save registers around function calls.
de32c0cb 1034
3d8864c0
SP
1035fcheck-data-deps
1036Common Report Var(flag_check_data_deps)
49b8fe6c 1037This switch is deprecated; do not use.
3d8864c0 1038
2284b034
MG
1039fcheck-new
1040Common Var(flag_check_new)
a7b2e184 1041Check the return value of new in C++.
2284b034 1042
6d27d749 1043fchecking
b06f87c7 1044Common Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0)
6d27d749
RB
1045Perform internal consistency checkings.
1046
7db11a5a
JJ
1047fchecking=
1048Common Joined RejectNegative UInteger Var(flag_checking)
1049Perform internal consistency checkings.
1050
37ccb0ba
SB
1051fcode-hoisting
1052Common Report Var(flag_code_hoisting) Optimization
1053Enable code hoisting.
1054
ccaeeafe
NC
1055fcombine-stack-adjustments
1056Common Report Var(flag_combine_stack_adjustments) Optimization
1057Looks for opportunities to reduce stack adjustments and stack references.
1058
6ff3a151 1059fcommon
b16650ac 1060Common Report Var(flag_no_common,0)
a7b2e184 1061Do not put uninitialized globals in the common section.
6ff3a151 1062
603349bf
JM
1063fcompare-debug
1064Driver
1065; Converted by the driver to -fcompare-debug= options.
1066
2153915d 1067fcompare-debug=
603349bf 1068Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
a7b2e184 1069-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump.
2153915d
AO
1070
1071fcompare-debug-second
5e471ea6 1072Common Driver RejectNegative Var(flag_compare_debug)
a7b2e184 1073Run only the second compilation of -fcompare-debug.
2153915d 1074
e692f276
RH
1075fcompare-elim
1076Common Report Var(flag_compare_elim_after_reload) Optimization
a7b2e184 1077Perform comparison elimination after register allocation has finished.
e692f276 1078
b5b8b0ac
AO
1079fconserve-stack
1080Common Var(flag_conserve_stack) Optimization
a7b2e184 1081Do not perform optimizations increasing noticeably stack usage.
b5b8b0ac 1082
6ff3a151 1083fcprop-registers
c662432e 1084Common Report Var(flag_cprop_registers) Optimization
a7b2e184 1085Perform a register copy-propagation optimization pass.
6ff3a151 1086
de32c0cb 1087fcrossjumping
c662432e 1088Common Report Var(flag_crossjumping) Optimization
a7b2e184 1089Perform cross-jumping optimization.
de32c0cb
NB
1090
1091fcse-follow-jumps
c662432e 1092Common Report Var(flag_cse_follow_jumps) Optimization
a7b2e184 1093When running CSE, follow jumps to their targets.
de32c0cb
NB
1094
1095fcse-skip-blocks
2d2bd949 1096Common Ignore
5f39ad47 1097Does nothing. Preserved for backward compatibility.
de32c0cb 1098
c7463669 1099fcx-limited-range
5e46b0c6 1100Common Report Var(flag_cx_limited_range) Optimization SetByCombined
a7b2e184 1101Omit range reduction step when performing complex division.
c7463669 1102
35085f76
JB
1103fcx-fortran-rules
1104Common Report Var(flag_cx_fortran_rules) Optimization
a7b2e184 1105Complex multiplication and division follow Fortran rules.
35085f76 1106
6ff3a151 1107fdata-sections
b16650ac 1108Common Report Var(flag_data_sections)
a7b2e184 1109Place data items into their own section.
6ff3a151 1110
0a090f42 1111fdbg-cnt-list
299404a1 1112Common Report Var(common_deferred_options) Defer
0a090f42
SP
1113List all available debugging counters with their limits and counts.
1114
6fb5fa3c 1115fdbg-cnt=
299404a1 1116Common RejectNegative Joined Var(common_deferred_options) Defer
a7b2e184 1117-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
6fb5fa3c 1118
c8aea42c 1119fdebug-prefix-map=
299404a1 1120Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1121Map one directory name to another in debug information.
c8aea42c 1122
76f9db36 1123fdebug-types-section
98095aa3 1124Common Report Var(flag_debug_types_section) Init(0)
76f9db36
JJ
1125Output .debug_types section when using DWARF v4 debuginfo.
1126
31b66477
KC
1127; Nonzero for -fdefer-pop: don't pop args after each function call
1128; instead save them up to pop many calls' args with one insns.
de32c0cb 1129fdefer-pop
c662432e 1130Common Report Var(flag_defer_pop) Optimization
a7b2e184 1131Defer popping functions args from stack until later.
de32c0cb
NB
1132
1133fdelayed-branch
c662432e 1134Common Report Var(flag_delayed_branch) Optimization
a7b2e184 1135Attempt to fill delay slots of branch instructions.
de32c0cb 1136
2da02156 1137fdelete-dead-exceptions
b16650ac 1138Common Report Var(flag_delete_dead_exceptions) Init(0) Optimization
a7b2e184 1139Delete dead instructions that may throw exceptions.
2da02156 1140
de32c0cb 1141fdelete-null-pointer-checks
467d8d51 1142Common Report Var(flag_delete_null_pointer_checks) Init(-1) Optimization
a7b2e184 1143Delete useless null pointer checks.
de32c0cb 1144
1e29e4d3
JH
1145fdevirtualize-at-ltrans
1146Common Report Var(flag_ltrans_devirtualize)
a7b2e184 1147Stream extra data to support more aggressive devirtualization in LTO local transformation mode.
1e29e4d3 1148
bbc9396b
JH
1149fdevirtualize-speculatively
1150Common Report Var(flag_devirtualize_speculatively) Optimization
a7b2e184 1151Perform speculative devirtualization.
bbc9396b 1152
ca1eedf6
JH
1153fdevirtualize
1154Common Report Var(flag_devirtualize) Optimization
1155Try to convert virtual calls to direct ones.
1156
de32c0cb 1157fdiagnostics-show-location=
e6d4b984 1158Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
a7b2e184 1159-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics.
de32c0cb 1160
e6d4b984
JM
1161; Required for these enum values.
1162SourceInclude
1163pretty-print.h
1164
1165Enum
1166Name(diagnostic_prefixing_rule) Type(int)
1167
1168EnumValue
1169Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
1170
1171EnumValue
1172Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
1173
9fec0042
MLI
1174fdiagnostics-show-caret
1175Common Var(flag_diagnostics_show_caret) Init(1)
a7b2e184 1176Show the source line with a caret indicating the column.
9fec0042 1177
4b84d650
JJ
1178fdiagnostics-color
1179Common Alias(fdiagnostics-color=,always,never)
1180;
1181
1182fdiagnostics-color=
97aa8bb6 1183Driver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
a7b2e184 1184-fdiagnostics-color=[never|always|auto] Colorize diagnostics.
4b84d650
JJ
1185
1186; Required for these enum values.
1187SourceInclude
1188diagnostic-color.h
1189
1190Enum
1191Name(diagnostic_color_rule) Type(int)
1192
1193EnumValue
1194Enum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
1195
1196EnumValue
1197Enum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
1198
1199EnumValue
1200Enum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
1201
a93eac6a
DM
1202fdiagnostics-parseable-fixits
1203Common Var(flag_diagnostics_parseable_fixits)
1204Print fixit hints in machine-readable form.
1205
717ebe91
DM
1206fdiagnostics-generate-patch
1207Common Var(flag_diagnostics_generate_patch)
1208Print fix-it hints to stderr in unified diff format.
1209
ccf08a6e 1210fdiagnostics-show-option
c7d0de89 1211Common Var(flag_diagnostics_show_option) Init(1)
a7b2e184 1212Amend appropriate diagnostic messages with the command line option that controls them.
ccf08a6e 1213
226c52aa
XDL
1214fdisable-
1215Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1216-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass.
226c52aa
XDL
1217
1218fenable-
1219Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1220-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass.
226c52aa 1221
6de9cd9a 1222fdump-
21bf1558 1223Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1224-fdump-<type> Dump various compiler internals to a file.
6de9cd9a 1225
d1583032
JM
1226fdump-final-insns
1227Driver RejectNegative
1228
2153915d
AO
1229fdump-final-insns=
1230Common RejectNegative Joined Var(flag_dump_final_insns)
a7b2e184 1231-fdump-final-insns=filename Dump to filename the insns at the end of translation.
2153915d 1232
c6a13190
ILT
1233fdump-go-spec=
1234Common RejectNegative Joined Var(flag_dump_go_spec)
a7b2e184 1235-fdump-go-spec=filename Write all declarations to file as Go code.
c6a13190 1236
24a7799e
R
1237fdump-noaddr
1238Common Report Var(flag_dump_noaddr)
a7b2e184 1239Suppress output of addresses in debugging dumps.
24a7799e 1240
dc10fd96
JJ
1241freport-bug
1242Common Driver Var(flag_report_bug)
1243Collect and dump debug information into temporary file if ICE in C/C++
1244compiler occured.
1245
ba4ad400
DM
1246fdump-internal-locations
1247Common Var(flag_dump_locations) Init(0)
a7b2e184 1248Dump detailed information on GCC's internal representation of source code locations.
ba4ad400 1249
deced1e2
XDL
1250fdump-passes
1251Common Var(flag_dump_passes) Init(0)
a7b2e184 1252Dump optimization passes.
deced1e2 1253
6ff3a151 1254fdump-unnumbered
e90afde6 1255Common Report Var(flag_dump_unnumbered)
a7b2e184 1256Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
6ff3a151 1257
2aa7c49b 1258fdump-unnumbered-links
e90afde6 1259Common Report Var(flag_dump_unnumbered_links)
a7b2e184 1260Suppress output of previous and next insn numbers in debugging dumps.
2aa7c49b 1261
b5b8b0ac
AO
1262fdwarf2-cfi-asm
1263Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1264Enable CFI tables via GAS assembler directives.
1265
355866de 1266fearly-inlining
c662432e 1267Common Report Var(flag_early_inlining) Init(1) Optimization
a7b2e184 1268Perform early inlining.
355866de 1269
de32c0cb 1270feliminate-dwarf2-dups
50431bc4 1271Common Report Var(flag_eliminate_dwarf2_dups)
a1a3812d 1272Perform DWARF duplicate elimination.
de32c0cb 1273
07ffa034
MJ
1274fipa-sra
1275Common Report Var(flag_ipa_sra) Init(0) Optimization
a7b2e184 1276Perform interprocedural reduction of aggregates.
07ffa034 1277
6a08f7b3 1278feliminate-unused-debug-symbols
50431bc4 1279Common Report Var(flag_debug_only_used_symbols)
a7b2e184 1280Perform unused symbol elimination in debug info.
6a08f7b3 1281
de32c0cb 1282feliminate-unused-debug-types
50431bc4 1283Common Report Var(flag_eliminate_unused_debug_types) Init(1)
a7b2e184 1284Perform unused type elimination in debug info.
de32c0cb 1285
e713adf6 1286femit-class-debug-always
eae8e474 1287Common Report Var(flag_emit_class_debug_always) Init(0)
e713adf6
CD
1288Do not suppress C++ class debug information.
1289
6ff3a151 1290fexceptions
c662432e 1291Common Report Var(flag_exceptions) Optimization
a7b2e184 1292Enable exception handling.
6ff3a151 1293
de32c0cb 1294fexpensive-optimizations
c662432e 1295Common Report Var(flag_expensive_optimizations) Optimization
a7b2e184 1296Perform a number of minor, expensive optimizations.
de32c0cb 1297
8ce94e44 1298fexcess-precision=
e6d4b984 1299Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT)
a7b2e184 1300-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision.
8ce94e44 1301
e6d4b984
JM
1302Enum
1303Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1304
1305EnumValue
1306Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1307
1308EnumValue
1309Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1310
058de654 1311ffast-math
bfd67b47 1312Common Optimization
058de654 1313
cc8547a7 1314ffat-lto-objects
e9f67e62 1315Common Var(flag_fat_lto_objects)
cc8547a7
AK
1316Output lto objects containing both the intermediate language and binary output.
1317
6ff3a151 1318ffinite-math-only
5e46b0c6 1319Common Report Var(flag_finite_math_only) Optimization SetByCombined
a7b2e184 1320Assume no NaNs or infinities are generated.
6ff3a151 1321
058de654 1322ffixed-
21bf1558 1323Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1324-ffixed-<register> Mark <register> as being unavailable to the compiler.
058de654 1325
de32c0cb 1326ffloat-store
c662432e 1327Common Report Var(flag_float_store) Optimization
a7b2e184 1328Don't allocate floats and doubles in extended-precision registers.
de32c0cb
NB
1329
1330fforce-addr
2d2bd949 1331Common Ignore
3de5e93a 1332Does nothing. Preserved for backward compatibility.
de32c0cb 1333
2ca2b607
SB
1334fforward-propagate
1335Common Report Var(flag_forward_propagate) Optimization
a7b2e184 1336Perform a forward propagation pass on RTL.
a52b023a 1337
16949072 1338ffp-contract=
bea30e0d 1339Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
16949072
RG
1340-ffp-contract=[off|on|fast] Perform floating-point expression contraction.
1341
e6d4b984
JM
1342Enum
1343Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1344
1345EnumValue
1346Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1347
1348; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1349EnumValue
1350Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1351
1352EnumValue
1353Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1354
0d2f700f
JM
1355ffp-int-builtin-inexact
1356Common Report Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1357Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1358
31b66477
KC
1359; Nonzero means don't put addresses of constant functions in registers.
1360; Used for compiling the Unix kernel, where strange substitutions are
1361; done on the assembly output.
de32c0cb 1362ffunction-cse
b16650ac 1363Common Report Var(flag_no_function_cse,0) Optimization
a7b2e184 1364Allow function addresses to be held in registers.
de32c0cb 1365
6ff3a151 1366ffunction-sections
50431bc4 1367Common Report Var(flag_function_sections)
a7b2e184 1368Place each function into its own section.
6ff3a151 1369
de32c0cb 1370fgcse
c662432e 1371Common Report Var(flag_gcse) Optimization
a7b2e184 1372Perform global common subexpression elimination.
de32c0cb
NB
1373
1374fgcse-lm
c662432e 1375Common Report Var(flag_gcse_lm) Init(1) Optimization
a7b2e184 1376Perform enhanced load motion during global common subexpression elimination.
de32c0cb
NB
1377
1378fgcse-sm
c662432e 1379Common Report Var(flag_gcse_sm) Init(0) Optimization
a7b2e184 1380Perform store motion after global common subexpression elimination.
de32c0cb 1381
f5f2e3cd 1382fgcse-las
c662432e 1383Common Report Var(flag_gcse_las) Init(0) Optimization
f9957958 1384Perform redundant load after store elimination in global common subexpression
a7b2e184 1385elimination.
f9957958
MH
1386
1387fgcse-after-reload
c662432e 1388Common Report Var(flag_gcse_after_reload) Optimization
a7b2e184
MS
1389Perform global common subexpression elimination after register allocation has
1390finished.
f5f2e3cd 1391
6592d14b
PMR
1392Enum
1393Name(dwarf_gnat_encodings) Type(int)
1394
1395EnumValue
1396Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1397
1398EnumValue
1399Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1400
1401EnumValue
1402Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1403
1404fgnat-encodings=
1405Common Enum(dwarf_gnat_encodings) Joined RejectNegative Report Undocumented Var(gnat_encodings)
1406-fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information
1407
d0a58904 1408; This option is not documented yet as its semantics will change.
f8bf9252 1409fgraphite
ff6a32a9 1410Common Report Var(flag_graphite) Optimization
a7b2e184 1411Enable in and out of Graphite representation.
f8bf9252 1412
204b560f
SP
1413fgraphite-identity
1414Common Report Var(flag_graphite_identity) Optimization
a7b2e184 1415Enable Graphite Identity transformation.
204b560f 1416
372a6eb8
BS
1417fhoist-adjacent-loads
1418Common Report Var(flag_hoist_adjacent_loads) Optimization
1419Enable hoisting adjacent loads to encourage generating conditional move
a7b2e184 1420instructions.
372a6eb8 1421
1a218fc9
ILT
1422fkeep-gc-roots-live
1423Common Undocumented Report Var(flag_keep_gc_roots_live) Optimization
1424; Always keep a pointer to a live memory block
1425
3cf0e270
SP
1426floop-parallelize-all
1427Common Report Var(flag_loop_parallelize_all) Optimization
a7b2e184 1428Mark all loops as parallel.
204b560f 1429
f8bf9252 1430floop-strip-mine
d6bb5ccf 1431Common Alias(floop-nest-optimize)
a7b2e184 1432Enable loop nest transforms. Same as -floop-nest-optimize.
f8bf9252
SP
1433
1434floop-interchange
d6bb5ccf 1435Common Alias(floop-nest-optimize)
a7b2e184 1436Enable loop nest transforms. Same as -floop-nest-optimize.
f8bf9252
SP
1437
1438floop-block
d6bb5ccf 1439Common Alias(floop-nest-optimize)
a7b2e184 1440Enable loop nest transforms. Same as -floop-nest-optimize.
f8bf9252 1441
20d3465b 1442floop-unroll-and-jam
a5e5ea0c 1443Common Alias(floop-nest-optimize)
a7b2e184
MS
1444Enable loop nest transforms. Same as -floop-nest-optimize.
1445
0a35513e
AH
1446fgnu-tm
1447Common Report Var(flag_tm)
a7b2e184 1448Enable support for GNU transactional memory.
0a35513e 1449
da34ade5
JM
1450fgnu-unique
1451Common Report Var(flag_gnu_unique) Init(1)
a7b2e184 1452Use STB_GNU_UNIQUE if supported by the assembler.
da34ade5 1453
98af4c9f 1454floop-flatten
093193be
MK
1455Common Ignore
1456Does nothing. Preserved for backward compatibility.
98af4c9f 1457
b60cc080 1458floop-nest-optimize
84c36240 1459Common Report Var(flag_loop_nest_optimize) Optimization
e357a5e0 1460Enable the loop nest optimizer.
b60cc080 1461
6a78b724 1462fstrict-volatile-bitfields
b16650ac 1463Common Report Var(flag_strict_volatile_bitfields) Init(-1) Optimization
a7b2e184 1464Force bitfield accesses to match their type width.
6a78b724 1465
6ff3a151 1466fguess-branch-probability
c662432e 1467Common Report Var(flag_guess_branch_prob) Optimization
a7b2e184 1468Enable guessing of branch probabilities.
6ff3a151 1469
31b66477
KC
1470; Nonzero means ignore `#ident' directives. 0 means handle them.
1471; Generate position-independent code for executables if possible
1472; On SVR4 targets, it also controls whether or not to emit a
1473; string identifying the compiler.
6ff3a151 1474fident
50431bc4 1475Common Report Var(flag_no_ident,0)
a7b2e184 1476Process #ident directives.
6ff3a151 1477
de32c0cb 1478fif-conversion
c662432e 1479Common Report Var(flag_if_conversion) Optimization
a7b2e184 1480Perform conversion of conditional jumps to branchless equivalents.
de32c0cb
NB
1481
1482fif-conversion2
c662432e 1483Common Report Var(flag_if_conversion2) Optimization
a7b2e184 1484Perform conversion of conditional jumps to conditional execution.
de32c0cb 1485
87e2a8fd 1486fstack-reuse=
082908e3 1487Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
87e2a8fd
XDL
1488-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
1489
1490Enum
1491Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1492
1493EnumValue
1494Enum(stack_reuse_level) String(all) Value(SR_ALL)
1495
1496EnumValue
1497Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1498
1499EnumValue
1500Enum(stack_reuse_level) String(none) Value(SR_NONE)
1501
384a5197
SP
1502ftree-loop-if-convert
1503Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
a7b2e184 1504Convert conditional jumps in innermost loops to branchless equivalents.
384a5197 1505
bd544141
SP
1506ftree-loop-if-convert-stores
1507Common Report Var(flag_tree_loop_if_convert_stores) Optimization
a7b2e184 1508Also if-convert conditional jumps containing memory writes.
bd544141 1509
31b66477
KC
1510; -finhibit-size-directive inhibits output of .size for ELF.
1511; This is used only for compiling crtstuff.c,
1512; and it may be extended to other effects
1513; needed for crtstuff.c on other systems.
6ff3a151 1514finhibit-size-directive
50431bc4 1515Common Report Var(flag_inhibit_size_directive)
a7b2e184 1516Do not generate .size directives.
6ff3a151 1517
3e293154 1518findirect-inlining
2bf86c84 1519Common Report Var(flag_indirect_inlining) Optimization
a7b2e184 1520Perform indirect inlining.
3e293154 1521
99ea07f8
RG
1522; General flag to enable inlining. Specifying -fno-inline will disable
1523; all inlining apart from always-inline functions.
de32c0cb 1524finline
0f042bc5 1525Common Report Var(flag_no_inline,0) Init(0) Optimization
a7b2e184 1526Enable inlining of function declared \"inline\", disabling disables all inlining.
de32c0cb 1527
4d4b8cb9
JH
1528finline-small-functions
1529Common Report Var(flag_inline_small_functions) Optimization
a7b2e184 1530Integrate functions into their callers when code size is known not to grow.
4d4b8cb9 1531
de32c0cb 1532finline-functions
c662432e 1533Common Report Var(flag_inline_functions) Optimization
a7b2e184 1534Integrate functions not declared \"inline\" into their callers when profitable.
de32c0cb 1535
355866de 1536finline-functions-called-once
fb37c1de 1537Common Report Var(flag_inline_functions_called_once) Optimization
a7b2e184 1538Integrate functions only required by their single caller.
d63db217 1539
d302c9d6 1540finline-limit-
5de8299c 1541Common RejectNegative Joined Alias(finline-limit=)
d302c9d6
NB
1542
1543finline-limit=
1544Common RejectNegative Joined UInteger
a7b2e184 1545-finline-limit=<number> Limit the size of inlined functions to <number>.
d302c9d6 1546
86951993
AM
1547finline-atomics
1548Common Report Var(flag_inline_atomics) Init(1) Optimization
1549Inline __atomic operations when a lock free instruction sequence is available.
1550
6ff3a151 1551finstrument-functions
50431bc4 1552Common Report Var(flag_instrument_function_entry_exit)
a7b2e184 1553Instrument function entry and exit with profiling calls.
6ff3a151 1554
8d5a7d1f
ILT
1555finstrument-functions-exclude-function-list=
1556Common RejectNegative Joined
a7b2e184 1557-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions.
8d5a7d1f
ILT
1558
1559finstrument-functions-exclude-file-list=
1560Common RejectNegative Joined
a7b2e184 1561-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files.
8d5a7d1f 1562
d6e14e8f 1563fipa-cp
c662432e 1564Common Report Var(flag_ipa_cp) Optimization
a7b2e184 1565Perform interprocedural constant propagation.
d6e14e8f 1566
5e45130d
JH
1567fipa-cp-clone
1568Common Report Var(flag_ipa_cp_clone) Optimization
a7b2e184 1569Perform cloning to make Interprocedural constant propagation stronger.
5e45130d 1570
3c99176a
L
1571fipa-cp-alignment
1572Common Report Var(flag_ipa_cp_alignment) Optimization
a7b2e184 1573Perform alignment discovery and propagation to make Interprocedural constant propagation stronger.
3c99176a 1574
209ca542
PK
1575fipa-bit-cp
1576Common Report Var(flag_ipa_bit_cp) Optimization
1577Perform interprocedural bitwise constant propagation.
1578
e65bb9be
JH
1579fipa-profile
1580Common Report Var(flag_ipa_profile) Init(0) Optimization
a7b2e184 1581Perform interprocedural profile propagation.
ea900239 1582
4cf4d6a3 1583fipa-pta
c662432e 1584Common Report Var(flag_ipa_pta) Init(0) Optimization
a7b2e184 1585Perform interprocedural points-to analysis.
4cf4d6a3 1586
e65bb9be
JH
1587fipa-pure-const
1588Common Report Var(flag_ipa_pure_const) Init(0) Optimization
a7b2e184 1589Discover pure and const functions.
e65bb9be 1590
b84d4347
ML
1591fipa-icf
1592Common Report Var(flag_ipa_icf) Optimization
a7b2e184 1593Perform Identical Code Folding for functions and read-only variables.
b84d4347
ML
1594
1595fipa-icf-functions
1596Common Report Var(flag_ipa_icf_functions) Optimization
a7b2e184 1597Perform Identical Code Folding for functions.
b84d4347
ML
1598
1599fipa-icf-variables
b16650ac 1600Common Report Var(flag_ipa_icf_variables)
a7b2e184 1601Perform Identical Code Folding for variables.
b84d4347 1602
ea900239 1603fipa-reference
c662432e 1604Common Report Var(flag_ipa_reference) Init(0) Optimization
a7b2e184 1605Discover readonly and non addressable static variables.
ea900239 1606
43d861a5 1607fipa-matrix-reorg
04f92ff4
RG
1608Common Ignore
1609Does nothing. Preserved for backward compatibility.
43d861a5 1610
e1dc98b2 1611fipa-struct-reorg
b8beb4d1
RG
1612Common Ignore
1613Does nothing. Preserved for backward compatibility.
e1dc98b2 1614
8bc5448f
KV
1615fipa-vrp
1616Common Report Var(flag_ipa_vrp) Optimization
1617Perform IPA Value Range Propagation.
1618
058e97ec 1619fira-algorithm=
b16650ac 1620Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
a7b2e184 1621-fira-algorithm=[CB|priority] Set the used IRA algorithm.
7db7ed3c 1622
e6d4b984
JM
1623Enum
1624Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1625
1626EnumValue
1627Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1628
1629EnumValue
1630Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1631
7db7ed3c 1632fira-region=
b16650ac 1633Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT) Optimization
a7b2e184 1634-fira-region=[one|all|mixed] Set regions for IRA.
058e97ec 1635
e6d4b984
JM
1636Enum
1637Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1638
1639EnumValue
1640Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1641
1642EnumValue
1643Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1644
1645EnumValue
1646Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1647
b11f0116
BC
1648fira-hoist-pressure
1649Common Report Var(flag_ira_hoist_pressure) Init(1) Optimization
1650Use IRA based register pressure calculation
1651in RTL hoist optimizations.
1652
1833192f 1653fira-loop-pressure
f3d83ffe 1654Common Report Var(flag_ira_loop_pressure) Optimization
1833192f
VM
1655Use IRA based register pressure calculation
1656in RTL loop optimizations.
1657
058e97ec 1658fira-share-save-slots
b16650ac 1659Common Report Var(flag_ira_share_save_slots) Init(1) Optimization
058e97ec
VM
1660Share slots for saving different hard registers.
1661
1662fira-share-spill-slots
b16650ac 1663Common Report Var(flag_ira_share_spill_slots) Init(1) Optimization
058e97ec
VM
1664Share stack slots for spilled pseudo-registers.
1665
1666fira-verbose=
5498f011 1667Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
f94e1d66 1668-fira-verbose=<number> Control IRA's level of diagnostic messages.
058e97ec 1669
8b11a64c 1670fivopts
c662432e 1671Common Report Var(flag_ivopts) Init(1) Optimization
a7b2e184 1672Optimize induction variables on trees.
8b11a64c 1673
82c0180d 1674fjump-tables
c662432e 1675Common Var(flag_jump_tables) Init(1) Optimization
a7b2e184 1676Use jump tables for sufficiently large switch statements.
82c0180d 1677
de32c0cb 1678fkeep-inline-functions
50431bc4 1679Common Report Var(flag_keep_inline_functions)
a7b2e184 1680Generate code for functions even if they are fully inlined.
de32c0cb 1681
787da5fd
JV
1682fkeep-static-functions
1683Common Report Var(flag_keep_static_functions)
a7b2e184 1684Generate code for static functions even if they are never called.
787da5fd 1685
de32c0cb 1686fkeep-static-consts
50431bc4 1687Common Report Var(flag_keep_static_consts) Init(1)
a7b2e184 1688Emit static const variables even if they are not used.
de32c0cb 1689
6ff3a151 1690fleading-underscore
50431bc4 1691Common Report Var(flag_leading_underscore) Init(-1)
a7b2e184 1692Give external symbols a leading underscore.
6ff3a151 1693
efa1cdf0 1694floop-optimize
2d2bd949 1695Common Ignore
c0220ea4 1696Does nothing. Preserved for backward compatibility.
efa1cdf0 1697
d9cf932c
VM
1698flra-remat
1699Common Report Var(flag_lra_remat) Optimization
a7b2e184 1700Do CFG-sensitive rematerialization in LRA.
d9cf932c 1701
d7f09764 1702flto
014d92e1 1703Common
d7f09764
DN
1704Enable link-time optimization.
1705
014d92e1
JH
1706flto=
1707Common RejectNegative Joined Var(flag_lto)
1708Link-time optimization with number of parallel jobs or jobserver.
1709
783dab6b
RB
1710Enum
1711Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
852e4bd2 1712
783dab6b
RB
1713EnumValue
1714Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
852e4bd2 1715
783dab6b
RB
1716EnumValue
1717Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
1718
1719EnumValue
1720Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
1721
1722EnumValue
1723Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
1724
1725EnumValue
1726Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
c3c445e1 1727
783dab6b
RB
1728flto-partition=
1729Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
a7b2e184 1730Specify the algorithm to partition symbols and vars at linktime.
014d92e1 1731
d7f09764
DN
1732; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1733flto-compression-level=
fcfbd84e 1734Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
a7b2e184 1735-flto-compression-level=<number> Use zlib compression level <number> for IL.
d7f09764 1736
1ee85ee1
JH
1737flto-odr-type-merging
1738Common Report Var(flag_lto_odr_type_mering) Init(1)
a7b2e184 1739Merge C++ types using One Definition Rule.
1ee85ee1 1740
d7f09764 1741flto-report
1d67dde8 1742Common Report Var(flag_lto_report) Init(0)
a7b2e184 1743Report various link-time optimization statistics.
d7f09764 1744
057f8f20
AK
1745flto-report-wpa
1746Common Report Var(flag_lto_report_wpa) Init(0)
a7b2e184 1747Report various link-time optimization statistics for WPA only.
057f8f20 1748
6ff3a151 1749fmath-errno
5e46b0c6 1750Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined
a7b2e184 1751Set errno after built-in math functions.
6ff3a151 1752
3a789837
NF
1753fmax-errors=
1754Common Joined RejectNegative UInteger Var(flag_max_errors)
a7b2e184 1755-fmax-errors=<number> Maximum number of errors to report.
3a789837 1756
6ff3a151 1757fmem-report
50431bc4 1758Common Report Var(mem_report)
a7b2e184 1759Report on permanent memory allocation.
6ff3a151 1760
b3e44629
AK
1761fmem-report-wpa
1762Common Report Var(mem_report_wpa)
a7b2e184 1763Report on permanent memory allocation in WPA only.
b3e44629 1764
31b66477
KC
1765; This will attempt to merge constant section constants, if 1 only
1766; string constants and constants from constant pool, if 2 also constant
1767; variables.
6ff3a151 1768fmerge-all-constants
0a7246ee 1769Common Report Var(flag_merge_constants,2) Init(1)
a7b2e184 1770Attempt to merge identical constants and constant variables.
6ff3a151
NB
1771
1772fmerge-constants
0a7246ee 1773Common Report Var(flag_merge_constants,1)
a7b2e184 1774Attempt to merge identical constants across compilation units.
6ff3a151 1775
28a08168
ILT
1776fmerge-debug-strings
1777Common Report Var(flag_merge_debug_strings) Init(1)
a7b2e184 1778Attempt to merge identical debug strings across compilation units.
28a08168 1779
de32c0cb
NB
1780fmessage-length=
1781Common RejectNegative Joined UInteger
a7b2e184 1782-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping.
de32c0cb 1783
e5626198 1784fmodulo-sched
c662432e 1785Common Report Var(flag_modulo_sched) Optimization
a7b2e184 1786Perform SMS based modulo scheduling before the first scheduling pass.
e5626198 1787
517d76fa 1788fmodulo-sched-allow-regmoves
b16650ac 1789Common Report Var(flag_modulo_sched_allow_regmoves) Optimization
a7b2e184 1790Perform SMS based modulo scheduling with register moves allowed.
517d76fa 1791
5e962776 1792fmove-loop-invariants
14379e66 1793Common Report Var(flag_move_loop_invariants) Optimization
a7b2e184 1794Move loop invariant computations out of loops.
5e962776 1795
6fb5fa3c 1796fdce
6ae4be32 1797Common Var(flag_dce) Init(1) Optimization
a7b2e184 1798Use the RTL dead code elimination pass.
6fb5fa3c
DB
1799
1800fdse
6ae4be32 1801Common Var(flag_dse) Init(1) Optimization
a7b2e184 1802Use the RTL dead store elimination pass.
6fb5fa3c 1803
d72372e4 1804freschedule-modulo-scheduled-loops
c662432e 1805Common Report Var(flag_resched_modulo_sched) Optimization
a7b2e184 1806Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
d72372e4 1807
6ff3a151 1808fnon-call-exceptions
c662432e 1809Common Report Var(flag_non_call_exceptions) Optimization
a7b2e184 1810Support synchronous non-call exceptions.
6ff3a151 1811
c713ddc0
BS
1812foffload=
1813Common Driver Joined MissingArgError(options or targets missing after %qs)
a7b2e184 1814-foffload=<targets>=<options> Specify offloading targets and options for them.
c713ddc0
BS
1815
1816foffload-abi=
1817Common Joined RejectNegative Enum(offload_abi) Var(flag_offload_abi) Init(OFFLOAD_ABI_UNSET)
a7b2e184 1818-foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler.
c713ddc0
BS
1819
1820Enum
1821Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
1822
1823EnumValue
1824Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
1825
1826EnumValue
1827Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
1828
de32c0cb 1829fomit-frame-pointer
c662432e 1830Common Report Var(flag_omit_frame_pointer) Optimization
a7b2e184 1831When possible do not generate stack frames.
de32c0cb 1832
78c60e3d
SS
1833fopt-info
1834Common Report Var(flag_opt_info) Optimization
a7b2e184 1835Enable all optimization info dumps on stderr.
78c60e3d
SS
1836
1837fopt-info-
1838Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1839-fopt-info[-<type>=filename] Dump compiler optimization details.
78c60e3d 1840
6ff3a151 1841foptimize-register-move
3b6d1699
VM
1842Common Ignore
1843Does nothing. Preserved for backward compatibility.
6ff3a151 1844
de32c0cb 1845foptimize-sibling-calls
c662432e 1846Common Report Var(flag_optimize_sibling_calls) Optimization
a7b2e184 1847Optimize sibling and tail recursive calls.
de32c0cb 1848
3e485f62 1849fpartial-inlining
b16650ac 1850Common Report Var(flag_partial_inlining) Optimization
a7b2e184 1851Perform partial inlining.
3e485f62 1852
a5573239
JH
1853fpre-ipa-mem-report
1854Common Report Var(pre_ipa_mem_report)
a7b2e184 1855Report on memory allocation before interprocedural optimization.
a5573239
JH
1856
1857fpost-ipa-mem-report
1858Common Report Var(post_ipa_mem_report)
a7b2e184 1859Report on memory allocation before interprocedural optimization.
a5573239 1860
6ff3a151 1861fpack-struct
c662432e 1862Common Report Var(flag_pack_struct) Optimization
a7b2e184 1863Pack structure members together without holes.
6ff3a151 1864
467cecf3 1865fpack-struct=
c662432e 1866Common RejectNegative Joined UInteger Optimization
a7b2e184 1867-fpack-struct=<number> Set initial maximum structure member alignment.
467cecf3 1868
de32c0cb 1869fpcc-struct-return
5498f011 1870Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
a7b2e184 1871Return small aggregates in memory, not registers.
de32c0cb
NB
1872
1873fpeel-loops
c662432e 1874Common Report Var(flag_peel_loops) Optimization
a7b2e184 1875Perform loop peeling.
de32c0cb
NB
1876
1877fpeephole
c662432e 1878Common Report Var(flag_no_peephole,0) Optimization
a7b2e184 1879Enable machine specific peephole optimizations.
de32c0cb 1880
6ff3a151 1881fpeephole2
c662432e 1882Common Report Var(flag_peephole2) Optimization
a7b2e184 1883Enable an RTL peephole pass before sched2.
6ff3a151 1884
31b66477 1885fPIC
b57e6e18 1886Common Report Var(flag_pic,2) Negative(fPIE) Init(-1)
a7b2e184 1887Generate position-independent code if possible (large mode).
31b66477
KC
1888
1889fPIE
428b3812 1890Common Report Var(flag_pie,2) Negative(fpic) Init(-1)
a7b2e184 1891Generate position-independent code for executables if possible (large mode).
31b66477 1892
6ff3a151 1893fpic
b57e6e18 1894Common Report Var(flag_pic,1) Negative(fpie) Init(-1)
a7b2e184 1895Generate position-independent code if possible (small mode).
6ff3a151
NB
1896
1897fpie
428b3812 1898Common Report Var(flag_pie,1) Negative(fPIC) Init(-1)
a7b2e184 1899Generate position-independent code for executables if possible (small mode).
6ff3a151 1900
b91fd3c7
AM
1901fplt
1902Common Report Var(flag_plt) Init(1) Optimization
a7b2e184 1903Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
b91fd3c7 1904
68a607d8 1905fplugin=
21bf1558 1906Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1907Specify a plugin to load.
68a607d8
DN
1908
1909fplugin-arg-
21bf1558 1910Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1911-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>.
68a607d8 1912
bbc8a8dc 1913fpredictive-commoning
6ae4be32 1914Common Report Var(flag_predictive_commoning) Optimization
bbc8a8dc
ZD
1915Run predictive commoning optimization.
1916
de32c0cb 1917fprefetch-loop-arrays
1fbb509a 1918Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
a7b2e184 1919Generate prefetch instructions, if available, for arrays in loops.
de32c0cb 1920
6ff3a151 1921fprofile
50431bc4 1922Common Report Var(profile_flag)
a7b2e184 1923Enable basic program profiling code.
6ff3a151
NB
1924
1925fprofile-arcs
50431bc4 1926Common Report Var(profile_arc_flag)
a7b2e184 1927Insert arc-based program profiling code.
6ff3a151 1928
2f908293 1929fprofile-dir=
0576d21f 1930Common Joined RejectNegative Var(profile_data_prefix)
2f908293
SP
1931Set the top-level directory for storing the profile data.
1932The default is 'pwd'.
1933
52c76998
PY
1934fprofile-correction
1935Common Report Var(flag_profile_correction)
a7b2e184 1936Enable correction of flow inconsistent profile data input.
52c76998 1937
22063dbc
ML
1938fprofile-update=
1939Common Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
1940-fprofile-update=[single|atomic] Set the profile update method.
1941
1942Enum
1943Name(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
1944
1945EnumValue
1946Enum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
1947
1948EnumValue
1949Enum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
1950
a8a5f53a
JH
1951fprofile-generate
1952Common
a7b2e184 1953Enable common options for generating profile info for profile feedback directed optimizations.
a8a5f53a 1954
2f908293
SP
1955fprofile-generate=
1956Common Joined RejectNegative
a7b2e184 1957Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
2f908293 1958
a8a5f53a 1959fprofile-use
2f908293 1960Common Var(flag_profile_use)
a7b2e184 1961Enable common options for performing profile feedback directed optimizations.
a8a5f53a 1962
2f908293
SP
1963fprofile-use=
1964Common Joined RejectNegative
a7b2e184 1965Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
2f908293 1966
fca9dc00 1967fprofile-values
50431bc4 1968Common Report Var(flag_profile_values)
a7b2e184 1969Insert code to profile values of expressions.
fca9dc00 1970
37e5402b
JH
1971fprofile-report
1972Common Report Var(profile_report)
a7b2e184 1973Report on consistency of profile.
37e5402b 1974
9cec31f4
ML
1975fprofile-reorder-functions
1976Common Report Var(flag_profile_reorder_functions)
a7b2e184 1977Enable function reordering that improves code placement.
9cec31f4 1978
de32c0cb 1979frandom-seed
299404a1 1980Common Var(common_deferred_options) Defer
de32c0cb
NB
1981
1982frandom-seed=
299404a1 1983Common Joined RejectNegative Var(common_deferred_options) Defer
4bfede85 1984-frandom-seed=<string> Make compile reproducible using <string>.
de32c0cb 1985
e0d9d0dd
NC
1986; This switch causes the command line that was used to create an
1987; object file to be recorded into the object file. The exact format
1988; of this recording is target and binary file format dependent.
1989; It is related to the -fverbose-asm switch, but that switch only
1990; records information in the assembler output file as comments, so
1991; they never reach the object file.
1992frecord-gcc-switches
1993Common Report Var(flag_record_gcc_switches)
1994Record gcc command line switches in the object file.
1995
de32c0cb 1996freg-struct-return
f0036cca 1997Common Report Var(flag_pcc_struct_return,0) Optimization
a7b2e184 1998Return small aggregates in registers.
de32c0cb 1999
6ff3a151 2000fregmove
3b6d1699
VM
2001Common Ignore
2002Does nothing. Preserved for backward compatibility.
6ff3a151 2003
f522930c 2004flifetime-dse
a021961c 2005Common Report Var(flag_lifetime_dse,2) Init(2) Optimization
f522930c
JM
2006Tell DSE that the storage for a C++ object is dead when the constructor
2007starts and when the destructor finishes.
2008
a021961c
JM
2009flifetime-dse=
2010Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization
2011
f20f2613
VM
2012flive-range-shrinkage
2013Common Report Var(flag_live_range_shrinkage) Init(0) Optimization
a7b2e184 2014Relief of register pressure through live range shrinkage.
f20f2613 2015
6ff3a151 2016frename-registers
c662432e 2017Common Report Var(flag_rename_registers) Init(2) Optimization
a7b2e184 2018Perform a register renaming optimization pass.
6ff3a151 2019
b16abbcb
BC
2020fschedule-fusion
2021Common Report Var(flag_schedule_fusion) Init(2) Optimization
a7b2e184 2022Perform a target dependent instruction fusion optimization pass.
b16abbcb 2023
6ff3a151 2024freorder-blocks
c662432e 2025Common Report Var(flag_reorder_blocks) Optimization
a7b2e184 2026Reorder basic blocks to improve code placement.
6ff3a151 2027
59faab7c
SB
2028freorder-blocks-algorithm=
2029Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
a7b2e184 2030-freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
59faab7c
SB
2031
2032Enum
2033Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2034
2035EnumValue
2036Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2037
2038EnumValue
2039Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
2040
750054a2 2041freorder-blocks-and-partition
c662432e 2042Common Report Var(flag_reorder_blocks_and_partition) Optimization
a7b2e184 2043Reorder basic blocks and partition into hot and cold sections.
750054a2 2044
6ff3a151 2045freorder-functions
c662432e 2046Common Report Var(flag_reorder_functions) Optimization
a7b2e184 2047Reorder functions to improve code placement.
6ff3a151 2048
de32c0cb 2049frerun-cse-after-loop
3020190e 2050Common Report Var(flag_rerun_cse_after_loop) Optimization
a7b2e184 2051Add a common subexpression elimination pass after loop optimizations.
de32c0cb 2052
efa1cdf0 2053frerun-loop-opt
2d2bd949 2054Common Ignore
c0220ea4 2055Does nothing. Preserved for backward compatibility.
efa1cdf0 2056
039c3d42 2057frounding-math
5e46b0c6 2058Common Report Var(flag_rounding_math) Optimization SetByCombined
a7b2e184 2059Disable optimizations that assume default FP rounding behavior.
039c3d42 2060
6ff3a151 2061fsched-interblock
c662432e 2062Common Report Var(flag_schedule_interblock) Init(1) Optimization
a7b2e184 2063Enable scheduling across basic blocks.
6ff3a151 2064
ce18efcb
VM
2065fsched-pressure
2066Common Report Var(flag_sched_pressure) Init(0) Optimization
a7b2e184 2067Enable register pressure sensitive insn scheduling.
ce18efcb 2068
6ff3a151 2069fsched-spec
c662432e 2070Common Report Var(flag_schedule_speculative) Init(1) Optimization
a7b2e184 2071Allow speculative motion of non-loads.
6ff3a151
NB
2072
2073fsched-spec-load
c662432e 2074Common Report Var(flag_schedule_speculative_load) Optimization
a7b2e184 2075Allow speculative motion of some loads.
6ff3a151
NB
2076
2077fsched-spec-load-dangerous
c662432e 2078Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
a7b2e184 2079Allow speculative motion of more loads.
6ff3a151 2080
de32c0cb 2081fsched-verbose=
4111f1c9 2082Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
a7b2e184 2083-fsched-verbose=<number> Set the verbosity level of the scheduler.
de32c0cb 2084
6ff3a151 2085fsched2-use-superblocks
c662432e 2086Common Report Var(flag_sched2_use_superblocks) Optimization
a7b2e184 2087If scheduling post reload, do superblock scheduling.
6ff3a151
NB
2088
2089fsched2-use-traces
2d2bd949 2090Common Ignore
57257f0d 2091Does nothing. Preserved for backward compatibility.
6ff3a151 2092
de32c0cb 2093fschedule-insns
c662432e 2094Common Report Var(flag_schedule_insns) Optimization
a7b2e184 2095Reschedule instructions before register allocation.
de32c0cb
NB
2096
2097fschedule-insns2
c662432e 2098Common Report Var(flag_schedule_insns_after_reload) Optimization
a7b2e184 2099Reschedule instructions after register allocation.
de32c0cb 2100
e855c69d
AB
2101; This flag should be on when a target implements non-trivial
2102; scheduling hooks, maybe saving some information for its own sake.
a7b2e184 2103; On IA64, for example, this is used for correct bundling.
e855c69d
AB
2104fselective-scheduling
2105Common Report Var(flag_selective_scheduling) Optimization
a7b2e184 2106Schedule instructions using selective scheduling algorithm.
e855c69d
AB
2107
2108fselective-scheduling2
a7b2e184
MS
2109Common Report Var(flag_selective_scheduling2) Optimization
2110Run selective scheduling after reload.
e855c69d 2111
d9b950dd
DM
2112fself-test
2113Common Undocumented Var(flag_self_test)
2114Run self-tests.
2115
e855c69d
AB
2116fsel-sched-pipelining
2117Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
a7b2e184 2118Perform software pipelining of inner loops during selective scheduling.
e855c69d
AB
2119
2120fsel-sched-pipelining-outer-loops
2121Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
a7b2e184 2122Perform software pipelining of outer loops during selective scheduling.
e855c69d
AB
2123
2124fsel-sched-reschedule-pipelined
2125Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
a7b2e184 2126Reschedule pipelined regions without pipelining.
e855c69d 2127
e288a46c
JH
2128fsemantic-interposition
2129Common Report Var(flag_semantic_interposition) Init(1)
a7b2e184 2130Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
e288a46c 2131
31b66477
KC
2132; sched_stalled_insns means that insns can be moved prematurely from the queue
2133; of stalled insns into the ready list.
569fa502 2134fsched-stalled-insns
ab442df7 2135Common Report Var(flag_sched_stalled_insns) Optimization UInteger
a7b2e184 2136Allow premature scheduling of queued insns.
569fa502
DN
2137
2138fsched-stalled-insns=
b16650ac 2139Common RejectNegative Joined UInteger Optimization
a7b2e184 2140-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled.
569fa502 2141
31b66477
KC
2142; sched_stalled_insns_dep controls how many recently scheduled cycles will
2143; be examined for a dependency on a stalled insn that is candidate for
2144; premature removal from the queue of stalled insns into the ready list (has
2145; an effect only if the flag 'sched_stalled_insns' is set).
569fa502 2146fsched-stalled-insns-dep
ab442df7 2147Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
a7b2e184 2148Set dependence distance checking in premature scheduling of queued insns.
569fa502
DN
2149
2150fsched-stalled-insns-dep=
b16650ac 2151Common RejectNegative Joined UInteger Optimization
a7b2e184 2152-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns.
569fa502 2153
ee4764a8
GS
2154fsched-group-heuristic
2155Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
a7b2e184 2156Enable the group heuristic in the scheduler.
ee4764a8
GS
2157
2158fsched-critical-path-heuristic
2159Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
a7b2e184 2160Enable the critical path heuristic in the scheduler.
ee4764a8
GS
2161
2162fsched-spec-insn-heuristic
2163Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
a7b2e184 2164Enable the speculative instruction heuristic in the scheduler.
ee4764a8 2165
ee4764a8
GS
2166fsched-rank-heuristic
2167Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
a7b2e184 2168Enable the rank heuristic in the scheduler.
ee4764a8
GS
2169
2170fsched-last-insn-heuristic
2171Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
a7b2e184 2172Enable the last instruction heuristic in the scheduler.
ee4764a8
GS
2173
2174fsched-dep-count-heuristic
2175Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
a7b2e184 2176Enable the dependent count heuristic in the scheduler.
ee4764a8 2177
aacd3885 2178fsection-anchors
c662432e 2179Common Report Var(flag_section_anchors) Optimization
a7b2e184 2180Access data in the same section from shared anchor points.
aacd3885 2181
8cd37d0b 2182fsee
2d2bd949 2183Common Ignore
8393a9c8 2184Does nothing. Preserved for backward compatibility.
8cd37d0b 2185
87a0ebfd 2186fzee
26cd9add
EI
2187Common Ignore
2188Does nothing. Preserved for backward compatibility.
2189
2190free
2191Common Report Var(flag_ree) Init(0)
2192Turn on Redundant Extensions Elimination pass.
87a0ebfd 2193
8abb6b22 2194fshow-column
1cb42611 2195Common Report Var(flag_show_column) Init(1)
a7b2e184 2196Show column numbers in diagnostics, when available. Default on.
8abb6b22 2197
484db665
BS
2198fshrink-wrap
2199Common Report Var(flag_shrink_wrap) Optimization
2200Emit function prologues only before parts of the function that need it,
2201rather than at the top of the function.
2202
20a6ece0
SB
2203fshrink-wrap-separate
2204Common Report Var(flag_shrink_wrap_separate) Init(1) Optimization
2205Shrink-wrap parts of the prologue and epilogue separately.
2206
6ff3a151 2207fsignaling-nans
5e46b0c6 2208Common Report Var(flag_signaling_nans) Optimization SetByCombined
a7b2e184 2209Disable optimizations observable by IEEE signaling NaNs.
6ff3a151 2210
db02da79 2211fsigned-zeros
5e46b0c6 2212Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined
a7b2e184 2213Disable floating point optimizations that ignore the IEEE signedness of zero.
db02da79 2214
6ff3a151 2215fsingle-precision-constant
c662432e 2216Common Report Var(flag_single_precision_constant) Optimization
a7b2e184 2217Convert floating point constants to single precision constants.
6ff3a151 2218
113d659a 2219fsplit-ivs-in-unroller
c662432e 2220Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
a7b2e184 2221Split lifetimes of induction variables when loops are unrolled.
113d659a 2222
7458026b
ILT
2223fsplit-stack
2224Common Report Var(flag_split_stack) Init(-1)
a7b2e184 2225Generate discontiguous stack frames.
7458026b 2226
e53a16e7 2227fsplit-wide-types
21af5cdf 2228Common Report Var(flag_split_wide_types) Optimization
a7b2e184 2229Split wide types into independent registers.
e53a16e7 2230
6a75d560
RS
2231fssa-backprop
2232Common Report Var(flag_ssa_backprop) Init(1) Optimization
2233Enable backward propagation of use properties at the SSA level.
2234
68f6df73
RB
2235fssa-phiopt
2236Common Report Var(flag_ssa_phiopt) Optimization
a7b2e184 2237Optimize conditional patterns using SSA PHI nodes.
68f6df73 2238
98ce9490
TV
2239fstdarg-opt
2240Common Report Var(flag_stdarg_opt) Init(1) Optimization
a7b2e184 2241Optimize amount of stdarg registers saved to stack at start of function.
98ce9490 2242
f37a4f14 2243fvariable-expansion-in-unroller
c662432e 2244Common Report Var(flag_variable_expansion_in_unroller) Optimization
a7b2e184 2245Apply variable expansion when loops are unrolled.
f37a4f14 2246
b38f3813
EB
2247fstack-check=
2248Common Report RejectNegative Joined
a7b2e184 2249-fstack-check=[no|generic|specific] Insert stack checking code into the program.
b38f3813 2250
6ff3a151 2251fstack-check
5de8299c 2252Common Alias(fstack-check=, specific, no)
a7b2e184 2253Insert stack checking code into the program. Same as -fstack-check=specific.
6ff3a151 2254
de32c0cb 2255fstack-limit
21bf1558 2256Common Var(common_deferred_options) Defer
de32c0cb 2257
058de654 2258fstack-limit-register=
21bf1558 2259Common RejectNegative Joined Var(common_deferred_options) Defer
a7b2e184 2260-fstack-limit-register=<register> Trap if the stack goes past <register>.
058de654
NB
2261
2262fstack-limit-symbol=
21bf1558 2263Common RejectNegative Joined Var(common_deferred_options) Defer
a7b2e184 2264-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.
058de654 2265
7d69de61 2266fstack-protector
5c846a81 2267Common Report Var(flag_stack_protect, 1) Init(-1) Optimization
a7b2e184 2268Use propolice as a stack protection method.
7d69de61
RH
2269
2270fstack-protector-all
5c846a81 2271Common Report RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
a7b2e184 2272Use a stack protection method for every function.
7d69de61 2273
f6bc1c4a 2274fstack-protector-strong
5c846a81 2275Common Report RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
a7b2e184 2276Use a smart stack protection method for certain functions.
f6bc1c4a 2277
5434dc07 2278fstack-protector-explicit
5c846a81 2279Common Report RejectNegative Var(flag_stack_protect, 4) Optimization
a7b2e184 2280Use stack protection method only for functions with the stack_protect attribute.
5434dc07 2281
d3c12306
EB
2282fstack-usage
2283Common RejectNegative Var(flag_stack_usage)
a7b2e184 2284Output stack usage information on a per-function basis.
d3c12306 2285
de32c0cb 2286fstrength-reduce
2d2bd949 2287Common Ignore
c0220ea4 2288Does nothing. Preserved for backward compatibility.
de32c0cb 2289
31b66477
KC
2290; Nonzero if we should do (language-dependent) alias analysis.
2291; Typically, this analysis will assume that expressions of certain
2292; types do not alias expressions of certain other types. Only used
2293; if alias analysis (in general) is enabled.
6ff3a151 2294fstrict-aliasing
c662432e 2295Common Report Var(flag_strict_aliasing) Optimization
a7b2e184 2296Assume strict aliasing rules apply.
6ff3a151 2297
eeef0e45 2298fstrict-overflow
b16650ac 2299Common Report Var(flag_strict_overflow) Optimization
a7b2e184 2300Treat signed overflow as undefined.
eeef0e45 2301
e8053cf5
RH
2302fsync-libcalls
2303Common Report Var(flag_sync_libcalls) Init(1)
a7b2e184 2304Implement __atomic operations via libcalls to legacy __sync functions.
e8053cf5 2305
de32c0cb 2306fsyntax-only
50431bc4 2307Common Report Var(flag_syntax_only)
a7b2e184 2308Check for syntax errors, then stop.
de32c0cb 2309
6ff3a151 2310ftest-coverage
50431bc4 2311Common Report Var(flag_test_coverage)
a7b2e184 2312Create data files needed by \"gcov\".
6ff3a151 2313
de32c0cb 2314fthread-jumps
c662432e 2315Common Report Var(flag_thread_jumps) Optimization
a7b2e184 2316Perform jump threading optimizations.
de32c0cb 2317
6ff3a151 2318ftime-report
50431bc4 2319Common Report Var(time_report)
a7b2e184 2320Report the time taken by each compiler pass.
6ff3a151 2321
8df06bd0
RB
2322ftime-report-details
2323Common Report Var(time_report_details)
2324Record times taken by sub-phases separately.
2325
058de654 2326ftls-model=
e6d4b984 2327Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
a7b2e184 2328-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model.
058de654 2329
e6d4b984
JM
2330Enum
2331Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2332
2333EnumValue
2334Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2335
2336EnumValue
2337Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2338
2339EnumValue
2340Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2341
2342EnumValue
2343Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2344
474eccc6 2345ftoplevel-reorder
b16650ac 2346Common Report Var(flag_toplevel_reorder) Init(2)
a7b2e184 2347Reorder top level functions, variables, and asms.
474eccc6 2348
de32c0cb 2349ftracer
b16650ac 2350Common Report Var(flag_tracer) Optimization
a7b2e184 2351Perform superblock formation via tail duplication.
de32c0cb 2352
31b66477
KC
2353; Zero means that floating-point math operations cannot generate a
2354; (user-visible) trap. This is the case, for example, in nonstop
2355; IEEE 754 arithmetic.
6ff3a151 2356ftrapping-math
5e46b0c6 2357Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined
a7b2e184 2358Assume floating-point operations can trap.
6ff3a151
NB
2359
2360ftrapv
c662432e 2361Common Report Var(flag_trapv) Optimization
a7b2e184 2362Trap for signed overflow in addition, subtraction and multiplication.
6ff3a151 2363
6de9cd9a 2364ftree-ccp
c662432e 2365Common Report Var(flag_tree_ccp) Optimization
a7b2e184 2366Enable SSA-CCP optimization on trees.
6de9cd9a 2367
0b4b14ac
RG
2368ftree-bit-ccp
2369Common Report Var(flag_tree_bit_ccp) Optimization
a7b2e184 2370Enable SSA-BIT-CCP optimization on trees.
0b4b14ac 2371
0bca51f0 2372ftree-store-ccp
2d2bd949 2373Common Ignore
dce2b2f6 2374Does nothing. Preserved for backward compatibility.
0bca51f0 2375
6de9cd9a 2376ftree-ch
c662432e 2377Common Report Var(flag_tree_ch) Optimization
a7b2e184 2378Enable loop header copying on trees.
6de9cd9a 2379
21d01365 2380ftree-coalesce-inlined-vars
1f9ceff1
AO
2381Common Ignore RejectNegative
2382Does nothing. Preserved for backward compatibility.
21d01365
AO
2383
2384ftree-coalesce-vars
1f9ceff1 2385Common Report Var(flag_tree_coalesce_vars) Optimization
a7b2e184 2386Enable SSA coalescing of user variables.
21d01365 2387
6de9cd9a 2388ftree-copyrename
1f9ceff1
AO
2389Common Ignore
2390Does nothing. Preserved for backward compatibility.
6de9cd9a 2391
0bca51f0 2392ftree-copy-prop
c662432e 2393Common Report Var(flag_tree_copy_prop) Optimization
a7b2e184 2394Enable copy propagation on trees.
0bca51f0
DN
2395
2396ftree-store-copy-prop
2d2bd949 2397Common Ignore
e9033855 2398Does nothing. Preserved for backward compatibility.
0bca51f0 2399
a5828d1e
MM
2400ftree-cselim
2401Common Report Var(flag_tree_cselim) Init(2) Optimization
a7b2e184 2402Transform condition stores into unconditional ones.
a5828d1e 2403
b6e99746
MJ
2404ftree-switch-conversion
2405Common Report Var(flag_tree_switch_conversion) Optimization
2406Perform conversions of switch initializations.
2407
6de9cd9a 2408ftree-dce
c662432e 2409Common Report Var(flag_tree_dce) Optimization
a7b2e184 2410Enable SSA dead code elimination optimization on trees.
6de9cd9a
DN
2411
2412ftree-dominator-opts
c662432e 2413Common Report Var(flag_tree_dom) Optimization
a7b2e184 2414Enable dominator optimizations.
6de9cd9a 2415
c9e93168
TV
2416ftree-tail-merge
2417Common Report Var(flag_tree_tail_merge) Optimization
a7b2e184 2418Enable tail merging on trees.
c9e93168 2419
6de9cd9a 2420ftree-dse
c662432e 2421Common Report Var(flag_tree_dse) Optimization
a7b2e184 2422Enable dead store elimination.
6de9cd9a 2423
248fc9f3
RG
2424ftree-forwprop
2425Common Report Var(flag_tree_forwprop) Init(1) Optimization
a7b2e184 2426Enable forward propagation on trees.
248fc9f3 2427
ff2ad0f7 2428ftree-fre
c662432e 2429Common Report Var(flag_tree_fre) Optimization
a7b2e184 2430Enable Full Redundancy Elimination (FRE) on trees.
ff2ad0f7 2431
8b57bfeb
JJ
2432foptimize-strlen
2433Common Report Var(flag_optimize_strlen) Optimization
a7b2e184 2434Enable string length optimizations on trees.
8b57bfeb 2435
ae93744d
JL
2436fisolate-erroneous-paths-dereference
2437Common Report Var(flag_isolate_erroneous_paths_dereference) Optimization
408e8aa4
SL
2438Detect paths that trigger erroneous or undefined behavior due to
2439dereferencing a null pointer. Isolate those paths from the main control
2440flow and turn the statement with erroneous or undefined behavior into a trap.
ae93744d
JL
2441
2442fisolate-erroneous-paths-attribute
2443Common Report Var(flag_isolate_erroneous_paths_attribute) Optimization
408e8aa4
SL
2444Detect paths that trigger erroneous or undefined behavior due a null value
2445being used in a way forbidden by a returns_nonnull or nonnull
ae93744d 2446attribute. Isolate those paths from the main control flow and turn the
a7b2e184 2447statement with erroneous or undefined behavior into a trap.
8fdc414d 2448
dea61d92 2449ftree-loop-distribution
53ed2f0e 2450Common Report Var(flag_tree_loop_distribution) Optimization
a7b2e184 2451Enable loop distribution on trees.
dea61d92 2452
20769d5e
SP
2453ftree-loop-distribute-patterns
2454Common Report Var(flag_tree_loop_distribute_patterns) Optimization
a7b2e184 2455Enable loop distribution for patterns transformed into a library call.
20769d5e 2456
1b08d87d 2457ftree-loop-im
c662432e 2458Common Report Var(flag_tree_loop_im) Init(1) Optimization
a7b2e184 2459Enable loop invariant motion on trees.
a7e5372d 2460
599eabdb 2461ftree-loop-linear
d6bb5ccf 2462Common Alias(floop-nest-optimize)
a7b2e184 2463Enable loop nest transforms. Same as -floop-nest-optimize.
599eabdb 2464
1b08d87d 2465ftree-loop-ivcanon
c662432e 2466Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
a7b2e184 2467Create canonical induction variables in loops.
1b08d87d 2468
c66b6c66 2469ftree-loop-optimize
c662432e 2470Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
a7b2e184 2471Enable loop optimizations on tree level.
c66b6c66 2472
5f40b3cb 2473ftree-parallelize-loops=
b16650ac 2474Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
a7b2e184 2475Enable automatic parallelization of loops.
5f40b3cb 2476
248fc9f3
RG
2477ftree-phiprop
2478Common Report Var(flag_tree_phiprop) Init(1) Optimization
2479Enable hoisting loads from conditional pointers.
2480
6de9cd9a 2481ftree-pre
c662432e 2482Common Report Var(flag_tree_pre) Optimization
a7b2e184 2483Enable SSA-PRE optimization on trees.
6de9cd9a 2484
fa06ad0d
JR
2485ftree-partial-pre
2486Common Report Var(flag_tree_partial_pre) Optimization
a7b2e184 2487In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
fa06ad0d 2488
248fc9f3 2489ftree-pta
14379e66 2490Common Report Var(flag_tree_pta) Optimization
248fc9f3
RG
2491Perform function-local points-to analysis on trees.
2492
13c59415
UB
2493ftree-reassoc
2494Common Report Var(flag_tree_reassoc) Init(1) Optimization
a7b2e184 2495Enable reassociation on tree level.
13c59415 2496
c75ab022 2497ftree-salias
2d2bd949 2498Common Ignore
1353232d 2499Does nothing. Preserved for backward compatibility.
c75ab022 2500
fa555252 2501ftree-sink
c662432e 2502Common Report Var(flag_tree_sink) Optimization
a7b2e184 2503Enable SSA code sinking on trees.
fa555252 2504
75cfe445
BS
2505ftree-slsr
2506Common Report Var(flag_tree_slsr) Optimization
a7b2e184 2507Perform straight-line strength reduction.
75cfe445 2508
6de9cd9a 2509ftree-sra
c662432e 2510Common Report Var(flag_tree_sra) Optimization
a7b2e184 2511Perform scalar replacement of aggregates.
6de9cd9a
DN
2512
2513ftree-ter
3020190e 2514Common Report Var(flag_tree_ter) Optimization
a7b2e184 2515Replace temporary expressions in the SSA->normal pass.
6de9cd9a 2516
c662432e
NC
2517ftree-lrs
2518Common Report Var(flag_tree_live_range_split) Optimization
a7b2e184 2519Perform live range splitting during the SSA->normal pass.
c662432e 2520
0bca51f0 2521ftree-vrp
c662432e 2522Common Report Var(flag_tree_vrp) Init(0) Optimization
a7b2e184 2523Perform Value Range Propagation on trees.
0bca51f0 2524
8fe17e23
AA
2525fsplit-paths
2526Common Report Var(flag_split_paths) Init(0) Optimization
2527Split paths leading to loop backedges.
2528
71017a7b
AL
2529funconstrained-commons
2530Common Var(flag_unconstrained_commons) Optimization
2531Assume common declarations may be overridden with ones with a larger
2532trailing array.
2533
de32c0cb 2534funit-at-a-time
b16650ac 2535Common Report Var(flag_unit_at_a_time) Init(1)
a7b2e184 2536Compile whole compilation unit at a time.
de32c0cb
NB
2537
2538funroll-loops
c662432e 2539Common Report Var(flag_unroll_loops) Optimization
a7b2e184 2540Perform loop unrolling when iteration count is known.
de32c0cb
NB
2541
2542funroll-all-loops
c662432e 2543Common Report Var(flag_unroll_all_loops) Optimization
a7b2e184 2544Perform loop unrolling for all loops.
de32c0cb 2545
f9cc1a70
PB
2546; Nonzero means that loop optimizer may assume that the induction variables
2547; that control loops do not overflow and that the loops with nontrivial
2548; exit condition are not infinite
2549funsafe-loop-optimizations
78f63b79
BC
2550Common Ignore
2551Does nothing. Preserved for backward compatibility.
f9cc1a70 2552
a1a82611 2553fassociative-math
b16650ac 2554Common Report Var(flag_associative_math) SetByCombined Optimization
a1a82611
RE
2555Allow optimization for floating-point arithmetic which may change the
2556result of the operation due to rounding.
2557
2558freciprocal-math
b16650ac 2559Common Report Var(flag_reciprocal_math) SetByCombined Optimization
a1a82611
RE
2560Same as -fassociative-math for expressions which include division.
2561
31b66477
KC
2562; Nonzero means that unsafe floating-point math optimizations are allowed
2563; for the sake of speed. IEEE compliance is not guaranteed, and operations
2564; are allowed to assume that their arguments and results are "normal"
2565; (e.g., nonnegative for SQRT).
6ff3a151 2566funsafe-math-optimizations
5e46b0c6 2567Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined
a7b2e184 2568Allow math optimizations that may violate IEEE or ISO standards.
6ff3a151 2569
de32c0cb 2570funswitch-loops
c662432e 2571Common Report Var(flag_unswitch_loops) Optimization
a7b2e184 2572Perform loop unswitching.
de32c0cb 2573
6ff3a151 2574funwind-tables
c662432e 2575Common Report Var(flag_unwind_tables) Optimization
a7b2e184 2576Just generate unwind tables for exception handling.
6ff3a151 2577
b352afba 2578fuse-ld=bfd
b78e932d 2579Common Driver Negative(fuse-ld=gold)
a7b2e184 2580Use the bfd linker instead of the default linker.
b352afba
NC
2581
2582fuse-ld=gold
b78e932d 2583Common Driver Negative(fuse-ld=bfd)
a7b2e184 2584Use the gold linker instead of the default linker.
b352afba 2585
da18ea94 2586fuse-linker-plugin
063d671d 2587Common Undocumented Var(flag_use_linker_plugin)
da18ea94 2588
e90afde6
JM
2589; Positive if we should track variables, negative if we should run
2590; the var-tracking pass only to discard debug annotations, zero if
2591; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it
2592; will be set according to optimize, debug_info_level and debug_hooks
2593; in process_options ().
014a1138 2594fvar-tracking
e90afde6 2595Common Report Var(flag_var_tracking) Init(2) Optimization
a7b2e184 2596Perform variable tracking.
014a1138 2597
e90afde6
JM
2598; Positive if we should track variables at assignments, negative if
2599; we should run the var-tracking pass only to discard debug
2600; annotations. When flag_var_tracking_assignments ==
2601; AUTODETECT_VALUE it will be set according to flag_var_tracking.
b5b8b0ac 2602fvar-tracking-assignments
e90afde6 2603Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
a7b2e184 2604Perform variable tracking by annotating assignments.
b5b8b0ac 2605
e90afde6
JM
2606; Nonzero if we should toggle flag_var_tracking_assignments after
2607; processing options and computing its default. */
b5b8b0ac 2608fvar-tracking-assignments-toggle
e90afde6 2609Common Report Var(flag_var_tracking_assignments_toggle) Optimization
a7b2e184 2610Toggle -fvar-tracking-assignments.
b5b8b0ac 2611
1267ca30
EB
2612; Positive if we should track uninitialized variables, negative if
2613; we should run the var-tracking pass only to discard debug
2614; annotations. When flag_var_tracking_uninit == AUTODETECT_VALUE it
2615; will be set according to flag_var_tracking.
62760ffd
CT
2616fvar-tracking-uninit
2617Common Report Var(flag_var_tracking_uninit) Optimization
a7b2e184 2618Perform variable tracking and also tag variables that are uninitialized.
62760ffd 2619
79fe1b3b 2620ftree-vectorize
c662432e 2621Common Report Var(flag_tree_vectorize) Optimization
a7b2e184 2622Enable vectorization on trees.
79fe1b3b 2623
78c60e3d 2624ftree-vectorizer-verbose=
477e804b
SS
2625Common Joined RejectNegative Ignore
2626Does nothing. Preserved for backward compatibility.
78c60e3d 2627
ea0f3e87
XDL
2628ftree-loop-vectorize
2629Common Report Var(flag_tree_loop_vectorize) Optimization
a7b2e184 2630Enable loop vectorization on trees.
ea0f3e87 2631
a70d6342 2632ftree-slp-vectorize
ea0f3e87 2633Common Report Var(flag_tree_slp_vectorize) Optimization
a7b2e184 2634Enable basic block vectorization (SLP) on trees.
a70d6342 2635
d6d11272 2636fvect-cost-model=
b16650ac 2637Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
a7b2e184
MS
2638Specifies the cost model for vectorization.
2639
8b5e1202 2640fsimd-cost-model=
b16650ac 2641Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
a7b2e184 2642Specifies the vectorization cost model for code marked with a simd directive.
8b5e1202 2643
d6d11272
XDL
2644Enum
2645Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
2646
2647EnumValue
2648Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
2649
2650EnumValue
2651Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
2652
2653EnumValue
2654Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
2655
792ed98b 2656fvect-cost-model
d6d11272
XDL
2657Common RejectNegative Alias(fvect-cost-model=,dynamic)
2658Enables the dynamic vectorizer cost model. Preserved for backward compatibility.
2659
2660fno-vect-cost-model
2661Common RejectNegative Alias(fvect-cost-model=,unlimited)
2662Enables the unlimited vectorizer cost model. Preserved for backward compatibility.
792ed98b 2663
c12cc930 2664ftree-vect-loop-version
d6d11272
XDL
2665Common Ignore
2666Does nothing. Preserved for backward compatibility.
c12cc930 2667
fbf798fc 2668ftree-scev-cprop
21af5cdf 2669Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
fbf798fc
DN
2670Enable copy propagation of scalar-evolution information.
2671
31b66477
KC
2672; -fverbose-asm causes extra commentary information to be produced in
2673; the generated assembly code (to make it more readable). This option
2674; is generally only of use to those who actually need to read the
2675; generated assembly code (perhaps while debugging the compiler itself).
2676; -fno-verbose-asm, the default, causes the extra information
2677; to not be added and is useful when comparing two assembler files.
6ff3a151 2678fverbose-asm
50431bc4 2679Common Report Var(flag_verbose_asm)
a7b2e184 2680Add extra commentary to assembler output.
6ff3a151 2681
d7afec4b 2682fvisibility=
e6d4b984 2683Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
a7b2e184 2684-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility.
d7afec4b 2685
e6d4b984
JM
2686Enum
2687Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
2688
2689EnumValue
2690Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
2691
2692EnumValue
2693Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
2694
2695EnumValue
2696Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
2697
2698EnumValue
2699Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
d7afec4b 2700
2077db1b
CT
2701fvtable-verify=
2702Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
2703Validate vtable pointers before using them.
2704
2705Enum
2706Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
2707
2708EnumValue
2709Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
2710
2711EnumValue
2712Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
2713
2714EnumValue
2715Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
2716
2717fvtv-counts
2718Common Var(flag_vtv_counts)
2719Output vtable verification counters.
2720
2721fvtv-debug
2722Common Var(flag_vtv_debug)
2723Output vtable verification pointer sets information.
2724
fca9dc00 2725fvpt
c662432e 2726Common Report Var(flag_value_profile_transformations) Optimization
a7b2e184 2727Use expression value profiles in optimizations.
fca9dc00 2728
62551c66 2729fweb
c662432e 2730Common Report Var(flag_web) Init(2) Optimization
a7b2e184 2731Construct webs and split unrelated uses of single variable.
62551c66 2732
c2699190
XDL
2733ftree-builtin-call-dce
2734Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
a7b2e184 2735Enable conditional dead code elimination for builtin calls.
c2699190 2736
ce91e74c 2737fwhole-program
b16650ac 2738Common Report Var(flag_whole_program) Init(0)
a7b2e184 2739Perform whole program optimizations.
ce91e74c 2740
6ff3a151 2741fwrapv
c662432e 2742Common Report Var(flag_wrapv) Optimization
a7b2e184 2743Assume signed arithmetic overflow wraps around.
6ff3a151 2744
6ff3a151 2745fzero-initialized-in-bss
50431bc4 2746Common Report Var(flag_zero_initialized_in_bss) Init(1)
a7b2e184 2747Put zero initialized data in the bss section.
6ff3a151 2748
e01cc6dc
NB
2749g
2750Common JoinedOrMissing
a7b2e184 2751Generate debug information in default format.
df38ffef
NB
2752
2753gcoff
6782438d 2754Common JoinedOrMissing Negative(gdwarf)
a7b2e184 2755Generate debug information in COFF format.
df38ffef 2756
6782438d
SKS
2757gdwarf
2758Common JoinedOrMissing Negative(gdwarf-)
a7b2e184 2759Generate debug information in default version of DWARF format.
6782438d 2760
53b2323e 2761gdwarf-
98095aa3 2762Common Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs)
a7b2e184 2763Generate debug information in DWARF v2 (or later) format.
df38ffef
NB
2764
2765ggdb
2766Common JoinedOrMissing
a7b2e184 2767Generate debug information in default extended format.
df38ffef 2768
5175cbaf 2769gno-pubnames
7a1dd0fa 2770Common Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
5175cbaf
SA
2771Don't generate DWARF pubnames and pubtypes sections.
2772
2773gpubnames
7a1dd0fa 2774Common Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
5175cbaf
SA
2775Generate DWARF pubnames and pubtypes sections.
2776
7a1dd0fa
SA
2777ggnu-pubnames
2778Common Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
2779Generate DWARF pubnames and pubtypes sections with GNU extensions.
2780
e967adf4 2781gno-record-gcc-switches
98095aa3 2782Common RejectNegative Var(dwarf_record_gcc_switches,0) Init(1)
e967adf4
JJ
2783Don't record gcc command line switches in DWARF DW_AT_producer.
2784
2785grecord-gcc-switches
2786Common RejectNegative Var(dwarf_record_gcc_switches,1)
2787Record gcc command line switches in DWARF DW_AT_producer.
2788
99ea153e
SA
2789gno-split-dwarf
2790Common Driver RejectNegative Var(dwarf_split_debug_info,0) Init(0)
a7b2e184 2791Don't generate debug information in separate .dwo files.
99ea153e
SA
2792
2793gsplit-dwarf
2794Common Driver RejectNegative Var(dwarf_split_debug_info,1)
a7b2e184 2795Generate debug information in separate .dwo files.
99ea153e 2796
df38ffef 2797gstabs
14c7833c 2798Common JoinedOrMissing Negative(gstabs+)
a7b2e184 2799Generate debug information in STABS format.
df38ffef
NB
2800
2801gstabs+
14c7833c 2802Common JoinedOrMissing Negative(gvms)
a7b2e184 2803Generate debug information in extended STABS format.
df38ffef 2804
65f753a0 2805gno-strict-dwarf
98095aa3 2806Common RejectNegative Var(dwarf_strict,0) Init(0)
a7b2e184 2807Emit DWARF additions beyond selected version.
65f753a0
JJ
2808
2809gstrict-dwarf
f0036cca 2810Common Report RejectNegative Var(dwarf_strict,1)
a7b2e184 2811Don't emit DWARF additions beyond selected version.
65f753a0 2812
2153915d
AO
2813gtoggle
2814Common Report Var(flag_gtoggle)
a7b2e184 2815Toggle debug information generation.
2153915d 2816
df38ffef 2817gvms
14c7833c 2818Common JoinedOrMissing Negative(gxcoff)
a7b2e184 2819Generate debug information in VMS format.
df38ffef
NB
2820
2821gxcoff
14c7833c 2822Common JoinedOrMissing Negative(gxcoff+)
a7b2e184 2823Generate debug information in XCOFF format.
df38ffef
NB
2824
2825gxcoff+
14c7833c 2826Common JoinedOrMissing Negative(gcoff)
a7b2e184 2827Generate debug information in extended XCOFF format.
e01cc6dc 2828
29d7cbd1
RO
2829Enum
2830Name(compressed_debug_sections) Type(int)
2831
2832; Since -gz= is completely handled in specs, the values aren't used and we
2833; assign arbitrary constants.
2834EnumValue
2835Enum(compressed_debug_sections) String(none) Value(0)
2836
2837EnumValue
2838Enum(compressed_debug_sections) String(zlib) Value(1)
2839
2840EnumValue
2841Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
2842
2843gz
2844Common Driver
a7b2e184 2845Generate compressed debug sections.
29d7cbd1
RO
2846
2847gz=
2848Common Driver Joined Enum(compressed_debug_sections)
a7b2e184 2849-gz=<format> Generate compressed debug sections in format <format>.
29d7cbd1 2850
6d721f67
JM
2851h
2852Driver Joined Separate
2853
4adbd5dd
MK
2854iplugindir=
2855Common Joined Var(plugindir_string) Init(0)
a7b2e184 2856-iplugindir=<dir> Set <dir> to be the default plugin directory.
4adbd5dd 2857
e0cdc09f
MK
2858imultiarch
2859Common Joined Separate RejectDriver Var(imultiarch) Init(0)
a7b2e184 2860-imultiarch <dir> Set <dir> to be the multiarch include subdirectory.
e0cdc09f 2861
603349bf
JM
2862l
2863Driver Joined Separate
2864
dd9f93dc
JM
2865n
2866Driver
2867
603349bf
JM
2868no-canonical-prefixes
2869Driver
2870
d9d16a19
JM
2871nodefaultlibs
2872Driver
2873
bab79a40
JM
2874nostartfiles
2875Driver
2876
d9d16a19
JM
2877nostdlib
2878Driver
2879
d185d268 2880o
d5478783 2881Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
a7b2e184 2882-o <file> Place output into <file>.
d185d268
NB
2883
2884p
50431bc4 2885Common Var(profile_flag)
a7b2e184 2886Enable function profiling.
d185d268 2887
603349bf
JM
2888pass-exit-codes
2889Driver Var(pass_exit_codes)
2890
d185d268 2891pedantic
c1771a20 2892Common Alias(Wpedantic)
d185d268
NB
2893
2894pedantic-errors
d5478783 2895Common Var(flag_pedantic_errors)
a7b2e184 2896Like -pedantic but issue them as errors.
d185d268 2897
d9d16a19
JM
2898pg
2899Driver
2900
603349bf
JM
2901pipe
2902Driver Var(use_pipes)
2903
2904print-file-name=
2905Driver JoinedOrMissing Var(print_file_name)
2906
2907print-libgcc-file-name
2908Driver
2909
2910print-multi-directory
2911Driver Var(print_multi_directory)
2912
2913print-multi-lib
2914Driver Var(print_multi_lib)
2915
2916print-multi-os-directory
2917Driver Var(print_multi_os_directory)
a7b2e184 2918
e0cdc09f
MK
2919print-multiarch
2920Driver Var(print_multiarch)
603349bf
JM
2921
2922print-prog-name=
2923Driver JoinedOrMissing Var(print_prog_name)
2924
2925print-search-dirs
2926Driver Var(print_search_dirs)
2927
2928print-sysroot
2929Driver Var(print_sysroot)
2930
2931print-sysroot-headers-suffix
2932Driver Var(print_sysroot_headers_suffix)
2933
d7b42618 2934quiet
603349bf 2935Common Var(quiet_flag) RejectDriver
a7b2e184 2936Do not display functions compiled or elapsed time.
d7b42618 2937
dd9f93dc
JM
2938r
2939Driver
2940
2941s
2942Driver
2943
603349bf
JM
2944save-temps
2945Driver
2946
2947save-temps=
2948Driver Joined
2949
dd9f93dc
JM
2950t
2951Driver
2952
603349bf
JM
2953time
2954Driver Var(report_times)
2955
2956time=
2957Driver JoinedOrMissing
2958
e200444e
JM
2959u
2960Driver Joined Separate
2961
5642f5d5
JM
2962undef
2963Driver
2964; C option, but driver must not handle as "-u ndef".
2965
603349bf 2966v
d5478783 2967Common Driver Var(verbose_flag)
a7b2e184 2968Enable verbose output.
603349bf 2969
d185d268 2970version
603349bf 2971Common Var(version_flag) RejectDriver
a7b2e184 2972Display the compiler's version.
d185d268
NB
2973
2974w
50431bc4 2975Common Var(inhibit_warnings)
a7b2e184 2976Suppress warnings.
d185d268 2977
603349bf
JM
2978wrapper
2979Driver Separate Var(wrapper_string)
2980
2981x
2982Driver Joined Separate
2983
528dc603 2984shared
5460e1fc 2985Driver RejectNegative Negative(pie)
a7b2e184 2986Create a shared library.
528dc603 2987
603349bf
JM
2988shared-libgcc
2989Driver
2990
2991specs
5de8299c 2992Driver Separate Alias(specs=)
603349bf
JM
2993
2994specs=
2995Driver Joined
2996
d9d16a19
JM
2997static
2998Driver
2999
603349bf
JM
3000static-libgcc
3001Driver
3002
3003static-libgfortran
3004Driver
3005; Documented for Fortran, but always accepted by driver.
3006
3007static-libstdc++
3008Driver
3009
7a938933
ILT
3010static-libgo
3011Driver
3012; Documented for Go, but always accepted by driver.
3013
7e8d1b2d
L
3014static-libasan
3015Driver
3016
32b4b7f5
DV
3017static-libtsan
3018Driver
3019
9065ada9
JJ
3020static-liblsan
3021Driver
3022
de5a5fa1
MP
3023static-libubsan
3024Driver
3025
e200444e
JM
3026symbolic
3027Driver
3028
428b3812 3029no-pie
5460e1fc 3030Driver RejectNegative Negative(shared)
a7b2e184 3031Don't create a position independent executable.
428b3812
L
3032
3033pie
3034Driver RejectNegative Negative(no-pie)
a7b2e184 3035Create a position independent executable.
528dc603 3036
6d721f67
JM
3037z
3038Driver Joined Separate
3039
1e288103
TV
3040fipa-ra
3041Common Report Var(flag_ipa_ra) Optimization
a7b2e184 3042Use caller save register across calls if possible.
d996e61a 3043
d7b42618 3044; This comment is to ensure we retain the blank line above.
This page took 4.172941 seconds and 5 git commands to generate.