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