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