]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/common.opt
PR c++/71814 - mangling sizeof... (sP and sZ)
[thirdparty/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
ccf08a6e 1199fdiagnostics-show-option
c7d0de89 1200Common Var(flag_diagnostics_show_option) Init(1)
a7b2e184 1201Amend appropriate diagnostic messages with the command line option that controls them.
ccf08a6e 1202
226c52aa
XDL
1203fdisable-
1204Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1205-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass.
226c52aa
XDL
1206
1207fenable-
1208Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1209-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass.
226c52aa 1210
6de9cd9a 1211fdump-
21bf1558 1212Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1213-fdump-<type> Dump various compiler internals to a file.
6de9cd9a 1214
d1583032
JM
1215fdump-final-insns
1216Driver RejectNegative
1217
2153915d
AO
1218fdump-final-insns=
1219Common RejectNegative Joined Var(flag_dump_final_insns)
a7b2e184 1220-fdump-final-insns=filename Dump to filename the insns at the end of translation.
2153915d 1221
c6a13190
ILT
1222fdump-go-spec=
1223Common RejectNegative Joined Var(flag_dump_go_spec)
a7b2e184 1224-fdump-go-spec=filename Write all declarations to file as Go code.
c6a13190 1225
24a7799e
R
1226fdump-noaddr
1227Common Report Var(flag_dump_noaddr)
a7b2e184 1228Suppress output of addresses in debugging dumps.
24a7799e 1229
dc10fd96
JJ
1230freport-bug
1231Common Driver Var(flag_report_bug)
1232Collect and dump debug information into temporary file if ICE in C/C++
1233compiler occured.
1234
ba4ad400
DM
1235fdump-internal-locations
1236Common Var(flag_dump_locations) Init(0)
a7b2e184 1237Dump detailed information on GCC's internal representation of source code locations.
ba4ad400 1238
deced1e2
XDL
1239fdump-passes
1240Common Var(flag_dump_passes) Init(0)
a7b2e184 1241Dump optimization passes.
deced1e2 1242
6ff3a151 1243fdump-unnumbered
e90afde6 1244Common Report Var(flag_dump_unnumbered)
a7b2e184 1245Suppress output of instruction numbers, line number notes and addresses in debugging dumps.
6ff3a151 1246
2aa7c49b 1247fdump-unnumbered-links
e90afde6 1248Common Report Var(flag_dump_unnumbered_links)
a7b2e184 1249Suppress output of previous and next insn numbers in debugging dumps.
2aa7c49b 1250
b5b8b0ac
AO
1251fdwarf2-cfi-asm
1252Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
1253Enable CFI tables via GAS assembler directives.
1254
355866de 1255fearly-inlining
c662432e 1256Common Report Var(flag_early_inlining) Init(1) Optimization
a7b2e184 1257Perform early inlining.
355866de 1258
de32c0cb 1259feliminate-dwarf2-dups
50431bc4 1260Common Report Var(flag_eliminate_dwarf2_dups)
a1a3812d 1261Perform DWARF duplicate elimination.
de32c0cb 1262
07ffa034
MJ
1263fipa-sra
1264Common Report Var(flag_ipa_sra) Init(0) Optimization
a7b2e184 1265Perform interprocedural reduction of aggregates.
07ffa034 1266
6a08f7b3 1267feliminate-unused-debug-symbols
50431bc4 1268Common Report Var(flag_debug_only_used_symbols)
a7b2e184 1269Perform unused symbol elimination in debug info.
6a08f7b3 1270
de32c0cb 1271feliminate-unused-debug-types
50431bc4 1272Common Report Var(flag_eliminate_unused_debug_types) Init(1)
a7b2e184 1273Perform unused type elimination in debug info.
de32c0cb 1274
e713adf6 1275femit-class-debug-always
eae8e474 1276Common Report Var(flag_emit_class_debug_always) Init(0)
e713adf6
CD
1277Do not suppress C++ class debug information.
1278
6ff3a151 1279fexceptions
c662432e 1280Common Report Var(flag_exceptions) Optimization
a7b2e184 1281Enable exception handling.
6ff3a151 1282
de32c0cb 1283fexpensive-optimizations
c662432e 1284Common Report Var(flag_expensive_optimizations) Optimization
a7b2e184 1285Perform a number of minor, expensive optimizations.
de32c0cb 1286
8ce94e44 1287fexcess-precision=
e6d4b984 1288Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT)
a7b2e184 1289-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision.
8ce94e44 1290
e6d4b984
JM
1291Enum
1292Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1293
1294EnumValue
1295Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1296
1297EnumValue
1298Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1299
058de654 1300ffast-math
bfd67b47 1301Common Optimization
058de654 1302
cc8547a7 1303ffat-lto-objects
e9f67e62 1304Common Var(flag_fat_lto_objects)
cc8547a7
AK
1305Output lto objects containing both the intermediate language and binary output.
1306
6ff3a151 1307ffinite-math-only
5e46b0c6 1308Common Report Var(flag_finite_math_only) Optimization SetByCombined
a7b2e184 1309Assume no NaNs or infinities are generated.
6ff3a151 1310
058de654 1311ffixed-
21bf1558 1312Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1313-ffixed-<register> Mark <register> as being unavailable to the compiler.
058de654 1314
de32c0cb 1315ffloat-store
c662432e 1316Common Report Var(flag_float_store) Optimization
a7b2e184 1317Don't allocate floats and doubles in extended-precision registers.
de32c0cb
NB
1318
1319fforce-addr
2d2bd949 1320Common Ignore
3de5e93a 1321Does nothing. Preserved for backward compatibility.
de32c0cb 1322
2ca2b607
SB
1323fforward-propagate
1324Common Report Var(flag_forward_propagate) Optimization
a7b2e184 1325Perform a forward propagation pass on RTL.
a52b023a 1326
16949072 1327ffp-contract=
bea30e0d 1328Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
16949072
RG
1329-ffp-contract=[off|on|fast] Perform floating-point expression contraction.
1330
e6d4b984
JM
1331Enum
1332Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1333
1334EnumValue
1335Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1336
1337; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1338EnumValue
1339Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1340
1341EnumValue
1342Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1343
0d2f700f
JM
1344ffp-int-builtin-inexact
1345Common Report Var(flag_fp_int_builtin_inexact) Init(1) Optimization
1346Allow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
1347
31b66477
KC
1348; Nonzero means don't put addresses of constant functions in registers.
1349; Used for compiling the Unix kernel, where strange substitutions are
1350; done on the assembly output.
de32c0cb 1351ffunction-cse
b16650ac 1352Common Report Var(flag_no_function_cse,0) Optimization
a7b2e184 1353Allow function addresses to be held in registers.
de32c0cb 1354
6ff3a151 1355ffunction-sections
50431bc4 1356Common Report Var(flag_function_sections)
a7b2e184 1357Place each function into its own section.
6ff3a151 1358
de32c0cb 1359fgcse
c662432e 1360Common Report Var(flag_gcse) Optimization
a7b2e184 1361Perform global common subexpression elimination.
de32c0cb
NB
1362
1363fgcse-lm
c662432e 1364Common Report Var(flag_gcse_lm) Init(1) Optimization
a7b2e184 1365Perform enhanced load motion during global common subexpression elimination.
de32c0cb
NB
1366
1367fgcse-sm
c662432e 1368Common Report Var(flag_gcse_sm) Init(0) Optimization
a7b2e184 1369Perform store motion after global common subexpression elimination.
de32c0cb 1370
f5f2e3cd 1371fgcse-las
c662432e 1372Common Report Var(flag_gcse_las) Init(0) Optimization
f9957958 1373Perform redundant load after store elimination in global common subexpression
a7b2e184 1374elimination.
f9957958
MH
1375
1376fgcse-after-reload
c662432e 1377Common Report Var(flag_gcse_after_reload) Optimization
a7b2e184
MS
1378Perform global common subexpression elimination after register allocation has
1379finished.
f5f2e3cd 1380
6592d14b
PMR
1381Enum
1382Name(dwarf_gnat_encodings) Type(int)
1383
1384EnumValue
1385Enum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
1386
1387EnumValue
1388Enum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
1389
1390EnumValue
1391Enum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
1392
1393fgnat-encodings=
1394Common Enum(dwarf_gnat_encodings) Joined RejectNegative Report Undocumented Var(gnat_encodings)
1395-fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information
1396
d0a58904 1397; This option is not documented yet as its semantics will change.
f8bf9252 1398fgraphite
ff6a32a9 1399Common Report Var(flag_graphite) Optimization
a7b2e184 1400Enable in and out of Graphite representation.
f8bf9252 1401
204b560f
SP
1402fgraphite-identity
1403Common Report Var(flag_graphite_identity) Optimization
a7b2e184 1404Enable Graphite Identity transformation.
204b560f 1405
372a6eb8
BS
1406fhoist-adjacent-loads
1407Common Report Var(flag_hoist_adjacent_loads) Optimization
1408Enable hoisting adjacent loads to encourage generating conditional move
a7b2e184 1409instructions.
372a6eb8 1410
1a218fc9
ILT
1411fkeep-gc-roots-live
1412Common Undocumented Report Var(flag_keep_gc_roots_live) Optimization
1413; Always keep a pointer to a live memory block
1414
3cf0e270
SP
1415floop-parallelize-all
1416Common Report Var(flag_loop_parallelize_all) Optimization
a7b2e184 1417Mark all loops as parallel.
204b560f 1418
f8bf9252 1419floop-strip-mine
d6bb5ccf 1420Common Alias(floop-nest-optimize)
a7b2e184 1421Enable loop nest transforms. Same as -floop-nest-optimize.
f8bf9252
SP
1422
1423floop-interchange
d6bb5ccf 1424Common Alias(floop-nest-optimize)
a7b2e184 1425Enable loop nest transforms. Same as -floop-nest-optimize.
f8bf9252
SP
1426
1427floop-block
d6bb5ccf 1428Common Alias(floop-nest-optimize)
a7b2e184 1429Enable loop nest transforms. Same as -floop-nest-optimize.
f8bf9252 1430
20d3465b 1431floop-unroll-and-jam
a5e5ea0c 1432Common Alias(floop-nest-optimize)
a7b2e184
MS
1433Enable loop nest transforms. Same as -floop-nest-optimize.
1434
0a35513e
AH
1435fgnu-tm
1436Common Report Var(flag_tm)
a7b2e184 1437Enable support for GNU transactional memory.
0a35513e 1438
da34ade5
JM
1439fgnu-unique
1440Common Report Var(flag_gnu_unique) Init(1)
a7b2e184 1441Use STB_GNU_UNIQUE if supported by the assembler.
da34ade5 1442
98af4c9f 1443floop-flatten
093193be
MK
1444Common Ignore
1445Does nothing. Preserved for backward compatibility.
98af4c9f 1446
b60cc080 1447floop-nest-optimize
84c36240 1448Common Report Var(flag_loop_nest_optimize) Optimization
e357a5e0 1449Enable the loop nest optimizer.
b60cc080 1450
6a78b724 1451fstrict-volatile-bitfields
b16650ac 1452Common Report Var(flag_strict_volatile_bitfields) Init(-1) Optimization
a7b2e184 1453Force bitfield accesses to match their type width.
6a78b724 1454
6ff3a151 1455fguess-branch-probability
c662432e 1456Common Report Var(flag_guess_branch_prob) Optimization
a7b2e184 1457Enable guessing of branch probabilities.
6ff3a151 1458
31b66477
KC
1459; Nonzero means ignore `#ident' directives. 0 means handle them.
1460; Generate position-independent code for executables if possible
1461; On SVR4 targets, it also controls whether or not to emit a
1462; string identifying the compiler.
6ff3a151 1463fident
50431bc4 1464Common Report Var(flag_no_ident,0)
a7b2e184 1465Process #ident directives.
6ff3a151 1466
de32c0cb 1467fif-conversion
c662432e 1468Common Report Var(flag_if_conversion) Optimization
a7b2e184 1469Perform conversion of conditional jumps to branchless equivalents.
de32c0cb
NB
1470
1471fif-conversion2
c662432e 1472Common Report Var(flag_if_conversion2) Optimization
a7b2e184 1473Perform conversion of conditional jumps to conditional execution.
de32c0cb 1474
87e2a8fd 1475fstack-reuse=
082908e3 1476Common Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
87e2a8fd
XDL
1477-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables.
1478
1479Enum
1480Name(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
1481
1482EnumValue
1483Enum(stack_reuse_level) String(all) Value(SR_ALL)
1484
1485EnumValue
1486Enum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
1487
1488EnumValue
1489Enum(stack_reuse_level) String(none) Value(SR_NONE)
1490
384a5197
SP
1491ftree-loop-if-convert
1492Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
a7b2e184 1493Convert conditional jumps in innermost loops to branchless equivalents.
384a5197 1494
bd544141
SP
1495ftree-loop-if-convert-stores
1496Common Report Var(flag_tree_loop_if_convert_stores) Optimization
a7b2e184 1497Also if-convert conditional jumps containing memory writes.
bd544141 1498
31b66477
KC
1499; -finhibit-size-directive inhibits output of .size for ELF.
1500; This is used only for compiling crtstuff.c,
1501; and it may be extended to other effects
1502; needed for crtstuff.c on other systems.
6ff3a151 1503finhibit-size-directive
50431bc4 1504Common Report Var(flag_inhibit_size_directive)
a7b2e184 1505Do not generate .size directives.
6ff3a151 1506
3e293154 1507findirect-inlining
2bf86c84 1508Common Report Var(flag_indirect_inlining) Optimization
a7b2e184 1509Perform indirect inlining.
3e293154 1510
99ea07f8
RG
1511; General flag to enable inlining. Specifying -fno-inline will disable
1512; all inlining apart from always-inline functions.
de32c0cb 1513finline
0f042bc5 1514Common Report Var(flag_no_inline,0) Init(0) Optimization
a7b2e184 1515Enable inlining of function declared \"inline\", disabling disables all inlining.
de32c0cb 1516
4d4b8cb9
JH
1517finline-small-functions
1518Common Report Var(flag_inline_small_functions) Optimization
a7b2e184 1519Integrate functions into their callers when code size is known not to grow.
4d4b8cb9 1520
de32c0cb 1521finline-functions
c662432e 1522Common Report Var(flag_inline_functions) Optimization
a7b2e184 1523Integrate functions not declared \"inline\" into their callers when profitable.
de32c0cb 1524
355866de 1525finline-functions-called-once
fb37c1de 1526Common Report Var(flag_inline_functions_called_once) Optimization
a7b2e184 1527Integrate functions only required by their single caller.
d63db217 1528
d302c9d6 1529finline-limit-
5de8299c 1530Common RejectNegative Joined Alias(finline-limit=)
d302c9d6
NB
1531
1532finline-limit=
1533Common RejectNegative Joined UInteger
a7b2e184 1534-finline-limit=<number> Limit the size of inlined functions to <number>.
d302c9d6 1535
86951993
AM
1536finline-atomics
1537Common Report Var(flag_inline_atomics) Init(1) Optimization
1538Inline __atomic operations when a lock free instruction sequence is available.
1539
6ff3a151 1540finstrument-functions
50431bc4 1541Common Report Var(flag_instrument_function_entry_exit)
a7b2e184 1542Instrument function entry and exit with profiling calls.
6ff3a151 1543
8d5a7d1f
ILT
1544finstrument-functions-exclude-function-list=
1545Common RejectNegative Joined
a7b2e184 1546-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions.
8d5a7d1f
ILT
1547
1548finstrument-functions-exclude-file-list=
1549Common RejectNegative Joined
a7b2e184 1550-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files.
8d5a7d1f 1551
d6e14e8f 1552fipa-cp
c662432e 1553Common Report Var(flag_ipa_cp) Optimization
a7b2e184 1554Perform interprocedural constant propagation.
d6e14e8f 1555
5e45130d
JH
1556fipa-cp-clone
1557Common Report Var(flag_ipa_cp_clone) Optimization
a7b2e184 1558Perform cloning to make Interprocedural constant propagation stronger.
5e45130d 1559
3c99176a
L
1560fipa-cp-alignment
1561Common Report Var(flag_ipa_cp_alignment) Optimization
a7b2e184 1562Perform alignment discovery and propagation to make Interprocedural constant propagation stronger.
3c99176a 1563
e65bb9be
JH
1564fipa-profile
1565Common Report Var(flag_ipa_profile) Init(0) Optimization
a7b2e184 1566Perform interprocedural profile propagation.
ea900239 1567
4cf4d6a3 1568fipa-pta
c662432e 1569Common Report Var(flag_ipa_pta) Init(0) Optimization
a7b2e184 1570Perform interprocedural points-to analysis.
4cf4d6a3 1571
e65bb9be
JH
1572fipa-pure-const
1573Common Report Var(flag_ipa_pure_const) Init(0) Optimization
a7b2e184 1574Discover pure and const functions.
e65bb9be 1575
b84d4347
ML
1576fipa-icf
1577Common Report Var(flag_ipa_icf) Optimization
a7b2e184 1578Perform Identical Code Folding for functions and read-only variables.
b84d4347
ML
1579
1580fipa-icf-functions
1581Common Report Var(flag_ipa_icf_functions) Optimization
a7b2e184 1582Perform Identical Code Folding for functions.
b84d4347
ML
1583
1584fipa-icf-variables
b16650ac 1585Common Report Var(flag_ipa_icf_variables)
a7b2e184 1586Perform Identical Code Folding for variables.
b84d4347 1587
ea900239 1588fipa-reference
c662432e 1589Common Report Var(flag_ipa_reference) Init(0) Optimization
a7b2e184 1590Discover readonly and non addressable static variables.
ea900239 1591
43d861a5 1592fipa-matrix-reorg
04f92ff4
RG
1593Common Ignore
1594Does nothing. Preserved for backward compatibility.
43d861a5 1595
e1dc98b2 1596fipa-struct-reorg
b8beb4d1
RG
1597Common Ignore
1598Does nothing. Preserved for backward compatibility.
e1dc98b2 1599
058e97ec 1600fira-algorithm=
b16650ac 1601Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
a7b2e184 1602-fira-algorithm=[CB|priority] Set the used IRA algorithm.
7db7ed3c 1603
e6d4b984
JM
1604Enum
1605Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1606
1607EnumValue
1608Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1609
1610EnumValue
1611Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1612
7db7ed3c 1613fira-region=
b16650ac 1614Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT) Optimization
a7b2e184 1615-fira-region=[one|all|mixed] Set regions for IRA.
058e97ec 1616
e6d4b984
JM
1617Enum
1618Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1619
1620EnumValue
1621Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1622
1623EnumValue
1624Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1625
1626EnumValue
1627Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1628
b11f0116
BC
1629fira-hoist-pressure
1630Common Report Var(flag_ira_hoist_pressure) Init(1) Optimization
1631Use IRA based register pressure calculation
1632in RTL hoist optimizations.
1633
1833192f 1634fira-loop-pressure
f3d83ffe 1635Common Report Var(flag_ira_loop_pressure) Optimization
1833192f
VM
1636Use IRA based register pressure calculation
1637in RTL loop optimizations.
1638
058e97ec 1639fira-share-save-slots
b16650ac 1640Common Report Var(flag_ira_share_save_slots) Init(1) Optimization
058e97ec
VM
1641Share slots for saving different hard registers.
1642
1643fira-share-spill-slots
b16650ac 1644Common Report Var(flag_ira_share_spill_slots) Init(1) Optimization
058e97ec
VM
1645Share stack slots for spilled pseudo-registers.
1646
1647fira-verbose=
5498f011 1648Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
f94e1d66 1649-fira-verbose=<number> Control IRA's level of diagnostic messages.
058e97ec 1650
8b11a64c 1651fivopts
c662432e 1652Common Report Var(flag_ivopts) Init(1) Optimization
a7b2e184 1653Optimize induction variables on trees.
8b11a64c 1654
82c0180d 1655fjump-tables
c662432e 1656Common Var(flag_jump_tables) Init(1) Optimization
a7b2e184 1657Use jump tables for sufficiently large switch statements.
82c0180d 1658
de32c0cb 1659fkeep-inline-functions
50431bc4 1660Common Report Var(flag_keep_inline_functions)
a7b2e184 1661Generate code for functions even if they are fully inlined.
de32c0cb 1662
787da5fd
JV
1663fkeep-static-functions
1664Common Report Var(flag_keep_static_functions)
a7b2e184 1665Generate code for static functions even if they are never called.
787da5fd 1666
de32c0cb 1667fkeep-static-consts
50431bc4 1668Common Report Var(flag_keep_static_consts) Init(1)
a7b2e184 1669Emit static const variables even if they are not used.
de32c0cb 1670
6ff3a151 1671fleading-underscore
50431bc4 1672Common Report Var(flag_leading_underscore) Init(-1)
a7b2e184 1673Give external symbols a leading underscore.
6ff3a151 1674
efa1cdf0 1675floop-optimize
2d2bd949 1676Common Ignore
c0220ea4 1677Does nothing. Preserved for backward compatibility.
efa1cdf0 1678
d9cf932c
VM
1679flra-remat
1680Common Report Var(flag_lra_remat) Optimization
a7b2e184 1681Do CFG-sensitive rematerialization in LRA.
d9cf932c 1682
d7f09764 1683flto
014d92e1 1684Common
d7f09764
DN
1685Enable link-time optimization.
1686
014d92e1
JH
1687flto=
1688Common RejectNegative Joined Var(flag_lto)
1689Link-time optimization with number of parallel jobs or jobserver.
1690
783dab6b
RB
1691Enum
1692Name(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
852e4bd2 1693
783dab6b
RB
1694EnumValue
1695Enum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
852e4bd2 1696
783dab6b
RB
1697EnumValue
1698Enum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
1699
1700EnumValue
1701Enum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
1702
1703EnumValue
1704Enum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
1705
1706EnumValue
1707Enum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
c3c445e1 1708
783dab6b
RB
1709flto-partition=
1710Common Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
a7b2e184 1711Specify the algorithm to partition symbols and vars at linktime.
014d92e1 1712
d7f09764
DN
1713; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1714flto-compression-level=
fcfbd84e 1715Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
a7b2e184 1716-flto-compression-level=<number> Use zlib compression level <number> for IL.
d7f09764 1717
1ee85ee1
JH
1718flto-odr-type-merging
1719Common Report Var(flag_lto_odr_type_mering) Init(1)
a7b2e184 1720Merge C++ types using One Definition Rule.
1ee85ee1 1721
d7f09764 1722flto-report
1d67dde8 1723Common Report Var(flag_lto_report) Init(0)
a7b2e184 1724Report various link-time optimization statistics.
d7f09764 1725
057f8f20
AK
1726flto-report-wpa
1727Common Report Var(flag_lto_report_wpa) Init(0)
a7b2e184 1728Report various link-time optimization statistics for WPA only.
057f8f20 1729
6ff3a151 1730fmath-errno
5e46b0c6 1731Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined
a7b2e184 1732Set errno after built-in math functions.
6ff3a151 1733
3a789837
NF
1734fmax-errors=
1735Common Joined RejectNegative UInteger Var(flag_max_errors)
a7b2e184 1736-fmax-errors=<number> Maximum number of errors to report.
3a789837 1737
6ff3a151 1738fmem-report
50431bc4 1739Common Report Var(mem_report)
a7b2e184 1740Report on permanent memory allocation.
6ff3a151 1741
b3e44629
AK
1742fmem-report-wpa
1743Common Report Var(mem_report_wpa)
a7b2e184 1744Report on permanent memory allocation in WPA only.
b3e44629 1745
31b66477
KC
1746; This will attempt to merge constant section constants, if 1 only
1747; string constants and constants from constant pool, if 2 also constant
1748; variables.
6ff3a151 1749fmerge-all-constants
0a7246ee 1750Common Report Var(flag_merge_constants,2) Init(1)
a7b2e184 1751Attempt to merge identical constants and constant variables.
6ff3a151
NB
1752
1753fmerge-constants
0a7246ee 1754Common Report Var(flag_merge_constants,1)
a7b2e184 1755Attempt to merge identical constants across compilation units.
6ff3a151 1756
28a08168
ILT
1757fmerge-debug-strings
1758Common Report Var(flag_merge_debug_strings) Init(1)
a7b2e184 1759Attempt to merge identical debug strings across compilation units.
28a08168 1760
de32c0cb
NB
1761fmessage-length=
1762Common RejectNegative Joined UInteger
a7b2e184 1763-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping.
de32c0cb 1764
e5626198 1765fmodulo-sched
c662432e 1766Common Report Var(flag_modulo_sched) Optimization
a7b2e184 1767Perform SMS based modulo scheduling before the first scheduling pass.
e5626198 1768
517d76fa 1769fmodulo-sched-allow-regmoves
b16650ac 1770Common Report Var(flag_modulo_sched_allow_regmoves) Optimization
a7b2e184 1771Perform SMS based modulo scheduling with register moves allowed.
517d76fa 1772
5e962776 1773fmove-loop-invariants
14379e66 1774Common Report Var(flag_move_loop_invariants) Optimization
a7b2e184 1775Move loop invariant computations out of loops.
5e962776 1776
6fb5fa3c 1777fdce
6ae4be32 1778Common Var(flag_dce) Init(1) Optimization
a7b2e184 1779Use the RTL dead code elimination pass.
6fb5fa3c
DB
1780
1781fdse
6ae4be32 1782Common Var(flag_dse) Init(1) Optimization
a7b2e184 1783Use the RTL dead store elimination pass.
6fb5fa3c 1784
d72372e4 1785freschedule-modulo-scheduled-loops
c662432e 1786Common Report Var(flag_resched_modulo_sched) Optimization
a7b2e184 1787Enable/Disable the traditional scheduling in loops that already passed modulo scheduling.
d72372e4 1788
6ff3a151 1789fnon-call-exceptions
c662432e 1790Common Report Var(flag_non_call_exceptions) Optimization
a7b2e184 1791Support synchronous non-call exceptions.
6ff3a151 1792
c713ddc0
BS
1793foffload=
1794Common Driver Joined MissingArgError(options or targets missing after %qs)
a7b2e184 1795-foffload=<targets>=<options> Specify offloading targets and options for them.
c713ddc0
BS
1796
1797foffload-abi=
1798Common Joined RejectNegative Enum(offload_abi) Var(flag_offload_abi) Init(OFFLOAD_ABI_UNSET)
a7b2e184 1799-foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler.
c713ddc0
BS
1800
1801Enum
1802Name(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
1803
1804EnumValue
1805Enum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
1806
1807EnumValue
1808Enum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
1809
de32c0cb 1810fomit-frame-pointer
c662432e 1811Common Report Var(flag_omit_frame_pointer) Optimization
a7b2e184 1812When possible do not generate stack frames.
de32c0cb 1813
78c60e3d
SS
1814fopt-info
1815Common Report Var(flag_opt_info) Optimization
a7b2e184 1816Enable all optimization info dumps on stderr.
78c60e3d
SS
1817
1818fopt-info-
1819Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1820-fopt-info[-<type>=filename] Dump compiler optimization details.
78c60e3d 1821
6ff3a151 1822foptimize-register-move
3b6d1699
VM
1823Common Ignore
1824Does nothing. Preserved for backward compatibility.
6ff3a151 1825
de32c0cb 1826foptimize-sibling-calls
c662432e 1827Common Report Var(flag_optimize_sibling_calls) Optimization
a7b2e184 1828Optimize sibling and tail recursive calls.
de32c0cb 1829
3e485f62 1830fpartial-inlining
b16650ac 1831Common Report Var(flag_partial_inlining) Optimization
a7b2e184 1832Perform partial inlining.
3e485f62 1833
a5573239
JH
1834fpre-ipa-mem-report
1835Common Report Var(pre_ipa_mem_report)
a7b2e184 1836Report on memory allocation before interprocedural optimization.
a5573239
JH
1837
1838fpost-ipa-mem-report
1839Common Report Var(post_ipa_mem_report)
a7b2e184 1840Report on memory allocation before interprocedural optimization.
a5573239 1841
6ff3a151 1842fpack-struct
c662432e 1843Common Report Var(flag_pack_struct) Optimization
a7b2e184 1844Pack structure members together without holes.
6ff3a151 1845
467cecf3 1846fpack-struct=
c662432e 1847Common RejectNegative Joined UInteger Optimization
a7b2e184 1848-fpack-struct=<number> Set initial maximum structure member alignment.
467cecf3 1849
de32c0cb 1850fpcc-struct-return
5498f011 1851Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
a7b2e184 1852Return small aggregates in memory, not registers.
de32c0cb
NB
1853
1854fpeel-loops
c662432e 1855Common Report Var(flag_peel_loops) Optimization
a7b2e184 1856Perform loop peeling.
de32c0cb
NB
1857
1858fpeephole
c662432e 1859Common Report Var(flag_no_peephole,0) Optimization
a7b2e184 1860Enable machine specific peephole optimizations.
de32c0cb 1861
6ff3a151 1862fpeephole2
c662432e 1863Common Report Var(flag_peephole2) Optimization
a7b2e184 1864Enable an RTL peephole pass before sched2.
6ff3a151 1865
31b66477 1866fPIC
b57e6e18 1867Common Report Var(flag_pic,2) Negative(fPIE) Init(-1)
a7b2e184 1868Generate position-independent code if possible (large mode).
31b66477
KC
1869
1870fPIE
428b3812 1871Common Report Var(flag_pie,2) Negative(fpic) Init(-1)
a7b2e184 1872Generate position-independent code for executables if possible (large mode).
31b66477 1873
6ff3a151 1874fpic
b57e6e18 1875Common Report Var(flag_pic,1) Negative(fpie) Init(-1)
a7b2e184 1876Generate position-independent code if possible (small mode).
6ff3a151
NB
1877
1878fpie
428b3812 1879Common Report Var(flag_pie,1) Negative(fPIC) Init(-1)
a7b2e184 1880Generate position-independent code for executables if possible (small mode).
6ff3a151 1881
b91fd3c7
AM
1882fplt
1883Common Report Var(flag_plt) Init(1) Optimization
a7b2e184 1884Use PLT for PIC calls (-fno-plt: load the address from GOT at call site).
b91fd3c7 1885
68a607d8 1886fplugin=
21bf1558 1887Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1888Specify a plugin to load.
68a607d8
DN
1889
1890fplugin-arg-
21bf1558 1891Common Joined RejectNegative Var(common_deferred_options) Defer
a7b2e184 1892-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>.
68a607d8 1893
bbc8a8dc 1894fpredictive-commoning
6ae4be32 1895Common Report Var(flag_predictive_commoning) Optimization
bbc8a8dc
ZD
1896Run predictive commoning optimization.
1897
de32c0cb 1898fprefetch-loop-arrays
1fbb509a 1899Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
a7b2e184 1900Generate prefetch instructions, if available, for arrays in loops.
de32c0cb 1901
6ff3a151 1902fprofile
50431bc4 1903Common Report Var(profile_flag)
a7b2e184 1904Enable basic program profiling code.
6ff3a151
NB
1905
1906fprofile-arcs
50431bc4 1907Common Report Var(profile_arc_flag)
a7b2e184 1908Insert arc-based program profiling code.
6ff3a151 1909
2f908293 1910fprofile-dir=
0576d21f 1911Common Joined RejectNegative Var(profile_data_prefix)
2f908293
SP
1912Set the top-level directory for storing the profile data.
1913The default is 'pwd'.
1914
52c76998
PY
1915fprofile-correction
1916Common Report Var(flag_profile_correction)
a7b2e184 1917Enable correction of flow inconsistent profile data input.
52c76998 1918
a8a5f53a
JH
1919fprofile-generate
1920Common
a7b2e184 1921Enable common options for generating profile info for profile feedback directed optimizations.
a8a5f53a 1922
2f908293
SP
1923fprofile-generate=
1924Common Joined RejectNegative
a7b2e184 1925Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
2f908293 1926
a8a5f53a 1927fprofile-use
2f908293 1928Common Var(flag_profile_use)
a7b2e184 1929Enable common options for performing profile feedback directed optimizations.
a8a5f53a 1930
2f908293
SP
1931fprofile-use=
1932Common Joined RejectNegative
a7b2e184 1933Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
2f908293 1934
fca9dc00 1935fprofile-values
50431bc4 1936Common Report Var(flag_profile_values)
a7b2e184 1937Insert code to profile values of expressions.
fca9dc00 1938
37e5402b
JH
1939fprofile-report
1940Common Report Var(profile_report)
a7b2e184 1941Report on consistency of profile.
37e5402b 1942
9cec31f4
ML
1943fprofile-reorder-functions
1944Common Report Var(flag_profile_reorder_functions)
a7b2e184 1945Enable function reordering that improves code placement.
9cec31f4 1946
de32c0cb 1947frandom-seed
299404a1 1948Common Var(common_deferred_options) Defer
de32c0cb
NB
1949
1950frandom-seed=
299404a1 1951Common Joined RejectNegative Var(common_deferred_options) Defer
4bfede85 1952-frandom-seed=<string> Make compile reproducible using <string>.
de32c0cb 1953
e0d9d0dd
NC
1954; This switch causes the command line that was used to create an
1955; object file to be recorded into the object file. The exact format
1956; of this recording is target and binary file format dependent.
1957; It is related to the -fverbose-asm switch, but that switch only
1958; records information in the assembler output file as comments, so
1959; they never reach the object file.
1960frecord-gcc-switches
1961Common Report Var(flag_record_gcc_switches)
1962Record gcc command line switches in the object file.
1963
de32c0cb 1964freg-struct-return
f0036cca 1965Common Report Var(flag_pcc_struct_return,0) Optimization
a7b2e184 1966Return small aggregates in registers.
de32c0cb 1967
6ff3a151 1968fregmove
3b6d1699
VM
1969Common Ignore
1970Does nothing. Preserved for backward compatibility.
6ff3a151 1971
f522930c 1972flifetime-dse
a021961c 1973Common Report Var(flag_lifetime_dse,2) Init(2) Optimization
f522930c
JM
1974Tell DSE that the storage for a C++ object is dead when the constructor
1975starts and when the destructor finishes.
1976
a021961c
JM
1977flifetime-dse=
1978Common Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization
1979
f20f2613
VM
1980flive-range-shrinkage
1981Common Report Var(flag_live_range_shrinkage) Init(0) Optimization
a7b2e184 1982Relief of register pressure through live range shrinkage.
f20f2613 1983
6ff3a151 1984frename-registers
c662432e 1985Common Report Var(flag_rename_registers) Init(2) Optimization
a7b2e184 1986Perform a register renaming optimization pass.
6ff3a151 1987
b16abbcb
BC
1988fschedule-fusion
1989Common Report Var(flag_schedule_fusion) Init(2) Optimization
a7b2e184 1990Perform a target dependent instruction fusion optimization pass.
b16abbcb 1991
6ff3a151 1992freorder-blocks
c662432e 1993Common Report Var(flag_reorder_blocks) Optimization
a7b2e184 1994Reorder basic blocks to improve code placement.
6ff3a151 1995
59faab7c
SB
1996freorder-blocks-algorithm=
1997Common Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
a7b2e184 1998-freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm.
59faab7c
SB
1999
2000Enum
2001Name(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
2002
2003EnumValue
2004Enum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
2005
2006EnumValue
2007Enum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
2008
750054a2 2009freorder-blocks-and-partition
c662432e 2010Common Report Var(flag_reorder_blocks_and_partition) Optimization
a7b2e184 2011Reorder basic blocks and partition into hot and cold sections.
750054a2 2012
6ff3a151 2013freorder-functions
c662432e 2014Common Report Var(flag_reorder_functions) Optimization
a7b2e184 2015Reorder functions to improve code placement.
6ff3a151 2016
de32c0cb 2017frerun-cse-after-loop
3020190e 2018Common Report Var(flag_rerun_cse_after_loop) Optimization
a7b2e184 2019Add a common subexpression elimination pass after loop optimizations.
de32c0cb 2020
efa1cdf0 2021frerun-loop-opt
2d2bd949 2022Common Ignore
c0220ea4 2023Does nothing. Preserved for backward compatibility.
efa1cdf0 2024
039c3d42 2025frounding-math
5e46b0c6 2026Common Report Var(flag_rounding_math) Optimization SetByCombined
a7b2e184 2027Disable optimizations that assume default FP rounding behavior.
039c3d42 2028
6ff3a151 2029fsched-interblock
c662432e 2030Common Report Var(flag_schedule_interblock) Init(1) Optimization
a7b2e184 2031Enable scheduling across basic blocks.
6ff3a151 2032
ce18efcb
VM
2033fsched-pressure
2034Common Report Var(flag_sched_pressure) Init(0) Optimization
a7b2e184 2035Enable register pressure sensitive insn scheduling.
ce18efcb 2036
6ff3a151 2037fsched-spec
c662432e 2038Common Report Var(flag_schedule_speculative) Init(1) Optimization
a7b2e184 2039Allow speculative motion of non-loads.
6ff3a151
NB
2040
2041fsched-spec-load
c662432e 2042Common Report Var(flag_schedule_speculative_load) Optimization
a7b2e184 2043Allow speculative motion of some loads.
6ff3a151
NB
2044
2045fsched-spec-load-dangerous
c662432e 2046Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
a7b2e184 2047Allow speculative motion of more loads.
6ff3a151 2048
de32c0cb 2049fsched-verbose=
4111f1c9 2050Common RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
a7b2e184 2051-fsched-verbose=<number> Set the verbosity level of the scheduler.
de32c0cb 2052
6ff3a151 2053fsched2-use-superblocks
c662432e 2054Common Report Var(flag_sched2_use_superblocks) Optimization
a7b2e184 2055If scheduling post reload, do superblock scheduling.
6ff3a151
NB
2056
2057fsched2-use-traces
2d2bd949 2058Common Ignore
57257f0d 2059Does nothing. Preserved for backward compatibility.
6ff3a151 2060
de32c0cb 2061fschedule-insns
c662432e 2062Common Report Var(flag_schedule_insns) Optimization
a7b2e184 2063Reschedule instructions before register allocation.
de32c0cb
NB
2064
2065fschedule-insns2
c662432e 2066Common Report Var(flag_schedule_insns_after_reload) Optimization
a7b2e184 2067Reschedule instructions after register allocation.
de32c0cb 2068
e855c69d
AB
2069; This flag should be on when a target implements non-trivial
2070; scheduling hooks, maybe saving some information for its own sake.
a7b2e184 2071; On IA64, for example, this is used for correct bundling.
e855c69d
AB
2072fselective-scheduling
2073Common Report Var(flag_selective_scheduling) Optimization
a7b2e184 2074Schedule instructions using selective scheduling algorithm.
e855c69d
AB
2075
2076fselective-scheduling2
a7b2e184
MS
2077Common Report Var(flag_selective_scheduling2) Optimization
2078Run selective scheduling after reload.
e855c69d 2079
d9b950dd
DM
2080fself-test
2081Common Undocumented Var(flag_self_test)
2082Run self-tests.
2083
e855c69d
AB
2084fsel-sched-pipelining
2085Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
a7b2e184 2086Perform software pipelining of inner loops during selective scheduling.
e855c69d
AB
2087
2088fsel-sched-pipelining-outer-loops
2089Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
a7b2e184 2090Perform software pipelining of outer loops during selective scheduling.
e855c69d
AB
2091
2092fsel-sched-reschedule-pipelined
2093Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
a7b2e184 2094Reschedule pipelined regions without pipelining.
e855c69d 2095
e288a46c
JH
2096fsemantic-interposition
2097Common Report Var(flag_semantic_interposition) Init(1)
a7b2e184 2098Allow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
e288a46c 2099
31b66477
KC
2100; sched_stalled_insns means that insns can be moved prematurely from the queue
2101; of stalled insns into the ready list.
569fa502 2102fsched-stalled-insns
ab442df7 2103Common Report Var(flag_sched_stalled_insns) Optimization UInteger
a7b2e184 2104Allow premature scheduling of queued insns.
569fa502
DN
2105
2106fsched-stalled-insns=
b16650ac 2107Common RejectNegative Joined UInteger Optimization
a7b2e184 2108-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled.
569fa502 2109
31b66477
KC
2110; sched_stalled_insns_dep controls how many recently scheduled cycles will
2111; be examined for a dependency on a stalled insn that is candidate for
2112; premature removal from the queue of stalled insns into the ready list (has
2113; an effect only if the flag 'sched_stalled_insns' is set).
569fa502 2114fsched-stalled-insns-dep
ab442df7 2115Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
a7b2e184 2116Set dependence distance checking in premature scheduling of queued insns.
569fa502
DN
2117
2118fsched-stalled-insns-dep=
b16650ac 2119Common RejectNegative Joined UInteger Optimization
a7b2e184 2120-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns.
569fa502 2121
ee4764a8
GS
2122fsched-group-heuristic
2123Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
a7b2e184 2124Enable the group heuristic in the scheduler.
ee4764a8
GS
2125
2126fsched-critical-path-heuristic
2127Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
a7b2e184 2128Enable the critical path heuristic in the scheduler.
ee4764a8
GS
2129
2130fsched-spec-insn-heuristic
2131Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
a7b2e184 2132Enable the speculative instruction heuristic in the scheduler.
ee4764a8 2133
ee4764a8
GS
2134fsched-rank-heuristic
2135Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
a7b2e184 2136Enable the rank heuristic in the scheduler.
ee4764a8
GS
2137
2138fsched-last-insn-heuristic
2139Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
a7b2e184 2140Enable the last instruction heuristic in the scheduler.
ee4764a8
GS
2141
2142fsched-dep-count-heuristic
2143Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
a7b2e184 2144Enable the dependent count heuristic in the scheduler.
ee4764a8 2145
aacd3885 2146fsection-anchors
c662432e 2147Common Report Var(flag_section_anchors) Optimization
a7b2e184 2148Access data in the same section from shared anchor points.
aacd3885 2149
8cd37d0b 2150fsee
2d2bd949 2151Common Ignore
8393a9c8 2152Does nothing. Preserved for backward compatibility.
8cd37d0b 2153
87a0ebfd 2154fzee
26cd9add
EI
2155Common Ignore
2156Does nothing. Preserved for backward compatibility.
2157
2158free
2159Common Report Var(flag_ree) Init(0)
2160Turn on Redundant Extensions Elimination pass.
87a0ebfd 2161
8abb6b22 2162fshow-column
1cb42611 2163Common Report Var(flag_show_column) Init(1)
a7b2e184 2164Show column numbers in diagnostics, when available. Default on.
8abb6b22 2165
484db665
BS
2166fshrink-wrap
2167Common Report Var(flag_shrink_wrap) Optimization
2168Emit function prologues only before parts of the function that need it,
2169rather than at the top of the function.
2170
6ff3a151 2171fsignaling-nans
5e46b0c6 2172Common Report Var(flag_signaling_nans) Optimization SetByCombined
a7b2e184 2173Disable optimizations observable by IEEE signaling NaNs.
6ff3a151 2174
db02da79 2175fsigned-zeros
5e46b0c6 2176Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined
a7b2e184 2177Disable floating point optimizations that ignore the IEEE signedness of zero.
db02da79 2178
6ff3a151 2179fsingle-precision-constant
c662432e 2180Common Report Var(flag_single_precision_constant) Optimization
a7b2e184 2181Convert floating point constants to single precision constants.
6ff3a151 2182
113d659a 2183fsplit-ivs-in-unroller
c662432e 2184Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
a7b2e184 2185Split lifetimes of induction variables when loops are unrolled.
113d659a 2186
7458026b
ILT
2187fsplit-stack
2188Common Report Var(flag_split_stack) Init(-1)
a7b2e184 2189Generate discontiguous stack frames.
7458026b 2190
e53a16e7 2191fsplit-wide-types
21af5cdf 2192Common Report Var(flag_split_wide_types) Optimization
a7b2e184 2193Split wide types into independent registers.
e53a16e7 2194
6a75d560
RS
2195fssa-backprop
2196Common Report Var(flag_ssa_backprop) Init(1) Optimization
2197Enable backward propagation of use properties at the SSA level.
2198
68f6df73
RB
2199fssa-phiopt
2200Common Report Var(flag_ssa_phiopt) Optimization
a7b2e184 2201Optimize conditional patterns using SSA PHI nodes.
68f6df73 2202
98ce9490
TV
2203fstdarg-opt
2204Common Report Var(flag_stdarg_opt) Init(1) Optimization
a7b2e184 2205Optimize amount of stdarg registers saved to stack at start of function.
98ce9490 2206
f37a4f14 2207fvariable-expansion-in-unroller
c662432e 2208Common Report Var(flag_variable_expansion_in_unroller) Optimization
a7b2e184 2209Apply variable expansion when loops are unrolled.
f37a4f14 2210
b38f3813
EB
2211fstack-check=
2212Common Report RejectNegative Joined
a7b2e184 2213-fstack-check=[no|generic|specific] Insert stack checking code into the program.
b38f3813 2214
6ff3a151 2215fstack-check
5de8299c 2216Common Alias(fstack-check=, specific, no)
a7b2e184 2217Insert stack checking code into the program. Same as -fstack-check=specific.
6ff3a151 2218
de32c0cb 2219fstack-limit
21bf1558 2220Common Var(common_deferred_options) Defer
de32c0cb 2221
058de654 2222fstack-limit-register=
21bf1558 2223Common RejectNegative Joined Var(common_deferred_options) Defer
a7b2e184 2224-fstack-limit-register=<register> Trap if the stack goes past <register>.
058de654
NB
2225
2226fstack-limit-symbol=
21bf1558 2227Common RejectNegative Joined Var(common_deferred_options) Defer
a7b2e184 2228-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>.
058de654 2229
7d69de61 2230fstack-protector
5c846a81 2231Common Report Var(flag_stack_protect, 1) Init(-1) Optimization
a7b2e184 2232Use propolice as a stack protection method.
7d69de61
RH
2233
2234fstack-protector-all
5c846a81 2235Common Report RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
a7b2e184 2236Use a stack protection method for every function.
7d69de61 2237
f6bc1c4a 2238fstack-protector-strong
5c846a81 2239Common Report RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
a7b2e184 2240Use a smart stack protection method for certain functions.
f6bc1c4a 2241
5434dc07 2242fstack-protector-explicit
5c846a81 2243Common Report RejectNegative Var(flag_stack_protect, 4) Optimization
a7b2e184 2244Use stack protection method only for functions with the stack_protect attribute.
5434dc07 2245
d3c12306
EB
2246fstack-usage
2247Common RejectNegative Var(flag_stack_usage)
a7b2e184 2248Output stack usage information on a per-function basis.
d3c12306 2249
de32c0cb 2250fstrength-reduce
2d2bd949 2251Common Ignore
c0220ea4 2252Does nothing. Preserved for backward compatibility.
de32c0cb 2253
31b66477
KC
2254; Nonzero if we should do (language-dependent) alias analysis.
2255; Typically, this analysis will assume that expressions of certain
2256; types do not alias expressions of certain other types. Only used
2257; if alias analysis (in general) is enabled.
6ff3a151 2258fstrict-aliasing
c662432e 2259Common Report Var(flag_strict_aliasing) Optimization
a7b2e184 2260Assume strict aliasing rules apply.
6ff3a151 2261
eeef0e45 2262fstrict-overflow
b16650ac 2263Common Report Var(flag_strict_overflow) Optimization
a7b2e184 2264Treat signed overflow as undefined.
eeef0e45 2265
e8053cf5
RH
2266fsync-libcalls
2267Common Report Var(flag_sync_libcalls) Init(1)
a7b2e184 2268Implement __atomic operations via libcalls to legacy __sync functions.
e8053cf5 2269
de32c0cb 2270fsyntax-only
50431bc4 2271Common Report Var(flag_syntax_only)
a7b2e184 2272Check for syntax errors, then stop.
de32c0cb 2273
6ff3a151 2274ftest-coverage
50431bc4 2275Common Report Var(flag_test_coverage)
a7b2e184 2276Create data files needed by \"gcov\".
6ff3a151 2277
de32c0cb 2278fthread-jumps
c662432e 2279Common Report Var(flag_thread_jumps) Optimization
a7b2e184 2280Perform jump threading optimizations.
de32c0cb 2281
6ff3a151 2282ftime-report
50431bc4 2283Common Report Var(time_report)
a7b2e184 2284Report the time taken by each compiler pass.
6ff3a151 2285
058de654 2286ftls-model=
e6d4b984 2287Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
a7b2e184 2288-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model.
058de654 2289
e6d4b984
JM
2290Enum
2291Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
2292
2293EnumValue
2294Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
2295
2296EnumValue
2297Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
2298
2299EnumValue
2300Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
2301
2302EnumValue
2303Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
2304
474eccc6 2305ftoplevel-reorder
b16650ac 2306Common Report Var(flag_toplevel_reorder) Init(2)
a7b2e184 2307Reorder top level functions, variables, and asms.
474eccc6 2308
de32c0cb 2309ftracer
b16650ac 2310Common Report Var(flag_tracer) Optimization
a7b2e184 2311Perform superblock formation via tail duplication.
de32c0cb 2312
31b66477
KC
2313; Zero means that floating-point math operations cannot generate a
2314; (user-visible) trap. This is the case, for example, in nonstop
2315; IEEE 754 arithmetic.
6ff3a151 2316ftrapping-math
5e46b0c6 2317Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined
a7b2e184 2318Assume floating-point operations can trap.
6ff3a151
NB
2319
2320ftrapv
c662432e 2321Common Report Var(flag_trapv) Optimization
a7b2e184 2322Trap for signed overflow in addition, subtraction and multiplication.
6ff3a151 2323
6de9cd9a 2324ftree-ccp
c662432e 2325Common Report Var(flag_tree_ccp) Optimization
a7b2e184 2326Enable SSA-CCP optimization on trees.
6de9cd9a 2327
0b4b14ac
RG
2328ftree-bit-ccp
2329Common Report Var(flag_tree_bit_ccp) Optimization
a7b2e184 2330Enable SSA-BIT-CCP optimization on trees.
0b4b14ac 2331
0bca51f0 2332ftree-store-ccp
2d2bd949 2333Common Ignore
dce2b2f6 2334Does nothing. Preserved for backward compatibility.
0bca51f0 2335
6de9cd9a 2336ftree-ch
c662432e 2337Common Report Var(flag_tree_ch) Optimization
a7b2e184 2338Enable loop header copying on trees.
6de9cd9a 2339
21d01365 2340ftree-coalesce-inlined-vars
1f9ceff1
AO
2341Common Ignore RejectNegative
2342Does nothing. Preserved for backward compatibility.
21d01365
AO
2343
2344ftree-coalesce-vars
1f9ceff1 2345Common Report Var(flag_tree_coalesce_vars) Optimization
a7b2e184 2346Enable SSA coalescing of user variables.
21d01365 2347
6de9cd9a 2348ftree-copyrename
1f9ceff1
AO
2349Common Ignore
2350Does nothing. Preserved for backward compatibility.
6de9cd9a 2351
0bca51f0 2352ftree-copy-prop
c662432e 2353Common Report Var(flag_tree_copy_prop) Optimization
a7b2e184 2354Enable copy propagation on trees.
0bca51f0
DN
2355
2356ftree-store-copy-prop
2d2bd949 2357Common Ignore
e9033855 2358Does nothing. Preserved for backward compatibility.
0bca51f0 2359
a5828d1e
MM
2360ftree-cselim
2361Common Report Var(flag_tree_cselim) Init(2) Optimization
a7b2e184 2362Transform condition stores into unconditional ones.
a5828d1e 2363
b6e99746
MJ
2364ftree-switch-conversion
2365Common Report Var(flag_tree_switch_conversion) Optimization
2366Perform conversions of switch initializations.
2367
6de9cd9a 2368ftree-dce
c662432e 2369Common Report Var(flag_tree_dce) Optimization
a7b2e184 2370Enable SSA dead code elimination optimization on trees.
6de9cd9a
DN
2371
2372ftree-dominator-opts
c662432e 2373Common Report Var(flag_tree_dom) Optimization
a7b2e184 2374Enable dominator optimizations.
6de9cd9a 2375
c9e93168
TV
2376ftree-tail-merge
2377Common Report Var(flag_tree_tail_merge) Optimization
a7b2e184 2378Enable tail merging on trees.
c9e93168 2379
6de9cd9a 2380ftree-dse
c662432e 2381Common Report Var(flag_tree_dse) Optimization
a7b2e184 2382Enable dead store elimination.
6de9cd9a 2383
248fc9f3
RG
2384ftree-forwprop
2385Common Report Var(flag_tree_forwprop) Init(1) Optimization
a7b2e184 2386Enable forward propagation on trees.
248fc9f3 2387
ff2ad0f7 2388ftree-fre
c662432e 2389Common Report Var(flag_tree_fre) Optimization
a7b2e184 2390Enable Full Redundancy Elimination (FRE) on trees.
ff2ad0f7 2391
8b57bfeb
JJ
2392foptimize-strlen
2393Common Report Var(flag_optimize_strlen) Optimization
a7b2e184 2394Enable string length optimizations on trees.
8b57bfeb 2395
ae93744d
JL
2396fisolate-erroneous-paths-dereference
2397Common Report Var(flag_isolate_erroneous_paths_dereference) Optimization
408e8aa4
SL
2398Detect paths that trigger erroneous or undefined behavior due to
2399dereferencing a null pointer. Isolate those paths from the main control
2400flow and turn the statement with erroneous or undefined behavior into a trap.
ae93744d
JL
2401
2402fisolate-erroneous-paths-attribute
2403Common Report Var(flag_isolate_erroneous_paths_attribute) Optimization
408e8aa4
SL
2404Detect paths that trigger erroneous or undefined behavior due a null value
2405being used in a way forbidden by a returns_nonnull or nonnull
ae93744d 2406attribute. Isolate those paths from the main control flow and turn the
a7b2e184 2407statement with erroneous or undefined behavior into a trap.
8fdc414d 2408
dea61d92 2409ftree-loop-distribution
53ed2f0e 2410Common Report Var(flag_tree_loop_distribution) Optimization
a7b2e184 2411Enable loop distribution on trees.
dea61d92 2412
20769d5e
SP
2413ftree-loop-distribute-patterns
2414Common Report Var(flag_tree_loop_distribute_patterns) Optimization
a7b2e184 2415Enable loop distribution for patterns transformed into a library call.
20769d5e 2416
1b08d87d 2417ftree-loop-im
c662432e 2418Common Report Var(flag_tree_loop_im) Init(1) Optimization
a7b2e184 2419Enable loop invariant motion on trees.
a7e5372d 2420
599eabdb 2421ftree-loop-linear
d6bb5ccf 2422Common Alias(floop-nest-optimize)
a7b2e184 2423Enable loop nest transforms. Same as -floop-nest-optimize.
599eabdb 2424
1b08d87d 2425ftree-loop-ivcanon
c662432e 2426Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
a7b2e184 2427Create canonical induction variables in loops.
1b08d87d 2428
c66b6c66 2429ftree-loop-optimize
c662432e 2430Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
a7b2e184 2431Enable loop optimizations on tree level.
c66b6c66 2432
5f40b3cb 2433ftree-parallelize-loops=
b16650ac 2434Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
a7b2e184 2435Enable automatic parallelization of loops.
5f40b3cb 2436
248fc9f3
RG
2437ftree-phiprop
2438Common Report Var(flag_tree_phiprop) Init(1) Optimization
2439Enable hoisting loads from conditional pointers.
2440
6de9cd9a 2441ftree-pre
c662432e 2442Common Report Var(flag_tree_pre) Optimization
a7b2e184 2443Enable SSA-PRE optimization on trees.
6de9cd9a 2444
fa06ad0d
JR
2445ftree-partial-pre
2446Common Report Var(flag_tree_partial_pre) Optimization
a7b2e184 2447In SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
fa06ad0d 2448
248fc9f3 2449ftree-pta
14379e66 2450Common Report Var(flag_tree_pta) Optimization
248fc9f3
RG
2451Perform function-local points-to analysis on trees.
2452
13c59415
UB
2453ftree-reassoc
2454Common Report Var(flag_tree_reassoc) Init(1) Optimization
a7b2e184 2455Enable reassociation on tree level.
13c59415 2456
c75ab022 2457ftree-salias
2d2bd949 2458Common Ignore
1353232d 2459Does nothing. Preserved for backward compatibility.
c75ab022 2460
fa555252 2461ftree-sink
c662432e 2462Common Report Var(flag_tree_sink) Optimization
a7b2e184 2463Enable SSA code sinking on trees.
fa555252 2464
75cfe445
BS
2465ftree-slsr
2466Common Report Var(flag_tree_slsr) Optimization
a7b2e184 2467Perform straight-line strength reduction.
75cfe445 2468
6de9cd9a 2469ftree-sra
c662432e 2470Common Report Var(flag_tree_sra) Optimization
a7b2e184 2471Perform scalar replacement of aggregates.
6de9cd9a
DN
2472
2473ftree-ter
3020190e 2474Common Report Var(flag_tree_ter) Optimization
a7b2e184 2475Replace temporary expressions in the SSA->normal pass.
6de9cd9a 2476
c662432e
NC
2477ftree-lrs
2478Common Report Var(flag_tree_live_range_split) Optimization
a7b2e184 2479Perform live range splitting during the SSA->normal pass.
c662432e 2480
0bca51f0 2481ftree-vrp
c662432e 2482Common Report Var(flag_tree_vrp) Init(0) Optimization
a7b2e184 2483Perform Value Range Propagation on trees.
0bca51f0 2484
8fe17e23
AA
2485fsplit-paths
2486Common Report Var(flag_split_paths) Init(0) Optimization
2487Split paths leading to loop backedges.
2488
71017a7b
AL
2489funconstrained-commons
2490Common Var(flag_unconstrained_commons) Optimization
2491Assume common declarations may be overridden with ones with a larger
2492trailing array.
2493
de32c0cb 2494funit-at-a-time
b16650ac 2495Common Report Var(flag_unit_at_a_time) Init(1)
a7b2e184 2496Compile whole compilation unit at a time.
de32c0cb
NB
2497
2498funroll-loops
c662432e 2499Common Report Var(flag_unroll_loops) Optimization
a7b2e184 2500Perform loop unrolling when iteration count is known.
de32c0cb
NB
2501
2502funroll-all-loops
c662432e 2503Common Report Var(flag_unroll_all_loops) Optimization
a7b2e184 2504Perform loop unrolling for all loops.
de32c0cb 2505
f9cc1a70
PB
2506; Nonzero means that loop optimizer may assume that the induction variables
2507; that control loops do not overflow and that the loops with nontrivial
2508; exit condition are not infinite
2509funsafe-loop-optimizations
c662432e 2510Common Report Var(flag_unsafe_loop_optimizations) Optimization
a7b2e184 2511Allow loop optimizations to assume that the loops behave in normal way.
f9cc1a70 2512
a1a82611 2513fassociative-math
b16650ac 2514Common Report Var(flag_associative_math) SetByCombined Optimization
a1a82611
RE
2515Allow optimization for floating-point arithmetic which may change the
2516result of the operation due to rounding.
2517
2518freciprocal-math
b16650ac 2519Common Report Var(flag_reciprocal_math) SetByCombined Optimization
a1a82611
RE
2520Same as -fassociative-math for expressions which include division.
2521
31b66477
KC
2522; Nonzero means that unsafe floating-point math optimizations are allowed
2523; for the sake of speed. IEEE compliance is not guaranteed, and operations
2524; are allowed to assume that their arguments and results are "normal"
2525; (e.g., nonnegative for SQRT).
6ff3a151 2526funsafe-math-optimizations
5e46b0c6 2527Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined
a7b2e184 2528Allow math optimizations that may violate IEEE or ISO standards.
6ff3a151 2529
de32c0cb 2530funswitch-loops
c662432e 2531Common Report Var(flag_unswitch_loops) Optimization
a7b2e184 2532Perform loop unswitching.
de32c0cb 2533
6ff3a151 2534funwind-tables
c662432e 2535Common Report Var(flag_unwind_tables) Optimization
a7b2e184 2536Just generate unwind tables for exception handling.
6ff3a151 2537
b352afba 2538fuse-ld=bfd
b78e932d 2539Common Driver Negative(fuse-ld=gold)
a7b2e184 2540Use the bfd linker instead of the default linker.
b352afba
NC
2541
2542fuse-ld=gold
b78e932d 2543Common Driver Negative(fuse-ld=bfd)
a7b2e184 2544Use the gold linker instead of the default linker.
b352afba 2545
da18ea94 2546fuse-linker-plugin
063d671d 2547Common Undocumented Var(flag_use_linker_plugin)
da18ea94 2548
e90afde6
JM
2549; Positive if we should track variables, negative if we should run
2550; the var-tracking pass only to discard debug annotations, zero if
2551; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it
2552; will be set according to optimize, debug_info_level and debug_hooks
2553; in process_options ().
014a1138 2554fvar-tracking
e90afde6 2555Common Report Var(flag_var_tracking) Init(2) Optimization
a7b2e184 2556Perform variable tracking.
014a1138 2557
e90afde6
JM
2558; Positive if we should track variables at assignments, negative if
2559; we should run the var-tracking pass only to discard debug
2560; annotations. When flag_var_tracking_assignments ==
2561; AUTODETECT_VALUE it will be set according to flag_var_tracking.
b5b8b0ac 2562fvar-tracking-assignments
e90afde6 2563Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
a7b2e184 2564Perform variable tracking by annotating assignments.
b5b8b0ac 2565
e90afde6
JM
2566; Nonzero if we should toggle flag_var_tracking_assignments after
2567; processing options and computing its default. */
b5b8b0ac 2568fvar-tracking-assignments-toggle
e90afde6 2569Common Report Var(flag_var_tracking_assignments_toggle) Optimization
a7b2e184 2570Toggle -fvar-tracking-assignments.
b5b8b0ac 2571
1267ca30
EB
2572; Positive if we should track uninitialized variables, negative if
2573; we should run the var-tracking pass only to discard debug
2574; annotations. When flag_var_tracking_uninit == AUTODETECT_VALUE it
2575; will be set according to flag_var_tracking.
62760ffd
CT
2576fvar-tracking-uninit
2577Common Report Var(flag_var_tracking_uninit) Optimization
a7b2e184 2578Perform variable tracking and also tag variables that are uninitialized.
62760ffd 2579
79fe1b3b 2580ftree-vectorize
c662432e 2581Common Report Var(flag_tree_vectorize) Optimization
a7b2e184 2582Enable vectorization on trees.
79fe1b3b 2583
78c60e3d 2584ftree-vectorizer-verbose=
477e804b
SS
2585Common Joined RejectNegative Ignore
2586Does nothing. Preserved for backward compatibility.
78c60e3d 2587
ea0f3e87
XDL
2588ftree-loop-vectorize
2589Common Report Var(flag_tree_loop_vectorize) Optimization
a7b2e184 2590Enable loop vectorization on trees.
ea0f3e87 2591
a70d6342 2592ftree-slp-vectorize
ea0f3e87 2593Common Report Var(flag_tree_slp_vectorize) Optimization
a7b2e184 2594Enable basic block vectorization (SLP) on trees.
a70d6342 2595
d6d11272 2596fvect-cost-model=
b16650ac 2597Common Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
a7b2e184
MS
2598Specifies the cost model for vectorization.
2599
8b5e1202 2600fsimd-cost-model=
b16650ac 2601Common Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
a7b2e184 2602Specifies the vectorization cost model for code marked with a simd directive.
8b5e1202 2603
d6d11272
XDL
2604Enum
2605Name(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
2606
2607EnumValue
2608Enum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
2609
2610EnumValue
2611Enum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
2612
2613EnumValue
2614Enum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
2615
792ed98b 2616fvect-cost-model
d6d11272
XDL
2617Common RejectNegative Alias(fvect-cost-model=,dynamic)
2618Enables the dynamic vectorizer cost model. Preserved for backward compatibility.
2619
2620fno-vect-cost-model
2621Common RejectNegative Alias(fvect-cost-model=,unlimited)
2622Enables the unlimited vectorizer cost model. Preserved for backward compatibility.
792ed98b 2623
c12cc930 2624ftree-vect-loop-version
d6d11272
XDL
2625Common Ignore
2626Does nothing. Preserved for backward compatibility.
c12cc930 2627
fbf798fc 2628ftree-scev-cprop
21af5cdf 2629Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
fbf798fc
DN
2630Enable copy propagation of scalar-evolution information.
2631
31b66477
KC
2632; -fverbose-asm causes extra commentary information to be produced in
2633; the generated assembly code (to make it more readable). This option
2634; is generally only of use to those who actually need to read the
2635; generated assembly code (perhaps while debugging the compiler itself).
2636; -fno-verbose-asm, the default, causes the extra information
2637; to not be added and is useful when comparing two assembler files.
6ff3a151 2638fverbose-asm
50431bc4 2639Common Report Var(flag_verbose_asm)
a7b2e184 2640Add extra commentary to assembler output.
6ff3a151 2641
d7afec4b 2642fvisibility=
e6d4b984 2643Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
a7b2e184 2644-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility.
d7afec4b 2645
e6d4b984
JM
2646Enum
2647Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
2648
2649EnumValue
2650Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
2651
2652EnumValue
2653Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
2654
2655EnumValue
2656Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
2657
2658EnumValue
2659Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
d7afec4b 2660
2077db1b
CT
2661fvtable-verify=
2662Common Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
2663Validate vtable pointers before using them.
2664
2665Enum
2666Name(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
2667
2668EnumValue
2669Enum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
2670
2671EnumValue
2672Enum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
2673
2674EnumValue
2675Enum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
2676
2677fvtv-counts
2678Common Var(flag_vtv_counts)
2679Output vtable verification counters.
2680
2681fvtv-debug
2682Common Var(flag_vtv_debug)
2683Output vtable verification pointer sets information.
2684
fca9dc00 2685fvpt
c662432e 2686Common Report Var(flag_value_profile_transformations) Optimization
a7b2e184 2687Use expression value profiles in optimizations.
fca9dc00 2688
62551c66 2689fweb
c662432e 2690Common Report Var(flag_web) Init(2) Optimization
a7b2e184 2691Construct webs and split unrelated uses of single variable.
62551c66 2692
c2699190
XDL
2693ftree-builtin-call-dce
2694Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
a7b2e184 2695Enable conditional dead code elimination for builtin calls.
c2699190 2696
ce91e74c 2697fwhole-program
b16650ac 2698Common Report Var(flag_whole_program) Init(0)
a7b2e184 2699Perform whole program optimizations.
ce91e74c 2700
6ff3a151 2701fwrapv
c662432e 2702Common Report Var(flag_wrapv) Optimization
a7b2e184 2703Assume signed arithmetic overflow wraps around.
6ff3a151 2704
6ff3a151 2705fzero-initialized-in-bss
50431bc4 2706Common Report Var(flag_zero_initialized_in_bss) Init(1)
a7b2e184 2707Put zero initialized data in the bss section.
6ff3a151 2708
e01cc6dc
NB
2709g
2710Common JoinedOrMissing
a7b2e184 2711Generate debug information in default format.
df38ffef
NB
2712
2713gcoff
6782438d 2714Common JoinedOrMissing Negative(gdwarf)
a7b2e184 2715Generate debug information in COFF format.
df38ffef 2716
6782438d
SKS
2717gdwarf
2718Common JoinedOrMissing Negative(gdwarf-)
a7b2e184 2719Generate debug information in default version of DWARF format.
6782438d 2720
53b2323e 2721gdwarf-
98095aa3 2722Common Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs)
a7b2e184 2723Generate debug information in DWARF v2 (or later) format.
df38ffef
NB
2724
2725ggdb
2726Common JoinedOrMissing
a7b2e184 2727Generate debug information in default extended format.
df38ffef 2728
5175cbaf 2729gno-pubnames
7a1dd0fa 2730Common Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
5175cbaf
SA
2731Don't generate DWARF pubnames and pubtypes sections.
2732
2733gpubnames
7a1dd0fa 2734Common Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
5175cbaf
SA
2735Generate DWARF pubnames and pubtypes sections.
2736
7a1dd0fa
SA
2737ggnu-pubnames
2738Common Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
2739Generate DWARF pubnames and pubtypes sections with GNU extensions.
2740
e967adf4 2741gno-record-gcc-switches
98095aa3 2742Common RejectNegative Var(dwarf_record_gcc_switches,0) Init(1)
e967adf4
JJ
2743Don't record gcc command line switches in DWARF DW_AT_producer.
2744
2745grecord-gcc-switches
2746Common RejectNegative Var(dwarf_record_gcc_switches,1)
2747Record gcc command line switches in DWARF DW_AT_producer.
2748
99ea153e
SA
2749gno-split-dwarf
2750Common Driver RejectNegative Var(dwarf_split_debug_info,0) Init(0)
a7b2e184 2751Don't generate debug information in separate .dwo files.
99ea153e
SA
2752
2753gsplit-dwarf
2754Common Driver RejectNegative Var(dwarf_split_debug_info,1)
a7b2e184 2755Generate debug information in separate .dwo files.
99ea153e 2756
df38ffef 2757gstabs
14c7833c 2758Common JoinedOrMissing Negative(gstabs+)
a7b2e184 2759Generate debug information in STABS format.
df38ffef
NB
2760
2761gstabs+
14c7833c 2762Common JoinedOrMissing Negative(gvms)
a7b2e184 2763Generate debug information in extended STABS format.
df38ffef 2764
65f753a0 2765gno-strict-dwarf
98095aa3 2766Common RejectNegative Var(dwarf_strict,0) Init(0)
a7b2e184 2767Emit DWARF additions beyond selected version.
65f753a0
JJ
2768
2769gstrict-dwarf
f0036cca 2770Common Report RejectNegative Var(dwarf_strict,1)
a7b2e184 2771Don't emit DWARF additions beyond selected version.
65f753a0 2772
2153915d
AO
2773gtoggle
2774Common Report Var(flag_gtoggle)
a7b2e184 2775Toggle debug information generation.
2153915d 2776
df38ffef 2777gvms
14c7833c 2778Common JoinedOrMissing Negative(gxcoff)
a7b2e184 2779Generate debug information in VMS format.
df38ffef
NB
2780
2781gxcoff
14c7833c 2782Common JoinedOrMissing Negative(gxcoff+)
a7b2e184 2783Generate debug information in XCOFF format.
df38ffef
NB
2784
2785gxcoff+
14c7833c 2786Common JoinedOrMissing Negative(gcoff)
a7b2e184 2787Generate debug information in extended XCOFF format.
e01cc6dc 2788
29d7cbd1
RO
2789Enum
2790Name(compressed_debug_sections) Type(int)
2791
2792; Since -gz= is completely handled in specs, the values aren't used and we
2793; assign arbitrary constants.
2794EnumValue
2795Enum(compressed_debug_sections) String(none) Value(0)
2796
2797EnumValue
2798Enum(compressed_debug_sections) String(zlib) Value(1)
2799
2800EnumValue
2801Enum(compressed_debug_sections) String(zlib-gnu) Value(2)
2802
2803gz
2804Common Driver
a7b2e184 2805Generate compressed debug sections.
29d7cbd1
RO
2806
2807gz=
2808Common Driver Joined Enum(compressed_debug_sections)
a7b2e184 2809-gz=<format> Generate compressed debug sections in format <format>.
29d7cbd1 2810
6d721f67
JM
2811h
2812Driver Joined Separate
2813
4adbd5dd
MK
2814iplugindir=
2815Common Joined Var(plugindir_string) Init(0)
a7b2e184 2816-iplugindir=<dir> Set <dir> to be the default plugin directory.
4adbd5dd 2817
e0cdc09f
MK
2818imultiarch
2819Common Joined Separate RejectDriver Var(imultiarch) Init(0)
a7b2e184 2820-imultiarch <dir> Set <dir> to be the multiarch include subdirectory.
e0cdc09f 2821
603349bf
JM
2822l
2823Driver Joined Separate
2824
dd9f93dc
JM
2825n
2826Driver
2827
603349bf
JM
2828no-canonical-prefixes
2829Driver
2830
d9d16a19
JM
2831nodefaultlibs
2832Driver
2833
bab79a40
JM
2834nostartfiles
2835Driver
2836
d9d16a19
JM
2837nostdlib
2838Driver
2839
d185d268 2840o
d5478783 2841Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
a7b2e184 2842-o <file> Place output into <file>.
d185d268
NB
2843
2844p
50431bc4 2845Common Var(profile_flag)
a7b2e184 2846Enable function profiling.
d185d268 2847
603349bf
JM
2848pass-exit-codes
2849Driver Var(pass_exit_codes)
2850
d185d268 2851pedantic
c1771a20 2852Common Alias(Wpedantic)
d185d268
NB
2853
2854pedantic-errors
d5478783 2855Common Var(flag_pedantic_errors)
a7b2e184 2856Like -pedantic but issue them as errors.
d185d268 2857
d9d16a19
JM
2858pg
2859Driver
2860
603349bf
JM
2861pipe
2862Driver Var(use_pipes)
2863
2864print-file-name=
2865Driver JoinedOrMissing Var(print_file_name)
2866
2867print-libgcc-file-name
2868Driver
2869
2870print-multi-directory
2871Driver Var(print_multi_directory)
2872
2873print-multi-lib
2874Driver Var(print_multi_lib)
2875
2876print-multi-os-directory
2877Driver Var(print_multi_os_directory)
a7b2e184 2878
e0cdc09f
MK
2879print-multiarch
2880Driver Var(print_multiarch)
603349bf
JM
2881
2882print-prog-name=
2883Driver JoinedOrMissing Var(print_prog_name)
2884
2885print-search-dirs
2886Driver Var(print_search_dirs)
2887
2888print-sysroot
2889Driver Var(print_sysroot)
2890
2891print-sysroot-headers-suffix
2892Driver Var(print_sysroot_headers_suffix)
2893
d7b42618 2894quiet
603349bf 2895Common Var(quiet_flag) RejectDriver
a7b2e184 2896Do not display functions compiled or elapsed time.
d7b42618 2897
dd9f93dc
JM
2898r
2899Driver
2900
2901s
2902Driver
2903
603349bf
JM
2904save-temps
2905Driver
2906
2907save-temps=
2908Driver Joined
2909
dd9f93dc
JM
2910t
2911Driver
2912
603349bf
JM
2913time
2914Driver Var(report_times)
2915
2916time=
2917Driver JoinedOrMissing
2918
e200444e
JM
2919u
2920Driver Joined Separate
2921
5642f5d5
JM
2922undef
2923Driver
2924; C option, but driver must not handle as "-u ndef".
2925
603349bf 2926v
d5478783 2927Common Driver Var(verbose_flag)
a7b2e184 2928Enable verbose output.
603349bf 2929
d185d268 2930version
603349bf 2931Common Var(version_flag) RejectDriver
a7b2e184 2932Display the compiler's version.
d185d268
NB
2933
2934w
50431bc4 2935Common Var(inhibit_warnings)
a7b2e184 2936Suppress warnings.
d185d268 2937
603349bf
JM
2938wrapper
2939Driver Separate Var(wrapper_string)
2940
2941x
2942Driver Joined Separate
2943
528dc603 2944shared
5460e1fc 2945Driver RejectNegative Negative(pie)
a7b2e184 2946Create a shared library.
528dc603 2947
603349bf
JM
2948shared-libgcc
2949Driver
2950
2951specs
5de8299c 2952Driver Separate Alias(specs=)
603349bf
JM
2953
2954specs=
2955Driver Joined
2956
d9d16a19
JM
2957static
2958Driver
2959
603349bf
JM
2960static-libgcc
2961Driver
2962
2963static-libgfortran
2964Driver
2965; Documented for Fortran, but always accepted by driver.
2966
2967static-libstdc++
2968Driver
2969
7a938933
ILT
2970static-libgo
2971Driver
2972; Documented for Go, but always accepted by driver.
2973
7e8d1b2d
L
2974static-libasan
2975Driver
2976
32b4b7f5
DV
2977static-libtsan
2978Driver
2979
9065ada9
JJ
2980static-liblsan
2981Driver
2982
de5a5fa1
MP
2983static-libubsan
2984Driver
2985
e200444e
JM
2986symbolic
2987Driver
2988
428b3812 2989no-pie
5460e1fc 2990Driver RejectNegative Negative(shared)
a7b2e184 2991Don't create a position independent executable.
428b3812
L
2992
2993pie
2994Driver RejectNegative Negative(no-pie)
a7b2e184 2995Create a position independent executable.
528dc603 2996
6d721f67
JM
2997z
2998Driver Joined Separate
2999
1e288103
TV
3000fipa-ra
3001Common Report Var(flag_ipa_ra) Optimization
a7b2e184 3002Use caller save register across calls if possible.
d996e61a 3003
d7b42618 3004; This comment is to ensure we retain the blank line above.