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