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