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