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