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