]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/common.opt
* config/rx/rx.h (LIB_SPEC): Match -msim not -msim*.
[thirdparty/gcc.git] / gcc / common.opt
CommitLineData
3272db82 1; Options for the language- and target-independent parts of the compiler.
2e9da478 2
ecee1b29 3; Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
7765591b 4; Free Software Foundation, Inc.
3272db82 5;
6; This file is part of GCC.
7;
8; GCC is free software; you can redistribute it and/or modify it under
9; the terms of the GNU General Public License as published by the Free
8c4c00c1 10; Software Foundation; either version 3, or (at your option) any later
3272db82 11; version.
a0c938f0 12;
3272db82 13; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
14; WARRANTY; without even the implied warranty of MERCHANTABILITY or
15; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16; for more details.
a0c938f0 17;
3272db82 18; You should have received a copy of the GNU General Public License
8c4c00c1 19; along with GCC; see the file COPYING3. If not see
20; <http://www.gnu.org/licenses/>.
3272db82 21
a4b0007b 22; See the GCC internals manual (options.texi) for a description of this file's format.
3272db82 23
24; Please try to keep this file in ASCII collating order.
25
0f8defe5 26Variable
27int target_flags
28
2c5d2e39 29Variable
30int optimize
31
32Variable
33int optimize_size
34
f3f006ad 35; 0 means straightforward implementation of complex divide acceptable.
36; 1 means wide ranges of inputs must work for complex divide.
37; 2 means C99-like requirements for complex multiply and divide.
38Variable
39int flag_complex_method = 1
40
41; Nonzero if subexpressions must be evaluated from left-to-right.
42Variable
43int flag_evaluation_order = 0
44
f3f006ad 45; Language specific warning pass for unused results.
46Variable
47bool flag_warn_unused_result = false
48
56f280c4 49Variable
50int *param_values
51
6bd9d862 52; Nonzero if we should write GIMPLE bytecode for link-time optimization.
53Variable
54int flag_generate_lto
55
56; True to warn about any objects definitions whose size is larger
57; than N bytes. Also want about function definitions whose returned
58; values are larger than N bytes, where N is 'larger_than_size'.
59Variable
60bool warn_larger_than
61
62Variable
63HOST_WIDE_INT larger_than_size
64
65; True to warn about any function whose frame size is larger
66; than N bytes.
67Variable
68bool warn_frame_larger_than
69
70Variable
71HOST_WIDE_INT frame_larger_than_size
72
73; Nonzero means we should be saving declaration info into a .X file.
74Variable
75int flag_gen_aux_info = 0
76
77; Nonzero if we are compiling code for a shared library, zero for
78; executable.
79Variable
80int flag_shlib
81
470a0ecd 82; These two are really VEC(char_p,heap) *.
83
84Variable
85void *flag_instrument_functions_exclude_functions
86
87Variable
88void *flag_instrument_functions_exclude_files
89
d7175aef 90; Generic structs (e.g. templates not explicitly specialized)
91; may not have a compilation unit associated with them, and so
92; may need to be treated differently from ordinary structs.
93;
94; Structs only handled by reference (indirectly), will also usually
95; not need as much debugging information.
96
97Variable
98enum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
99
100Variable
101enum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
102
cc4fa57a 103; True if we should exit after parsing options.
104Variable
105bool exit_after_options
106
107; Type(s) of debugging information we are producing (if any). See
108; flag-types.h for the definitions of the different possible types of
109; debugging information.
110Variable
111enum debug_info_type write_symbols = NO_DEBUG
112
113; Level of debugging information we are producing. See flag-types.h
114; for the definitions of the different possible levels.
115Variable
116enum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
117
118; Nonzero means use GNU-only extensions in the generated symbolic
119; debugging information. Currently, this only has an effect when
120; write_symbols is set to DBX_DEBUG, XCOFF_DEBUG, or DWARF_DEBUG.
121Variable
122bool use_gnu_debug_info_extensions
123
9faf44d6 124; Original value of maximum field alignment in bytes, specified via
125; -fpack-struct=<value>.
126Variable
127unsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
128
295e1243 129Variable
130enum vect_verbosity_levels user_vect_verbosity_level = MAX_VERBOSITY_LEVEL
131
ab3728ee 132; Type of stack check.
133Variable
134enum stack_check_type flag_stack_check = NO_STACK_CHECK
135
9faf44d6 136; -dA causes debug commentary information to be produced in
137; the generated assembly code (to make it more readable). This option
138; is generally only of use to those who actually need to read the
139; generated assembly code (perhaps while debugging the compiler itself).
140; Currently, this switch is only used by dwarf2out.c; however, it is intended
141; to be a catchall for printing debug information in the assembler file.
142Variable
143int flag_debug_asm
144
145; -dP causes the rtl to be emitted as a comment in assembly.
146Variable
147int flag_dump_rtl_in_asm
148
149; Whether -da was passed (used only in handle_common_deferred_options).
150Variable
151bool flag_dump_all_passed
152
153; Other flags saying which kinds of debugging dump have been requested.
154
155Variable
156int rtl_dump_and_exit
157
158Variable
159int flag_print_asm_name
160
161Variable
162enum graph_dump_types graph_dump_format = no_graph
163
0e763b2a 164; Name of top-level original source file (what was input to cpp).
165; This comes from the #-command at the beginning of the actual input.
166; If there isn't any there, then this is the cc1 input file name.
167Variable
168const char *main_input_filename
169
170; Pointer to base name in main_input_filename, with directories and a
171; single final extension removed, and the length of this base
172; name.
173
174Variable
175const char *main_input_basename
176
177Variable
178int main_input_baselength
179
9faf44d6 180; Which options have been printed by --help.
181Variable
182char *help_printed
183
d62a5950 184; Which enums have been printed by --help. 0 = not printed, no
185; relevant options seen, 1 = relevant option seen, not yet printed, 2
186; = printed.
187Variable
188char *help_enum_printed
189
9faf44d6 190; The number of columns for --help output.
191Variable
192unsigned int help_columns
193
194; Whether this options structure has been through finish_options
195Variable
196bool flag_opts_finished
197
e28aa114 198###
199Driver
200
5789e05b 201-assemble
202Driver Alias(S)
203
204-compile
205Driver Alias(c)
206
207-coverage
208Driver Alias(coverage)
209
210-debug
211Common Alias(g)
212
213-dump
214Common Separate Alias(d)
215
216-dump=
217Common Joined Alias(d)
218
219-dumpbase
220Common Separate Alias(dumpbase)
221
222-dumpdir
223Common Separate Alias(dumpdir)
224
225-entry
226Driver Separate Alias(e)
227
228-entry=
229Driver Joined Alias(e)
230
231-extra-warnings
232Common Warning Alias(Wextra)
233
234-for-assembler
235Driver Separate Alias(Xassembler)
236
237-for-assembler=
238Driver JoinedOrMissing Alias(Xassembler)
239
240-for-linker
241Driver Separate Alias(Xlinker)
242
243-for-linker=
244Driver JoinedOrMissing Alias(Xlinker)
245
246-force-link
247Driver Separate Alias(u)
248
249-force-link=
250Driver Joined Alias(u)
251
e690b385 252-help
5789e05b 253Common Driver Var(help_flag)
53b8e5c1 254Display this information
e690b385 255
87c75316 256-help=
e28aa114 257Common Driver Report Joined
87c75316 258--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params
da3b1bab 259
5789e05b 260-language
261Driver Separate Alias(x)
262
263-language=
264Driver Joined Alias(x)
265
266-library-directory
267Driver Separate Alias(L)
268
269-library-directory=
270Driver Joined Alias(L)
271
272-no-canonical-prefixes
273Driver Alias(no-canonical-prefixes)
274
275-no-standard-libraries
276Driver Alias(nostdlib)
277
278-no-warnings
279Common Alias(w)
280
281-optimize
282Common Alias(O)
283
284-output
285Common Driver Separate Alias(o) MissingArgError(missing filename after %qs)
286
287-output=
288Common Driver Joined Alias(o) MissingArgError(missing filename after %qs)
289
290-pass-exit-codes
291Driver Alias(pass-exit-codes)
292
293-pedantic
294Common Alias(pedantic)
295
296-pedantic-errors
297Common Alias(pedantic-errors)
298
299-pie
300Common Alias(pie)
301
302-pipe
303Driver Alias(pipe)
304
305-prefix
306Driver Separate Alias(B)
307
308-prefix=
309Driver JoinedOrMissing Alias(B)
310
311-preprocess
312Driver Alias(E)
313
314-print-file-name
315Driver Separate Alias(print-file-name=)
316
317-print-file-name=
318Driver JoinedOrMissing Alias(print-file-name=)
319
320-print-libgcc-file-name
321Driver Alias(print-libgcc-file-name)
322
323-print-multi-directory
324Driver Alias(print-multi-directory)
325
326-print-multi-lib
327Driver Alias(print-multi-lib)
328
329-print-multi-os-directory
330Driver Alias(print-multi-os-directory)
331
332-print-prog-name
333Driver Separate Alias(print-prog-name=)
334
335-print-prog-name=
336Driver JoinedOrMissing Alias(print-prog-name=)
337
338-print-search-dirs
339Driver Alias(print-search-dirs)
340
341-print-sysroot
342Driver Alias(print-sysroot)
343
344-print-sysroot-headers-suffix
345Driver Alias(print-sysroot-headers-suffix)
346
347-profile
348Common Alias(p)
349
350-save-temps
351Driver Alias(save-temps)
352
353-shared
354Common Alias(shared)
355
356-specs
357Driver Separate Alias(specs=)
358
359-specs=
360Driver Joined Alias(specs=)
361
362-static
363Driver Alias(static)
364
365-symbolic
366Driver Alias(symbolic)
367
e690b385 368-target-help
e28aa114 369Common Driver
87c75316 370Alias for --help=target
371
5789e05b 372-time
373Driver Alias(time)
374
375-verbose
376Driver Alias(v)
377
378;; The driver used to convert options such as --help into forms such
379;; as -fhelp; the following four entries are for compatibility with
380;; any direct uses of those (undocumented) -f forms
87c75316 381fhelp
5789e05b 382Common Driver Alias(-help)
87c75316 383
384fhelp=
5789e05b 385Common Driver Joined Alias(-help=)
87c75316 386
387ftarget-help
5789e05b 388Common Driver Alias(-target-help)
87c75316 389
39932bd2 390fversion
5789e05b 391Common Driver Alias(-version)
39932bd2 392
87c75316 393-param
394Common Separate
395--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters
e690b385 396
5789e05b 397-param=
398Common Joined Alias(-param)
399
400-sysroot
401Driver Separate Alias(-sysroot=)
402
e28aa114 403-sysroot=
404Driver JoinedOrMissing
405
e690b385 406-version
e28aa114 407Common Driver
408
409B
410Driver Joined Separate
411
412E
413Driver
e690b385 414
cb22f930 415L
416Driver Joined Separate
417
3bfde2af 418N
419Driver
420
da3b1bab 421O
46f8e3b0 422Common JoinedOrMissing Optimization
53b8e5c1 423-O<number> Set optimization level to <number>
da3b1bab 424
425Os
46f8e3b0 426Common Optimization
53b8e5c1 427Optimize for space rather than speed
da3b1bab 428
1ebc0b9f 429Ofast
430Common Optimization
431Optimize for speed disregarding exact standards compliance
432
3bfde2af 433Q
434Driver
435
436Qn
437Driver Negative(Qy)
438
439Qy
440Driver Negative(Qn)
441
f37ef985 442R
443Driver Joined Separate
444
e28aa114 445S
446Driver
447
f37ef985 448T
449Driver Joined Separate
450
451Tbss
452Driver Separate
453
454Tdata
455Driver Separate
456
457Ttext
458Driver Separate
459
da3b1bab 460W
67089c6b 461Common RejectNegative Warning Alias(Wextra)
bb0814ce 462This switch is deprecated; use -Wextra instead
da3b1bab 463
e28aa114 464Wa,
465Driver JoinedOrMissing
466
467Wl,
468Driver JoinedOrMissing
469
470Wp,
471Driver JoinedOrMissing
472
6f2f567f 473Waggregate-return
87c75316 474Common Var(warn_aggregate_return) Warning
bb0814ce 475Warn about returning structures, unions or arrays
6f2f567f 476
5bc96398 477Warray-bounds
e8831472 478Common Var(warn_array_bounds) Warning
5bc96398 479Warn if an array is accessed out of bounds
480
9b2d6d13 481Wattributes
87c75316 482Common Var(warn_attributes) Init(1) Warning
9b2d6d13 483Warn about inappropriate attribute usage
484
6f2f567f 485Wcast-align
87c75316 486Common Var(warn_cast_align) Warning
bb0814ce 487Warn about pointer casts which increase alignment
6f2f567f 488
3a79f5da 489Wcpp
490Common Var(warn_cpp) Init(1) Warning
491Warn when a #warning directive is encountered
492
6f2f567f 493Wdeprecated-declarations
87c75316 494Common Var(warn_deprecated_decl) Init(1) Warning
bb0814ce 495Warn about uses of __attribute__((deprecated)) declarations
6f2f567f 496
497Wdisabled-optimization
87c75316 498Common Var(warn_disabled_optimization) Warning
bb0814ce 499Warn when an optimization pass is disabled
6f2f567f 500
501Werror
2e9da478 502Common Var(warnings_are_errors)
bb0814ce 503Treat all warnings as errors
6f2f567f 504
76f02516 505Werror=
506Common Joined
507Treat specified warning as error
508
da3b1bab 509Wextra
a0ded67b 510Common Var(extra_warnings) Warning
53b8e5c1 511Print extra (possibly unwanted) warnings
da3b1bab 512
295acf4f 513Wfatal-errors
2e9da478 514Common Var(flag_fatal_errors)
295acf4f 515Exit on the first error occurred
516
6fdade09 517Wframe-larger-than=
518Common RejectNegative Joined UInteger
cf210371 519-Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes
6fdade09 520
6f2f567f 521Winline
87c75316 522Common Var(warn_inline) Warning
bb0814ce 523Warn when an inlined function cannot be inlined
6f2f567f 524
525Wlarger-than-
67089c6b 526Common RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
17c66687 527
528Wlarger-than=
529Common RejectNegative Joined UInteger Warning
530-Wlarger-than=<number> Warn if an object is larger than <number> bytes
6f2f567f 531
7e3cc681 532Wunsafe-loop-optimizations
87c75316 533Common Var(warn_unsafe_loop_optimizations) Warning
7e3cc681 534Warn if the loop cannot be optimized due to nontrivial assumptions.
535
6f2f567f 536Wmissing-noreturn
87c75316 537Common Var(warn_missing_noreturn) Warning
bb0814ce 538Warn about functions which might be candidates for __attribute__((noreturn))
6f2f567f 539
f63eb5d3 540Wmudflap
541Common Var(warn_mudflap) Init(1) Warning
542Warn about constructs not instrumented by -fmudflap
543
55972f40 544Woverflow
87c75316 545Common Var(warn_overflow) Init(1) Warning
55972f40 546Warn about overflow in arithmetic expressions
547
6f2f567f 548Wpacked
87c75316 549Common Var(warn_packed) Warning
bb0814ce 550Warn when the packed attribute has no effect on struct layout
6f2f567f 551
552Wpadded
87c75316 553Common Var(warn_padded) Warning
bb0814ce 554Warn when padding is required to align structure members
6f2f567f 555
556Wshadow
87c75316 557Common Var(warn_shadow) Warning
bb0814ce 558Warn when one local variable shadows another
6f2f567f 559
f1a0edff 560Wstack-protector
87c75316 561Common Var(warn_stack_protect) Warning
f1a0edff 562Warn when not issuing stack smashing protection for some reason
563
6f2f567f 564Wstrict-aliasing
87c75316 565Common Warning
bb0814ce 566Warn about code which might break strict aliasing rules
6f2f567f 567
c1628b55 568Wstrict-aliasing=
212cc995 569Common Joined RejectNegative UInteger Var(warn_strict_aliasing) Init(-1) Warning
c1628b55 570Warn about code which might break strict aliasing rules
571
add6ee5e 572Wstrict-overflow
e8831472 573Common Warning
add6ee5e 574Warn about optimizations that assume that signed overflow is undefined
575
576Wstrict-overflow=
212cc995 577Common Joined RejectNegative UInteger Var(warn_strict_overflow) Init(-1) Warning
add6ee5e 578Warn about optimizations that assume that signed overflow is undefined
579
2c06958d 580Wsuggest-attribute=const
581Common Var(warn_suggest_attribute_const) Warning
582Warn about functions which might be candidates for __attribute__((const))
583
584Wsuggest-attribute=pure
585Common Var(warn_suggest_attribute_pure) Warning
586Warn about functions which might be candidates for __attribute__((pure))
587
43d60d64 588Wsuggest-attribute=noreturn
589Common Var(warn_suggest_attribute_noreturn) Warning
590Warn about functions which might be candidates for __attribute__((noreturn))
591
6f2f567f 592Wswitch
87c75316 593Common Var(warn_switch) Warning
bb0814ce 594Warn about enumerated switches, with no default, missing a case
6f2f567f 595
596Wswitch-default
87c75316 597Common Var(warn_switch_default) Warning
bb0814ce 598Warn about enumerated switches missing a \"default:\" statement
6f2f567f 599
600Wswitch-enum
87c75316 601Common Var(warn_switch_enum) Warning
bb0814ce 602Warn about all enumerated switches missing a specific case
6f2f567f 603
604Wsystem-headers
87c75316 605Common Var(warn_system_headers) Warning
72528c71 606Do not suppress warnings from system headers
6f2f567f 607
8bc8a8f4 608Wtrampolines
609Common Var(warn_trampolines) Warning
610Warn whenever a trampoline is generated
611
100b67da 612Wtype-limits
613Common Var(warn_type_limits) Init(-1) Warning
614Warn if a comparison is always true or always false due to the limited range of the data type
615
6f2f567f 616Wuninitialized
a0ded67b 617Common Var(warn_uninitialized) Init(-1) Warning
bb0814ce 618Warn about uninitialized automatic variables
6f2f567f 619
620Wunreachable-code
3b0273a1 621Common Ignore
cc029bec 622Does nothing. Preserved for backward compatibility.
6f2f567f 623
da3b1bab 624Wunused
278e3a1f 625Common Var(warn_unused) Init(0) Warning
53b8e5c1 626Enable all -Wunused- warnings
da3b1bab 627
abc6c64f 628Wunused-but-set-parameter
629Common Var(warn_unused_but_set_parameter) Init(-1) Warning
630Warn when a function parameter is only set, otherwise unused
631
632Wunused-but-set-variable
633Common Var(warn_unused_but_set_variable) Init(-1) Warning
634Warn when a variable is only set, otherwise unused
635
6f2f567f 636Wunused-function
278e3a1f 637Common Var(warn_unused_function) Init(-1) Warning
bb0814ce 638Warn when a function is unused
6f2f567f 639
640Wunused-label
278e3a1f 641Common Var(warn_unused_label) Init(-1) Warning
bb0814ce 642Warn when a label is unused
6f2f567f 643
644Wunused-parameter
278e3a1f 645Common Var(warn_unused_parameter) Init(-1) Warning
bb0814ce 646Warn when a function parameter is unused
6f2f567f 647
648Wunused-value
278e3a1f 649Common Var(warn_unused_value) Init(-1) Warning
bb0814ce 650Warn when an expression value is unused
6f2f567f 651
652Wunused-variable
278e3a1f 653Common Var(warn_unused_variable) Init(-1) Warning
bb0814ce 654Warn when a variable is unused
6f2f567f 655
c81ed7c1 656Wcoverage-mismatch
21cd990d 657Common Var(warn_coverage_mismatch) Init(1) Warning
658Warn in case profiles in -fprofile-use do not match
c81ed7c1 659
e28aa114 660Xassembler
661Driver Separate
662
663Xlinker
664Driver Separate
665
666Xpreprocessor
667Driver Separate
668
3bfde2af 669Z
670Driver
671
e690b385 672aux-info
6bd9d862 673Common Separate Var(aux_info_file_name)
53b8e5c1 674-aux-info <file> Emit declaration information into <file>
e690b385 675
676aux-info=
67089c6b 677Common Joined Alias(aux-info)
e690b385 678
679auxbase
6bd9d862 680Common Separate RejectDriver Var(aux_base_name)
e690b385 681
682auxbase-strip
e28aa114 683Common Separate RejectDriver
684
5789e05b 685coverage
686Driver
687
e28aa114 688c
689Driver
e690b385 690
691d
692Common Joined
53b8e5c1 693-d<letters> Enable dumps from specific passes of the compiler
e690b385 694
695dumpbase
6bd9d862 696Common Separate Var(dump_base_name)
53b8e5c1 697-dumpbase <file> Set the file basename to be used for dumps
e690b385 698
50ca7c37 699dumpdir
6bd9d862 700Common Separate Var(dump_dir_name)
eb21bbd2 701-dumpdir <dir> Set the directory name to be used for dumps
50ca7c37 702
e28aa114 703dumpmachine
704Driver
705
706dumpspecs
707Driver
708
709dumpversion
710Driver
711
5789e05b 712e
713Driver Joined Separate
714
82a16202 715; The version of the C++ ABI in use. The following values are allowed:
716;
717; 0: The version of the ABI believed most conformant with the C++ ABI
718; specification. This ABI may change as bugs are discovered and fixed.
719; Therefore, 0 will not necessarily indicate the same ABI in different
720; versions of G++.
721;
722; 1: The version of the ABI first used in G++ 3.2.
723;
29e2e80a 724; 2: The version of the ABI first used in G++ 3.4 (and current default).
725;
726; 3: The version of the ABI that fixes the missing underscore
727; in template non-type arguments of pointer type.
728;
729; 4: The version of the ABI that introduces unambiguous mangling of
730; vector types.
e9e7c198 731;
82a16202 732; Additional positive integers will be assigned as new versions of
733; the ABI become the default version of the ABI.
e100aadc 734fabi-version=
212cc995 735Common Joined RejectNegative UInteger Var(flag_abi_version) Init(2)
e100aadc 736
ecdb6d1a 737falign-functions
46f8e3b0 738Common Report Var(align_functions,0) Optimization UInteger
72528c71 739Align the start of functions
ecdb6d1a 740
941a4893 741falign-functions=
6bd9d862 742Common RejectNegative Joined UInteger Var(align_functions)
941a4893 743
ecdb6d1a 744falign-jumps
46f8e3b0 745Common Report Var(align_jumps,0) Optimization UInteger
72528c71 746Align labels which are only reached by jumping
ecdb6d1a 747
941a4893 748falign-jumps=
6bd9d862 749Common RejectNegative Joined UInteger Var(align_jumps)
941a4893 750
ecdb6d1a 751falign-labels
46f8e3b0 752Common Report Var(align_labels,0) Optimization UInteger
72528c71 753Align all labels
ecdb6d1a 754
941a4893 755falign-labels=
6bd9d862 756Common RejectNegative Joined UInteger Var(align_labels)
941a4893 757
ecdb6d1a 758falign-loops
c17f64cc 759Common Report Var(align_loops,0) Optimization UInteger
72528c71 760Align the start of loops
ecdb6d1a 761
941a4893 762falign-loops=
6bd9d862 763Common RejectNegative Joined UInteger Var(align_loops)
941a4893 764
ecdb6d1a 765fargument-alias
3b0273a1 766Common Ignore
e190b18a 767Does nothing. Preserved for backward compatibility.
ecdb6d1a 768
769fargument-noalias
3b0273a1 770Common Ignore
e190b18a 771Does nothing. Preserved for backward compatibility.
ecdb6d1a 772
773fargument-noalias-global
3b0273a1 774Common Ignore
e190b18a 775Does nothing. Preserved for backward compatibility.
ecdb6d1a 776
5ff22aea 777fargument-noalias-anything
3b0273a1 778Common Ignore
e190b18a 779Does nothing. Preserved for backward compatibility.
5ff22aea 780
ecdb6d1a 781fasynchronous-unwind-tables
87c75316 782Common Report Var(flag_asynchronous_unwind_tables) Optimization
72528c71 783Generate unwind tables that are exact at each instruction boundary
ecdb6d1a 784
3072d30e 785fauto-inc-dec
786Common Report Var(flag_auto_inc_dec) Init(1)
787Generate auto-inc/dec instructions
788
82a16202 789; -fcheck-bounds causes gcc to generate array bounds checks.
790; For C, C++ and ObjC: defaults off.
791; For Java: defaults to on.
792; For Fortran: defaults to off.
ecdb6d1a 793fbounds-check
2e9da478 794Common Report Var(flag_bounds_check)
72528c71 795Generate code to check bounds before indexing arrays
ecdb6d1a 796
797fbranch-count-reg
87c75316 798Common Report Var(flag_branch_on_count_reg) Init(1) Optimization
72528c71 799Replace add, compare, branch with branch on count register
ecdb6d1a 800
801fbranch-probabilities
87c75316 802Common Report Var(flag_branch_probabilities) Optimization
72528c71 803Use profiling information for branch probabilities
ecdb6d1a 804
1e06725a 805fbranch-target-load-optimize
87c75316 806Common Report Var(flag_branch_target_load_optimize) Optimization
72528c71 807Perform branch target load optimization before prologue / epilogue threading
1e06725a 808
809fbranch-target-load-optimize2
87c75316 810Common Report Var(flag_branch_target_load_optimize2) Optimization
72528c71 811Perform branch target load optimization after prologue / epilogue threading
1e06725a 812
08d163a9 813fbtr-bb-exclusive
87c75316 814Common Report Var(flag_btr_bb_exclusive) Optimization
08d163a9 815Restrict target load migration not to re-use registers in any basic block
816
941a4893 817fcall-saved-
f0da0668 818Common Joined RejectNegative Var(common_deferred_options) Defer
53b8e5c1 819-fcall-saved-<register> Mark <register> as being preserved across functions
941a4893 820
821fcall-used-
f0da0668 822Common Joined RejectNegative Var(common_deferred_options) Defer
53b8e5c1 823-fcall-used-<register> Mark <register> as being corrupted by function calls
941a4893 824
82a16202 825; Nonzero for -fcaller-saves: allocate values in regs that need to
826; be saved across function calls, if that produces overall better code.
827; Optional now, so people can test it.
1e06725a 828fcaller-saves
87c75316 829Common Report Var(flag_caller_saves) Optimization
72528c71 830Save registers around function calls
1e06725a 831
355572cc 832fcheck-data-deps
833Common Report Var(flag_check_data_deps)
834Compare the results of several data dependence analyzers.
835
bbb0a662 836fcombine-stack-adjustments
837Common Report Var(flag_combine_stack_adjustments) Optimization
838Looks for opportunities to reduce stack adjustments and stack references.
839
ecdb6d1a 840fcommon
87c75316 841Common Report Var(flag_no_common,0) Optimization
72528c71 842Do not put uninitialized globals in the common section
ecdb6d1a 843
e28aa114 844fcompare-debug
845Driver
846; Converted by the driver to -fcompare-debug= options.
847
71278019 848fcompare-debug=
e28aa114 849Common Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
cf210371 850-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump
71278019 851
852fcompare-debug-second
ab3728ee 853Common Driver RejectNegative Var(flag_compare_debug)
71278019 854Run only the second compilation of -fcompare-debug
855
a50372fe 856fcompare-elim
857Common Report Var(flag_compare_elim_after_reload) Optimization
858Perform comparison elimination after register allocation has finished
859
9845d120 860fconserve-stack
861Common Var(flag_conserve_stack) Optimization
862Do not perform optimizations increasing noticeably stack usage
863
ecdb6d1a 864fcprop-registers
87c75316 865Common Report Var(flag_cprop_registers) Optimization
72528c71 866Perform a register copy-propagation optimization pass
ecdb6d1a 867
1e06725a 868fcrossjumping
87c75316 869Common Report Var(flag_crossjumping) Optimization
72528c71 870Perform cross-jumping optimization
1e06725a 871
872fcse-follow-jumps
87c75316 873Common Report Var(flag_cse_follow_jumps) Optimization
72528c71 874When running CSE, follow jumps to their targets
1e06725a 875
876fcse-skip-blocks
3b0273a1 877Common Ignore
d743aba2 878Does nothing. Preserved for backward compatibility.
1e06725a 879
45b9d334 880fcx-limited-range
ecee1b29 881Common Report Var(flag_cx_limited_range) Optimization SetByCombined
45b9d334 882Omit range reduction step when performing complex division
883
608256a0 884fcx-fortran-rules
885Common Report Var(flag_cx_fortran_rules) Optimization
886Complex multiplication and division follow Fortran rules
887
ecdb6d1a 888fdata-sections
87c75316 889Common Report Var(flag_data_sections) Optimization
72528c71 890Place data items into their own section
ecdb6d1a 891
d2153a46 892fdbg-cnt-list
9faf44d6 893Common Report Var(common_deferred_options) Defer
d2153a46 894List all available debugging counters with their limits and counts.
895
3072d30e 896fdbg-cnt=
9faf44d6 897Common RejectNegative Joined Var(common_deferred_options) Defer
cf210371 898-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit.
3072d30e 899
5f1f2de5 900fdebug-prefix-map=
9faf44d6 901Common Joined RejectNegative Var(common_deferred_options) Defer
5f1f2de5 902Map one directory name to another in debug information
903
82a16202 904; Nonzero for -fdefer-pop: don't pop args after each function call
905; instead save them up to pop many calls' args with one insns.
1e06725a 906fdefer-pop
87c75316 907Common Report Var(flag_defer_pop) Optimization
72528c71 908Defer popping functions args from stack until later
1e06725a 909
910fdelayed-branch
87c75316 911Common Report Var(flag_delayed_branch) Optimization
72528c71 912Attempt to fill delay slots of branch instructions
1e06725a 913
914fdelete-null-pointer-checks
7df298fe 915Common Report Var(flag_delete_null_pointer_checks) Init(1) Optimization
72528c71 916Delete useless null pointer checks
1e06725a 917
16358a63 918fdevirtualize
919Common Report Var(flag_devirtualize) Optimization
920Try to convert virtual calls to direct ones.
921
1e06725a 922fdiagnostics-show-location=
d62a5950 923Common Joined RejectNegative Enum(diagnostic_prefixing_rule)
53b8e5c1 924-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics
1e06725a 925
d62a5950 926; Required for these enum values.
927SourceInclude
928pretty-print.h
929
930Enum
931Name(diagnostic_prefixing_rule) Type(int)
932
933EnumValue
934Enum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
935
936EnumValue
937Enum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
938
efb9d9ee 939fdiagnostics-show-option
3fee9a69 940Common Var(flag_diagnostics_show_option) Init(1)
3284a242 941Amend appropriate diagnostic messages with the command line option that controls them
efb9d9ee 942
4ee9c684 943fdump-
f0da0668 944Common Joined RejectNegative Var(common_deferred_options) Defer
4ee9c684 945-fdump-<type> Dump various compiler internals to a file
946
0b1d266f 947fdump-final-insns
948Driver RejectNegative
949
71278019 950fdump-final-insns=
951Common RejectNegative Joined Var(flag_dump_final_insns)
952-fdump-final-insns=filename Dump to filename the insns at the end of translation
953
929d2a90 954fdump-go-spec=
955Common RejectNegative Joined Var(flag_dump_go_spec)
956-fdump-go-spec=filename Write all declarations to file as Go code
957
969239ad 958fdump-noaddr
959Common Report Var(flag_dump_noaddr)
960Suppress output of addresses in debugging dumps
961
ecdb6d1a 962fdump-unnumbered
0f8defe5 963Common Report Var(flag_dump_unnumbered)
969239ad 964Suppress output of instruction numbers, line number notes and addresses in debugging dumps
ecdb6d1a 965
0a59e439 966fdump-unnumbered-links
0f8defe5 967Common Report Var(flag_dump_unnumbered_links)
0a59e439 968Suppress output of previous and next insn numbers in debugging dumps
969
9845d120 970fdwarf2-cfi-asm
971Common Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
972Enable CFI tables via GAS assembler directives.
973
f1aa280c 974fearly-inlining
87c75316 975Common Report Var(flag_early_inlining) Init(1) Optimization
f1aa280c 976Perform early inlining
977
1e06725a 978feliminate-dwarf2-dups
2e9da478 979Common Report Var(flag_eliminate_dwarf2_dups)
72528c71 980Perform DWARF2 duplicate elimination
1e06725a 981
2f29eac3 982fipa-sra
983Common Report Var(flag_ipa_sra) Init(0) Optimization
984Perform interprocedural reduction of aggregates
985
262444a6 986feliminate-unused-debug-symbols
2e9da478 987Common Report Var(flag_debug_only_used_symbols)
72528c71 988Perform unused type elimination in debug info
262444a6 989
1e06725a 990feliminate-unused-debug-types
2e9da478 991Common Report Var(flag_eliminate_unused_debug_types) Init(1)
72528c71 992Perform unused type elimination in debug info
1e06725a 993
0c573f98 994femit-class-debug-always
fd5e1dfe 995Common Report Var(flag_emit_class_debug_always) Init(0)
0c573f98 996Do not suppress C++ class debug information.
997
d907ec51 998fenable-icf-debug
999Common Report Var(flag_enable_icf_debug)
1000Generate debug information to support Identical Code Folding (ICF)
1001
ecdb6d1a 1002fexceptions
87c75316 1003Common Report Var(flag_exceptions) Optimization
72528c71 1004Enable exception handling
ecdb6d1a 1005
1e06725a 1006fexpensive-optimizations
87c75316 1007Common Report Var(flag_expensive_optimizations) Optimization
72528c71 1008Perform a number of minor, expensive optimizations
1e06725a 1009
c6418a4e 1010fexcess-precision=
d62a5950 1011Common Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT)
c6418a4e 1012-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision
1013
d62a5950 1014Enum
1015Name(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
1016
1017EnumValue
1018Enum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
1019
1020EnumValue
1021Enum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
1022
941a4893 1023ffast-math
1024Common
1025
ecdb6d1a 1026ffinite-math-only
ecee1b29 1027Common Report Var(flag_finite_math_only) Optimization SetByCombined
72528c71 1028Assume no NaNs or infinities are generated
ecdb6d1a 1029
941a4893 1030ffixed-
f0da0668 1031Common Joined RejectNegative Var(common_deferred_options) Defer
53b8e5c1 1032-ffixed-<register> Mark <register> as being unavailable to the compiler
941a4893 1033
1e06725a 1034ffloat-store
87c75316 1035Common Report Var(flag_float_store) Optimization
82a16202 1036Don't allocate floats and doubles in extended-precision registers
1e06725a 1037
1038fforce-addr
3b0273a1 1039Common Ignore
4d25f9eb 1040Does nothing. Preserved for backward compatibility.
1e06725a 1041
55d51835 1042fforward-propagate
1043Common Report Var(flag_forward_propagate) Optimization
42a3a38b 1044Perform a forward propagation pass on RTL
1045
b9be572e 1046ffp-contract=
d62a5950 1047Common Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST)
b9be572e 1048-ffp-contract=[off|on|fast] Perform floating-point expression contraction.
1049
d62a5950 1050Enum
1051Name(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
1052
1053EnumValue
1054Enum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
1055
1056; Not implemented, fall back to conservative FP_CONTRACT_OFF.
1057EnumValue
1058Enum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
1059
1060EnumValue
1061Enum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
1062
82a16202 1063; Nonzero means don't put addresses of constant functions in registers.
1064; Used for compiling the Unix kernel, where strange substitutions are
1065; done on the assembly output.
1e06725a 1066ffunction-cse
2e9da478 1067Common Report Var(flag_no_function_cse,0)
72528c71 1068Allow function addresses to be held in registers
1e06725a 1069
ecdb6d1a 1070ffunction-sections
2e9da478 1071Common Report Var(flag_function_sections)
72528c71 1072Place each function into its own section
ecdb6d1a 1073
1e06725a 1074fgcse
87c75316 1075Common Report Var(flag_gcse) Optimization
72528c71 1076Perform global common subexpression elimination
1e06725a 1077
1078fgcse-lm
87c75316 1079Common Report Var(flag_gcse_lm) Init(1) Optimization
72528c71 1080Perform enhanced load motion during global common subexpression elimination
1e06725a 1081
1082fgcse-sm
87c75316 1083Common Report Var(flag_gcse_sm) Init(0) Optimization
72528c71 1084Perform store motion after global common subexpression elimination
1e06725a 1085
5c47e414 1086fgcse-las
87c75316 1087Common Report Var(flag_gcse_las) Init(0) Optimization
839f8415 1088Perform redundant load after store elimination in global common subexpression
1089elimination
1090
1091fgcse-after-reload
87c75316 1092Common Report Var(flag_gcse_after_reload) Optimization
839f8415 1093Perform global common subexpression elimination after register allocation
3284a242 1094has finished
5c47e414 1095
d3399492 1096; This option is not documented yet as its semantics will change.
255b6be7 1097fgraphite
1098Common Report Var(flag_graphite)
1099Enable in and out of Graphite representation
1100
26c166eb 1101fgraphite-identity
1102Common Report Var(flag_graphite_identity) Optimization
1103Enable Graphite Identity transformation
1104
16848556 1105floop-parallelize-all
1106Common Report Var(flag_loop_parallelize_all) Optimization
26c166eb 1107Mark all loops as parallel
1108
255b6be7 1109floop-strip-mine
1110Common Report Var(flag_loop_strip_mine) Optimization
1111Enable Loop Strip Mining transformation
1112
1113floop-interchange
1114Common Report Var(flag_loop_interchange) Optimization
1115Enable Loop Interchange transformation
1116
1117floop-block
1118Common Report Var(flag_loop_block) Optimization
1119Enable Loop Blocking transformation
1120
d60a90cc 1121floop-flatten
1122Common Report Var(flag_loop_flatten) Optimization
1123Enable Loop Flattening transformation
1124
a420d927 1125fstrict-volatile-bitfields
1126Common Report Var(flag_strict_volatile_bitfields) Init(-1)
1127Force bitfield accesses to match their type width
1128
ecdb6d1a 1129fguess-branch-probability
87c75316 1130Common Report Var(flag_guess_branch_prob) Optimization
72528c71 1131Enable guessing of branch probabilities
ecdb6d1a 1132
82a16202 1133; Nonzero means ignore `#ident' directives. 0 means handle them.
1134; Generate position-independent code for executables if possible
1135; On SVR4 targets, it also controls whether or not to emit a
1136; string identifying the compiler.
ecdb6d1a 1137fident
2e9da478 1138Common Report Var(flag_no_ident,0)
72528c71 1139Process #ident directives
ecdb6d1a 1140
1e06725a 1141fif-conversion
87c75316 1142Common Report Var(flag_if_conversion) Optimization
72528c71 1143Perform conversion of conditional jumps to branchless equivalents
1e06725a 1144
1145fif-conversion2
87c75316 1146Common Report Var(flag_if_conversion2) Optimization
72528c71 1147Perform conversion of conditional jumps to conditional execution
1e06725a 1148
0cb1935d 1149ftree-loop-if-convert
1150Common Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
1151Convert conditional jumps in innermost loops to branchless equivalents
1152
3b91ccd9 1153ftree-loop-if-convert-stores
1154Common Report Var(flag_tree_loop_if_convert_stores) Optimization
1155Also if-convert conditional jumps containing memory writes
1156
82a16202 1157; -finhibit-size-directive inhibits output of .size for ELF.
1158; This is used only for compiling crtstuff.c,
1159; and it may be extended to other effects
1160; needed for crtstuff.c on other systems.
ecdb6d1a 1161finhibit-size-directive
2e9da478 1162Common Report Var(flag_inhibit_size_directive)
72528c71 1163Do not generate .size directives
ecdb6d1a 1164
f8daee9b 1165findirect-inlining
1166Common Report Var(flag_indirect_inlining)
1167Perform indirect inlining
1168
82a16202 1169; Nonzero means that functions declared `inline' will be treated
1170; as `static'. Prevents generation of zillions of copies of unused
1171; static inline functions; instead, `inlines' are written out
1172; only when actually used. Used in conjunction with -g. Also
1173; does the right thing with #pragma interface.
1e06725a 1174finline
1c2f0012 1175Common Report Var(flag_no_inline,0) Init(0)
72528c71 1176Pay attention to the \"inline\" keyword
1e06725a 1177
b97510b2 1178finline-small-functions
1179Common Report Var(flag_inline_small_functions) Optimization
1180Integrate simple functions into their callers when code size is known to not growth
1181
1e06725a 1182finline-functions
87c75316 1183Common Report Var(flag_inline_functions) Optimization
72528c71 1184Integrate simple functions into their callers
1e06725a 1185
f1aa280c 1186finline-functions-called-once
87c75316 1187Common Report Var(flag_inline_functions_called_once) Init(1) Optimization
f1aa280c 1188Integrate functions called once into their callers
9e0baf4d 1189
39470ac3 1190finline-limit-
67089c6b 1191Common RejectNegative Joined Alias(finline-limit=)
39470ac3 1192
1193finline-limit=
1194Common RejectNegative Joined UInteger
53b8e5c1 1195-finline-limit=<number> Limit the size of inlined functions to <number>
39470ac3 1196
ecdb6d1a 1197finstrument-functions
2e9da478 1198Common Report Var(flag_instrument_function_entry_exit)
72528c71 1199Instrument function entry and exit with profiling calls
ecdb6d1a 1200
a95c0776 1201finstrument-functions-exclude-function-list=
1202Common RejectNegative Joined
1203-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions
1204
1205finstrument-functions-exclude-file-list=
1206Common RejectNegative Joined
1207-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files
1208
a17a73c7 1209fipa-cp
87c75316 1210Common Report Var(flag_ipa_cp) Optimization
a17a73c7 1211Perform Interprocedural constant propagation
1212
2a15795f 1213fipa-cp-clone
1214Common Report Var(flag_ipa_cp_clone) Optimization
1215Perform cloning to make Interprocedural constant propagation stronger
1216
4e2db0ad 1217fipa-profile
1218Common Report Var(flag_ipa_profile) Init(0) Optimization
1219Perform interprocedural profile propagation
f7d118a9 1220
bdf4f142 1221fipa-pta
87c75316 1222Common Report Var(flag_ipa_pta) Init(0) Optimization
bdf4f142 1223Perform interprocedural points-to analysis
1224
4e2db0ad 1225fipa-pure-const
1226Common Report Var(flag_ipa_pure_const) Init(0) Optimization
1227Discover pure and const functions
1228
f7d118a9 1229fipa-reference
87c75316 1230Common Report Var(flag_ipa_reference) Init(0) Optimization
f7d118a9 1231Discover readonly and non addressable static variables
1232
604cde73 1233fipa-matrix-reorg
76c71f34 1234Common Report Var(flag_ipa_matrix_reorg) Optimization
604cde73 1235Perform matrix layout flattening and transposing based
1236on profiling information.
1237
f27ac341 1238fipa-struct-reorg
1239Common Report Var(flag_ipa_struct_reorg)
1240Perform structure layout optimizations based
1241on profiling information.
1242
47dd2e78 1243fira-algorithm=
d62a5950 1244Common Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB)
14792f4e 1245-fira-algorithm=[CB|priority] Set the used IRA algorithm
1246
d62a5950 1247Enum
1248Name(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
1249
1250EnumValue
1251Enum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
1252
1253EnumValue
1254Enum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
1255
14792f4e 1256fira-region=
d62a5950 1257Common Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_MIXED)
14792f4e 1258-fira-region=[one|all|mixed] Set regions for IRA
47dd2e78 1259
d62a5950 1260Enum
1261Name(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
1262
1263EnumValue
1264Enum(ira_region) String(one) Value(IRA_REGION_ONE)
1265
1266EnumValue
1267Enum(ira_region) String(all) Value(IRA_REGION_ALL)
1268
1269EnumValue
1270Enum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
1271
e8eed2f8 1272fira-loop-pressure
1273Common Report Var(flag_ira_loop_pressure)
1274Use IRA based register pressure calculation
1275in RTL loop optimizations.
1276
47dd2e78 1277fira-share-save-slots
1278Common Report Var(flag_ira_share_save_slots) Init(1)
1279Share slots for saving different hard registers.
1280
1281fira-share-spill-slots
1282Common Report Var(flag_ira_share_spill_slots) Init(1)
1283Share stack slots for spilled pseudo-registers.
1284
1285fira-verbose=
4aafe913 1286Common RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
cf210371 1287-fira-verbose=<number> Control IRA's level of diagnostic messages.
47dd2e78 1288
dec41e98 1289fivopts
87c75316 1290Common Report Var(flag_ivopts) Init(1) Optimization
dec41e98 1291Optimize induction variables on trees
1292
51d8e657 1293fjump-tables
87c75316 1294Common Var(flag_jump_tables) Init(1) Optimization
51d8e657 1295Use jump tables for sufficiently large switch statements
1296
1e06725a 1297fkeep-inline-functions
2e9da478 1298Common Report Var(flag_keep_inline_functions)
72528c71 1299Generate code for functions even if they are fully inlined
1e06725a 1300
1301fkeep-static-consts
2e9da478 1302Common Report Var(flag_keep_static_consts) Init(1)
72528c71 1303Emit static const variables even if they are not used
1e06725a 1304
ecdb6d1a 1305fleading-underscore
2e9da478 1306Common Report Var(flag_leading_underscore) Init(-1)
72528c71 1307Give external symbols a leading underscore
ecdb6d1a 1308
4f87b914 1309floop-optimize
3b0273a1 1310Common Ignore
334ec2d8 1311Does nothing. Preserved for backward compatibility.
4f87b914 1312
7bfefa9d 1313flto
cbcf2791 1314Common
7bfefa9d 1315Enable link-time optimization.
1316
cbcf2791 1317flto=
1318Common RejectNegative Joined Var(flag_lto)
1319Link-time optimization with number of parallel jobs or jobserver.
1320
48e3ea52 1321flto-partition=1to1
1322Common Var(flag_lto_partition_1to1)
1323Partition functions and vars at linktime based on object files they originate from
1324
1325flto-partition=balanced
1326Common Var(flag_lto_partition_balanced)
1327Partition functions and vars at linktime into approximately same sized buckets
1328
cbcf2791 1329flto-partition=none
1330Common Var(flag_lto_partition_none)
1331Disable partioning and streaming
1332
7bfefa9d 1333; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
1334flto-compression-level=
212cc995 1335Common Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1)
cf210371 1336-flto-compression-level=<number> Use zlib compression level <number> for IL
7bfefa9d 1337
1338flto-report
1339Common Report Var(flag_lto_report) Init(0) Optimization
1340Report various link-time optimization statistics
1341
ecdb6d1a 1342fmath-errno
ecee1b29 1343Common Report Var(flag_errno_math) Init(1) Optimization SetByCombined
72528c71 1344Set errno after built-in math functions
ecdb6d1a 1345
566d7c74 1346fmax-errors=
1347Common Joined RejectNegative UInteger Var(flag_max_errors)
1348-fmax-errors=<number> Maximum number of errors to report
1349
ecdb6d1a 1350fmem-report
2e9da478 1351Common Report Var(mem_report)
72528c71 1352Report on permanent memory allocation
ecdb6d1a 1353
82a16202 1354; This will attempt to merge constant section constants, if 1 only
1355; string constants and constants from constant pool, if 2 also constant
1356; variables.
ecdb6d1a 1357fmerge-all-constants
87c75316 1358Common Report Var(flag_merge_constants,2) Init(1) Optimization
72528c71 1359Attempt to merge identical constants and constant variables
ecdb6d1a 1360
1361fmerge-constants
5461e683 1362Common Report Var(flag_merge_constants,1) Optimization
72528c71 1363Attempt to merge identical constants across compilation units
ecdb6d1a 1364
7765591b 1365fmerge-debug-strings
1366Common Report Var(flag_merge_debug_strings) Init(1)
1367Attempt to merge identical debug strings across compilation units
1368
1e06725a 1369fmessage-length=
1370Common RejectNegative Joined UInteger
53b8e5c1 1371-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping
1e06725a 1372
406a73e7 1373fmodulo-sched
87c75316 1374Common Report Var(flag_modulo_sched) Optimization
406a73e7 1375Perform SMS based modulo scheduling before the first scheduling pass
1376
3a943084 1377fmodulo-sched-allow-regmoves
1378Common Report Var(flag_modulo_sched_allow_regmoves)
1379Perform SMS based modulo scheduling with register moves allowed
1380
3a0ecac2 1381fmove-loop-invariants
87c75316 1382Common Report Var(flag_move_loop_invariants) Init(1) Optimization
3a0ecac2 1383Move loop invariant computations out of loops
1384
4ee9c684 1385fmudflap
2e9da478 1386Common RejectNegative Report Var(flag_mudflap)
3284a242 1387Add mudflap bounds-checking instrumentation for single-threaded program
4ee9c684 1388
1389fmudflapth
5461e683 1390Common RejectNegative Report Var(flag_mudflap,2)
3284a242 1391Add mudflap bounds-checking instrumentation for multi-threaded program
4ee9c684 1392
1393fmudflapir
2e9da478 1394Common RejectNegative Report Var(flag_mudflap_ignore_reads)
3284a242 1395Ignore read operations when inserting mudflap instrumentation
4ee9c684 1396
3072d30e 1397fdce
76c71f34 1398Common Var(flag_dce) Init(1) Optimization
3072d30e 1399Use the RTL dead code elimination pass
1400
1401fdse
76c71f34 1402Common Var(flag_dse) Init(1) Optimization
3072d30e 1403Use the RTL dead store elimination pass
1404
f045d41d 1405freschedule-modulo-scheduled-loops
87c75316 1406Common Report Var(flag_resched_modulo_sched) Optimization
f045d41d 1407Enable/Disable the traditional scheduling in loops that already passed modulo scheduling
1408
ecdb6d1a 1409fnon-call-exceptions
87c75316 1410Common Report Var(flag_non_call_exceptions) Optimization
72528c71 1411Support synchronous non-call exceptions
ecdb6d1a 1412
1e06725a 1413fomit-frame-pointer
87c75316 1414Common Report Var(flag_omit_frame_pointer) Optimization
72528c71 1415When possible do not generate stack frames
1e06725a 1416
ecdb6d1a 1417foptimize-register-move
87c75316 1418Common Report Var(flag_regmove) Optimization
72528c71 1419Do the full register move optimization pass
ecdb6d1a 1420
1e06725a 1421foptimize-sibling-calls
87c75316 1422Common Report Var(flag_optimize_sibling_calls) Optimization
72528c71 1423Optimize sibling and tail recursive calls
1e06725a 1424
2862cf88 1425fpartial-inlining
1426Common Report Var(flag_partial_inlining)
1427Perform partial inlining
1428
51949610 1429fpre-ipa-mem-report
1430Common Report Var(pre_ipa_mem_report)
1431Report on memory allocation before interprocedural optimization
1432
1433fpost-ipa-mem-report
1434Common Report Var(post_ipa_mem_report)
1435Report on memory allocation before interprocedural optimization
1436
ecdb6d1a 1437fpack-struct
87c75316 1438Common Report Var(flag_pack_struct) Optimization
72528c71 1439Pack structure members together without holes
ecdb6d1a 1440
6b5553e5 1441fpack-struct=
87c75316 1442Common RejectNegative Joined UInteger Optimization
6b5553e5 1443-fpack-struct=<number> Set initial maximum structure member alignment
1444
1e06725a 1445fpcc-struct-return
4aafe913 1446Common Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
72528c71 1447Return small aggregates in memory, not registers
1e06725a 1448
1449fpeel-loops
87c75316 1450Common Report Var(flag_peel_loops) Optimization
72528c71 1451Perform loop peeling
1e06725a 1452
1453fpeephole
87c75316 1454Common Report Var(flag_no_peephole,0) Optimization
72528c71 1455Enable machine specific peephole optimizations
1e06725a 1456
ecdb6d1a 1457fpeephole2
87c75316 1458Common Report Var(flag_peephole2) Optimization
72528c71 1459Enable an RTL peephole pass before sched2
ecdb6d1a 1460
82a16202 1461fPIC
1462Common Report Var(flag_pic,2)
1463Generate position-independent code if possible (large mode)
1464
1465fPIE
1466Common Report Var(flag_pie,2)
1467Generate position-independent code for executables if possible (large mode)
1468
ecdb6d1a 1469fpic
5461e683 1470Common Report Var(flag_pic,1)
82a16202 1471Generate position-independent code if possible (small mode)
ecdb6d1a 1472
1473fpie
5461e683 1474Common Report Var(flag_pie,1)
82a16202 1475Generate position-independent code for executables if possible (small mode)
ecdb6d1a 1476
9227b6fc 1477fplugin=
f0da0668 1478Common Joined RejectNegative Var(common_deferred_options) Defer
9227b6fc 1479Specify a plugin to load
1480
1481fplugin-arg-
f0da0668 1482Common Joined RejectNegative Var(common_deferred_options) Defer
cf210371 1483-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>
9227b6fc 1484
ad4a85ad 1485fpredictive-commoning
76c71f34 1486Common Report Var(flag_predictive_commoning) Optimization
ad4a85ad 1487Run predictive commoning optimization.
1488
1e06725a 1489fprefetch-loop-arrays
cd459e62 1490Common Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
72528c71 1491Generate prefetch instructions, if available, for arrays in loops
1e06725a 1492
ecdb6d1a 1493fprofile
2e9da478 1494Common Report Var(profile_flag)
72528c71 1495Enable basic program profiling code
ecdb6d1a 1496
1497fprofile-arcs
2e9da478 1498Common Report Var(profile_arc_flag)
72528c71 1499Insert arc-based program profiling code
ecdb6d1a 1500
3e3a0e9c 1501fprofile-dir=
cc4fa57a 1502Common Joined RejectNegative Var(profile_data_prefix)
3e3a0e9c 1503Set the top-level directory for storing the profile data.
1504The default is 'pwd'.
1505
e0dc6f2b 1506fprofile-correction
1507Common Report Var(flag_profile_correction)
1508Enable correction of flow inconsistent profile data input
1509
7dea76ba 1510fprofile-generate
1511Common
1512Enable common options for generating profile info for profile feedback directed optimizations
1513
3e3a0e9c 1514fprofile-generate=
1515Common Joined RejectNegative
1516Enable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=
1517
7dea76ba 1518fprofile-use
3e3a0e9c 1519Common Var(flag_profile_use)
7dea76ba 1520Enable common options for performing profile feedback directed optimizations
1521
3e3a0e9c 1522fprofile-use=
1523Common Joined RejectNegative
1524Enable common options for performing profile feedback directed optimizations, and set -fprofile-dir=
1525
1c6a7b8c 1526fprofile-values
2e9da478 1527Common Report Var(flag_profile_values)
1c6a7b8c 1528Insert code to profile values of expressions
1529
1e06725a 1530frandom-seed
9faf44d6 1531Common Var(common_deferred_options) Defer
1e06725a 1532
1533frandom-seed=
9faf44d6 1534Common Joined RejectNegative Var(common_deferred_options) Defer
53b8e5c1 1535-frandom-seed=<string> Make compile reproducible using <string>
1e06725a 1536
7c6733e8 1537; This switch causes the command line that was used to create an
1538; object file to be recorded into the object file. The exact format
1539; of this recording is target and binary file format dependent.
1540; It is related to the -fverbose-asm switch, but that switch only
1541; records information in the assembler output file as comments, so
1542; they never reach the object file.
1543frecord-gcc-switches
1544Common Report Var(flag_record_gcc_switches)
1545Record gcc command line switches in the object file.
1546
1e06725a 1547freg-struct-return
5461e683 1548Common Report Var(flag_pcc_struct_return,0) Optimization
72528c71 1549Return small aggregates in registers
1e06725a 1550
ecdb6d1a 1551fregmove
87c75316 1552Common Report Var(flag_regmove) Optimization
72528c71 1553Enables a register move optimization
ecdb6d1a 1554
1555frename-registers
87c75316 1556Common Report Var(flag_rename_registers) Init(2) Optimization
72528c71 1557Perform a register renaming optimization pass
ecdb6d1a 1558
1559freorder-blocks
87c75316 1560Common Report Var(flag_reorder_blocks) Optimization
72528c71 1561Reorder basic blocks to improve code placement
ecdb6d1a 1562
4f18499c 1563freorder-blocks-and-partition
87c75316 1564Common Report Var(flag_reorder_blocks_and_partition) Optimization
4f18499c 1565Reorder basic blocks and partition into hot and cold sections
1566
ecdb6d1a 1567freorder-functions
87c75316 1568Common Report Var(flag_reorder_functions) Optimization
72528c71 1569Reorder functions to improve code placement
ecdb6d1a 1570
1e06725a 1571frerun-cse-after-loop
c17f64cc 1572Common Report Var(flag_rerun_cse_after_loop) Optimization
72528c71 1573Add a common subexpression elimination pass after loop optimizations
1e06725a 1574
4f87b914 1575frerun-loop-opt
3b0273a1 1576Common Ignore
334ec2d8 1577Does nothing. Preserved for backward compatibility.
4f87b914 1578
5466f589 1579frounding-math
ecee1b29 1580Common Report Var(flag_rounding_math) Optimization SetByCombined
5466f589 1581Disable optimizations that assume default FP rounding behavior
1582
ecdb6d1a 1583fsched-interblock
87c75316 1584Common Report Var(flag_schedule_interblock) Init(1) Optimization
72528c71 1585Enable scheduling across basic blocks
ecdb6d1a 1586
a7dcf969 1587fsched-pressure
1588Common Report Var(flag_sched_pressure) Init(0) Optimization
1589Enable register pressure sensitive insn scheduling
1590
ecdb6d1a 1591fsched-spec
87c75316 1592Common Report Var(flag_schedule_speculative) Init(1) Optimization
72528c71 1593Allow speculative motion of non-loads
ecdb6d1a 1594
1595fsched-spec-load
87c75316 1596Common Report Var(flag_schedule_speculative_load) Optimization
72528c71 1597Allow speculative motion of some loads
ecdb6d1a 1598
1599fsched-spec-load-dangerous
87c75316 1600Common Report Var(flag_schedule_speculative_load_dangerous) Optimization
72528c71 1601Allow speculative motion of more loads
ecdb6d1a 1602
1e06725a 1603fsched-verbose=
9faf44d6 1604Common RejectNegative Joined UInteger Var(sched_verbose_param)
53b8e5c1 1605-fsched-verbose=<number> Set the verbosity level of the scheduler
1e06725a 1606
ecdb6d1a 1607fsched2-use-superblocks
87c75316 1608Common Report Var(flag_sched2_use_superblocks) Optimization
72528c71 1609If scheduling post reload, do superblock scheduling
ecdb6d1a 1610
1611fsched2-use-traces
3b0273a1 1612Common Ignore
fda153ea 1613Does nothing. Preserved for backward compatibility.
ecdb6d1a 1614
1e06725a 1615fschedule-insns
87c75316 1616Common Report Var(flag_schedule_insns) Optimization
72528c71 1617Reschedule instructions before register allocation
1e06725a 1618
1619fschedule-insns2
87c75316 1620Common Report Var(flag_schedule_insns_after_reload) Optimization
72528c71 1621Reschedule instructions after register allocation
1e06725a 1622
e1ab7874 1623; This flag should be on when a target implements non-trivial
1624; scheduling hooks, maybe saving some information for its own sake.
1625; On IA64, for example, this is used for correct bundling.
1626fselective-scheduling
1627Common Report Var(flag_selective_scheduling) Optimization
1628Schedule instructions using selective scheduling algorithm
1629
1630fselective-scheduling2
1631Common Report Var(flag_selective_scheduling2) Optimization
1632Run selective scheduling after reload
1633
1634fsel-sched-pipelining
1635Common Report Var(flag_sel_sched_pipelining) Init(0) Optimization
1636Perform software pipelining of inner loops during selective scheduling
1637
1638fsel-sched-pipelining-outer-loops
1639Common Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
1640Perform software pipelining of outer loops during selective scheduling
1641
1642fsel-sched-reschedule-pipelined
1643Common Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
1644Reschedule pipelined regions without pipelining
1645
82a16202 1646; sched_stalled_insns means that insns can be moved prematurely from the queue
1647; of stalled insns into the ready list.
52c4b43f 1648fsched-stalled-insns
46f8e3b0 1649Common Report Var(flag_sched_stalled_insns) Optimization UInteger
52c4b43f 1650Allow premature scheduling of queued insns
1651
1652fsched-stalled-insns=
a0c938f0 1653Common RejectNegative Joined UInteger
98b93ebb 1654-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled
52c4b43f 1655
82a16202 1656; sched_stalled_insns_dep controls how many recently scheduled cycles will
1657; be examined for a dependency on a stalled insn that is candidate for
1658; premature removal from the queue of stalled insns into the ready list (has
1659; an effect only if the flag 'sched_stalled_insns' is set).
52c4b43f 1660fsched-stalled-insns-dep
46f8e3b0 1661Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
52c4b43f 1662Set dependence distance checking in premature scheduling of queued insns
1663
1664fsched-stalled-insns-dep=
1665Common RejectNegative Joined UInteger
98b93ebb 1666-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns
52c4b43f 1667
4d569386 1668fsched-group-heuristic
1669Common Report Var(flag_sched_group_heuristic) Init(1) Optimization
1670Enable the group heuristic in the scheduler
1671
1672fsched-critical-path-heuristic
1673Common Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
1674Enable the critical path heuristic in the scheduler
1675
1676fsched-spec-insn-heuristic
1677Common Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
1678Enable the speculative instruction heuristic in the scheduler
1679
4d569386 1680fsched-rank-heuristic
1681Common Report Var(flag_sched_rank_heuristic) Init(1) Optimization
1682Enable the rank heuristic in the scheduler
1683
1684fsched-last-insn-heuristic
1685Common Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
1686Enable the last instruction heuristic in the scheduler
1687
1688fsched-dep-count-heuristic
1689Common Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
1690Enable the dependent count heuristic in the scheduler
1691
f2d0e9f1 1692fsection-anchors
87c75316 1693Common Report Var(flag_section_anchors) Optimization
f2d0e9f1 1694Access data in the same section from shared anchor points
1695
2b74c150 1696fsee
3b0273a1 1697Common Ignore
1bc99153 1698Does nothing. Preserved for backward compatibility.
2b74c150 1699
a5b022e7 1700fzee
1701Common Report Var(flag_zee) Init(0)
1702Eliminate redundant zero extensions on targets that support implicit extensions.
1703
5fd4bf3b 1704fshow-column
abf6a617 1705Common Report Var(flag_show_column) Init(1)
b559b9e2 1706Show column numbers in diagnostics, when available. Default on
5fd4bf3b 1707
ecdb6d1a 1708fsignaling-nans
ecee1b29 1709Common Report Var(flag_signaling_nans) Optimization SetByCombined
72528c71 1710Disable optimizations observable by IEEE signaling NaNs
ecdb6d1a 1711
893038cd 1712fsigned-zeros
ecee1b29 1713Common Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined
893038cd 1714Disable floating point optimizations that ignore the IEEE signedness of zero
1715
ecdb6d1a 1716fsingle-precision-constant
87c75316 1717Common Report Var(flag_single_precision_constant) Optimization
72528c71 1718Convert floating point constants to single precision constants
ecdb6d1a 1719
a9989fb4 1720fsplit-ivs-in-unroller
87c75316 1721Common Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
3284a242 1722Split lifetimes of induction variables when loops are unrolled
a9989fb4 1723
48b14f50 1724fsplit-stack
1725Common Report Var(flag_split_stack) Init(-1)
1726Generate discontiguous stack frames
1727
1a6a0f2a 1728fsplit-wide-types
e8831472 1729Common Report Var(flag_split_wide_types) Optimization
1a6a0f2a 1730Split wide types into independent registers
1731
375bb675 1732fvariable-expansion-in-unroller
87c75316 1733Common Report Var(flag_variable_expansion_in_unroller) Optimization
3284a242 1734Apply variable expansion when loops are unrolled
375bb675 1735
4852b829 1736fstack-check=
1737Common Report RejectNegative Joined
1738-fstack-check=[no|generic|specific] Insert stack checking code into the program
1739
ecdb6d1a 1740fstack-check
67089c6b 1741Common Alias(fstack-check=, specific, no)
4852b829 1742Insert stack checking code into the program. Same as -fstack-check=specific
ecdb6d1a 1743
1e06725a 1744fstack-limit
f0da0668 1745Common Var(common_deferred_options) Defer
1e06725a 1746
941a4893 1747fstack-limit-register=
f0da0668 1748Common RejectNegative Joined Var(common_deferred_options) Defer
53b8e5c1 1749-fstack-limit-register=<register> Trap if the stack goes past <register>
941a4893 1750
1751fstack-limit-symbol=
f0da0668 1752Common RejectNegative Joined Var(common_deferred_options) Defer
53b8e5c1 1753-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>
941a4893 1754
f1a0edff 1755fstack-protector
1756Common Report Var(flag_stack_protect, 1)
1757Use propolice as a stack protection method
1758
1759fstack-protector-all
5461e683 1760Common Report RejectNegative Var(flag_stack_protect, 2)
f1a0edff 1761Use a stack protection method for every function
1762
990495a7 1763fstack-usage
1764Common RejectNegative Var(flag_stack_usage)
1765Output stack usage information on a per-function basis
1766
1e06725a 1767fstrength-reduce
3b0273a1 1768Common Ignore
334ec2d8 1769Does nothing. Preserved for backward compatibility.
1e06725a 1770
82a16202 1771; Nonzero if we should do (language-dependent) alias analysis.
1772; Typically, this analysis will assume that expressions of certain
1773; types do not alias expressions of certain other types. Only used
1774; if alias analysis (in general) is enabled.
ecdb6d1a 1775fstrict-aliasing
87c75316 1776Common Report Var(flag_strict_aliasing) Optimization
72528c71 1777Assume strict aliasing rules apply
ecdb6d1a 1778
981eb798 1779fstrict-overflow
1780Common Report Var(flag_strict_overflow)
1781Treat signed overflow as undefined
1782
1e06725a 1783fsyntax-only
2e9da478 1784Common Report Var(flag_syntax_only)
72528c71 1785Check for syntax errors, then stop
1e06725a 1786
ecdb6d1a 1787ftest-coverage
2e9da478 1788Common Report Var(flag_test_coverage)
72528c71 1789Create data files needed by \"gcov\"
ecdb6d1a 1790
1e06725a 1791fthread-jumps
87c75316 1792Common Report Var(flag_thread_jumps) Optimization
72528c71 1793Perform jump threading optimizations
1e06725a 1794
ecdb6d1a 1795ftime-report
2e9da478 1796Common Report Var(time_report)
72528c71 1797Report the time taken by each compiler pass
ecdb6d1a 1798
941a4893 1799ftls-model=
d62a5950 1800Common Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
53b8e5c1 1801-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model
941a4893 1802
d62a5950 1803Enum
1804Name(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
1805
1806EnumValue
1807Enum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
1808
1809EnumValue
1810Enum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
1811
1812EnumValue
1813Enum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
1814
1815EnumValue
1816Enum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
1817
56af936e 1818ftoplevel-reorder
8188ae06 1819Common Report Var(flag_toplevel_reorder) Init(2) Optimization
56af936e 1820Reorder top level functions, variables, and asms
1821
1e06725a 1822ftracer
2e9da478 1823Common Report Var(flag_tracer)
72528c71 1824Perform superblock formation via tail duplication
1e06725a 1825
82a16202 1826; Zero means that floating-point math operations cannot generate a
1827; (user-visible) trap. This is the case, for example, in nonstop
1828; IEEE 754 arithmetic.
ecdb6d1a 1829ftrapping-math
ecee1b29 1830Common Report Var(flag_trapping_math) Init(1) Optimization SetByCombined
72528c71 1831Assume floating-point operations can trap
ecdb6d1a 1832
1833ftrapv
87c75316 1834Common Report Var(flag_trapv) Optimization
72528c71 1835Trap for signed overflow in addition, subtraction and multiplication
ecdb6d1a 1836
4ee9c684 1837ftree-ccp
87c75316 1838Common Report Var(flag_tree_ccp) Optimization
4ee9c684 1839Enable SSA-CCP optimization on trees
1840
b7e55469 1841ftree-bit-ccp
1842Common Report Var(flag_tree_bit_ccp) Optimization
1843Enable SSA-BIT-CCP optimization on trees
1844
88dbf20f 1845ftree-store-ccp
3b0273a1 1846Common Ignore
61207d43 1847Does nothing. Preserved for backward compatibility.
88dbf20f 1848
4ee9c684 1849ftree-ch
87c75316 1850Common Report Var(flag_tree_ch) Optimization
4ee9c684 1851Enable loop header copying on trees
1852
4ee9c684 1853ftree-copyrename
87c75316 1854Common Report Var(flag_tree_copyrename) Optimization
3284a242 1855Replace SSA temporaries with better names in copies
4ee9c684 1856
88dbf20f 1857ftree-copy-prop
87c75316 1858Common Report Var(flag_tree_copy_prop) Optimization
88dbf20f 1859Enable copy propagation on trees
1860
1861ftree-store-copy-prop
3b0273a1 1862Common Ignore
578ef723 1863Does nothing. Preserved for backward compatibility.
88dbf20f 1864
e6d0e152 1865ftree-cselim
1866Common Report Var(flag_tree_cselim) Init(2) Optimization
1867Transform condition stores into unconditional ones
1868
a347af29 1869ftree-switch-conversion
1870Common Report Var(flag_tree_switch_conversion) Optimization
1871Perform conversions of switch initializations.
1872
4ee9c684 1873ftree-dce
87c75316 1874Common Report Var(flag_tree_dce) Optimization
4ee9c684 1875Enable SSA dead code elimination optimization on trees
1876
1877ftree-dominator-opts
87c75316 1878Common Report Var(flag_tree_dom) Optimization
4ee9c684 1879Enable dominator optimizations
1880
1881ftree-dse
87c75316 1882Common Report Var(flag_tree_dse) Optimization
4ee9c684 1883Enable dead store elimination
1884
408c3c77 1885ftree-forwprop
1886Common Report Var(flag_tree_forwprop) Init(1) Optimization
1887Enable forward propagation on trees
1888
591c2a30 1889ftree-fre
87c75316 1890Common Report Var(flag_tree_fre) Optimization
591c2a30 1891Enable Full Redundancy Elimination (FRE) on trees
1892
801c5610 1893ftree-loop-distribution
2b945500 1894Common Report Var(flag_tree_loop_distribution) Optimization
801c5610 1895Enable loop distribution on trees
1896
0acf3477 1897ftree-loop-distribute-patterns
1898Common Report Var(flag_tree_loop_distribute_patterns) Optimization
1899Enable loop distribution for patterns transformed into a library call
1900
41b5cc78 1901ftree-loop-im
87c75316 1902Common Report Var(flag_tree_loop_im) Init(1) Optimization
7d23383d 1903Enable loop invariant motion on trees
1904
60cfcb79 1905ftree-loop-linear
464a406e 1906Common Alias(floop-interchange)
1907Enable loop interchange transforms. Same as -floop-interchange
60cfcb79 1908
41b5cc78 1909ftree-loop-ivcanon
87c75316 1910Common Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
41b5cc78 1911Create canonical induction variables in loops
1912
dcb9eccb 1913ftree-loop-optimize
87c75316 1914Common Report Var(flag_tree_loop_optimize) Init(1) Optimization
dcb9eccb 1915Enable loop optimizations on tree level
1916
28c92cbb 1917ftree-parallelize-loops=
212cc995 1918Common Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1)
28c92cbb 1919Enable automatic parallelization of loops
1920
408c3c77 1921ftree-phiprop
1922Common Report Var(flag_tree_phiprop) Init(1) Optimization
1923Enable hoisting loads from conditional pointers.
1924
4ee9c684 1925ftree-pre
87c75316 1926Common Report Var(flag_tree_pre) Optimization
4ee9c684 1927Enable SSA-PRE optimization on trees
1928
408c3c77 1929ftree-pta
1930Common Report Var(flag_tree_pta) Init(1) Optimization
1931Perform function-local points-to analysis on trees.
1932
621a93b1 1933ftree-reassoc
1934Common Report Var(flag_tree_reassoc) Init(1) Optimization
1935Enable reassociation on tree level
1936
2be14d8b 1937ftree-salias
3b0273a1 1938Common Ignore
70393469 1939Does nothing. Preserved for backward compatibility.
2be14d8b 1940
5e733b02 1941ftree-sink
87c75316 1942Common Report Var(flag_tree_sink) Optimization
5e733b02 1943Enable SSA code sinking on trees
1944
4ee9c684 1945ftree-sra
87c75316 1946Common Report Var(flag_tree_sra) Optimization
4ee9c684 1947Perform scalar replacement of aggregates
1948
1949ftree-ter
c17f64cc 1950Common Report Var(flag_tree_ter) Optimization
4ee9c684 1951Replace temporary expressions in the SSA->normal pass
1952
87c75316 1953ftree-lrs
1954Common Report Var(flag_tree_live_range_split) Optimization
1955Perform live range splitting during the SSA->normal pass
1956
88dbf20f 1957ftree-vrp
87c75316 1958Common Report Var(flag_tree_vrp) Init(0) Optimization
88dbf20f 1959Perform Value Range Propagation on trees
1960
1e06725a 1961funit-at-a-time
8188ae06 1962Common Report Var(flag_unit_at_a_time) Init(1) Optimization
72528c71 1963Compile whole compilation unit at a time
1e06725a 1964
1965funroll-loops
87c75316 1966Common Report Var(flag_unroll_loops) Optimization
72528c71 1967Perform loop unrolling when iteration count is known
1e06725a 1968
1969funroll-all-loops
87c75316 1970Common Report Var(flag_unroll_all_loops) Optimization
72528c71 1971Perform loop unrolling for all loops
1e06725a 1972
7e3cc681 1973; Nonzero means that loop optimizer may assume that the induction variables
1974; that control loops do not overflow and that the loops with nontrivial
1975; exit condition are not infinite
1976funsafe-loop-optimizations
87c75316 1977Common Report Var(flag_unsafe_loop_optimizations) Optimization
7e3cc681 1978Allow loop optimizations to assume that the loops behave in normal way
1979
49d060d7 1980fassociative-math
ecee1b29 1981Common Report Var(flag_associative_math) SetByCombined
49d060d7 1982Allow optimization for floating-point arithmetic which may change the
1983result of the operation due to rounding.
1984
1985freciprocal-math
ecee1b29 1986Common Report Var(flag_reciprocal_math) SetByCombined
49d060d7 1987Same as -fassociative-math for expressions which include division.
1988
82a16202 1989; Nonzero means that unsafe floating-point math optimizations are allowed
1990; for the sake of speed. IEEE compliance is not guaranteed, and operations
1991; are allowed to assume that their arguments and results are "normal"
1992; (e.g., nonnegative for SQRT).
ecdb6d1a 1993funsafe-math-optimizations
ecee1b29 1994Common Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined
72528c71 1995Allow math optimizations that may violate IEEE or ISO standards
ecdb6d1a 1996
1e06725a 1997funswitch-loops
87c75316 1998Common Report Var(flag_unswitch_loops) Optimization
72528c71 1999Perform loop unswitching
1e06725a 2000
ecdb6d1a 2001funwind-tables
87c75316 2002Common Report Var(flag_unwind_tables) Optimization
72528c71 2003Just generate unwind tables for exception handling
ecdb6d1a 2004
386fbe6a 2005fuse-linker-plugin
2006Common Undocumented
2007
0f8defe5 2008; Positive if we should track variables, negative if we should run
2009; the var-tracking pass only to discard debug annotations, zero if
2010; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it
2011; will be set according to optimize, debug_info_level and debug_hooks
2012; in process_options ().
5923a5e7 2013fvar-tracking
0f8defe5 2014Common Report Var(flag_var_tracking) Init(2) Optimization
5923a5e7 2015Perform variable tracking
2016
0f8defe5 2017; Positive if we should track variables at assignments, negative if
2018; we should run the var-tracking pass only to discard debug
2019; annotations. When flag_var_tracking_assignments ==
2020; AUTODETECT_VALUE it will be set according to flag_var_tracking.
9845d120 2021fvar-tracking-assignments
0f8defe5 2022Common Report Var(flag_var_tracking_assignments) Init(2) Optimization
9845d120 2023Perform variable tracking by annotating assignments
2024
0f8defe5 2025; Nonzero if we should toggle flag_var_tracking_assignments after
2026; processing options and computing its default. */
9845d120 2027fvar-tracking-assignments-toggle
0f8defe5 2028Common Report Var(flag_var_tracking_assignments_toggle) Optimization
9845d120 2029Toggle -fvar-tracking-assignments
2030
d53bb226 2031fvar-tracking-uninit
2032Common Report Var(flag_var_tracking_uninit) Optimization
2033Perform variable tracking and also tag variables that are uninitialized
2034
c91e8223 2035ftree-vectorize
87c75316 2036Common Report Var(flag_tree_vectorize) Optimization
c91e8223 2037Enable loop vectorization on trees
2038
37545e54 2039ftree-slp-vectorize
2040Common Report Var(flag_tree_slp_vectorize) Init(2) Optimization
2041Enable basic block vectorization (SLP) on trees
2042
867c03eb 2043fvect-cost-model
2044Common Report Var(flag_vect_cost_model) Optimization
2045Enable use of cost model in vectorization
2046
25e3c2e8 2047ftree-vect-loop-version
87c75316 2048Common Report Var(flag_tree_vect_loop_version) Init(1) Optimization
25e3c2e8 2049Enable loop versioning when doing loop vectorization on trees
2050
459e8543 2051ftree-vectorizer-verbose=
295e1243 2052Common RejectNegative Joined UInteger
98b93ebb 2053-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer
459e8543 2054
2a6e95ba 2055ftree-scev-cprop
e8831472 2056Common Report Var(flag_tree_scev_cprop) Init(1) Optimization
2a6e95ba 2057Enable copy propagation of scalar-evolution information.
2058
82a16202 2059; -fverbose-asm causes extra commentary information to be produced in
2060; the generated assembly code (to make it more readable). This option
2061; is generally only of use to those who actually need to read the
2062; generated assembly code (perhaps while debugging the compiler itself).
2063; -fno-verbose-asm, the default, causes the extra information
2064; to not be added and is useful when comparing two assembler files.
ecdb6d1a 2065fverbose-asm
2e9da478 2066Common Report Var(flag_verbose_asm)
72528c71 2067Add extra commentary to assembler output
ecdb6d1a 2068
b212f378 2069fvisibility=
d62a5950 2070Common Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
b212f378 2071-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility
2072
d62a5950 2073Enum
2074Name(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
2075
2076EnumValue
2077Enum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
2078
2079EnumValue
2080Enum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
2081
2082EnumValue
2083Enum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
2084
2085EnumValue
2086Enum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
b212f378 2087
1c6a7b8c 2088fvpt
87c75316 2089Common Report Var(flag_value_profile_transformations) Optimization
1c6a7b8c 2090Use expression value profiles in optimizations
2091
eeb4a70e 2092fweb
87c75316 2093Common Report Var(flag_web) Init(2) Optimization
eeb4a70e 2094Construct webs and split unrelated uses of single variable
2095
e6a23add 2096ftree-builtin-call-dce
2097Common Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
2098Enable conditional dead code elimination for builtin calls
2099
62eec3b4 2100fwhole-program
87c75316 2101Common Report Var(flag_whole_program) Init(0) Optimization
62eec3b4 2102Perform whole program optimizations
2103
ecdb6d1a 2104fwrapv
87c75316 2105Common Report Var(flag_wrapv) Optimization
72528c71 2106Assume signed arithmetic overflow wraps around
ecdb6d1a 2107
ecdb6d1a 2108fzero-initialized-in-bss
2e9da478 2109Common Report Var(flag_zero_initialized_in_bss) Init(1)
72528c71 2110Put zero initialized data in the bss section
ecdb6d1a 2111
6f2f567f 2112g
2113Common JoinedOrMissing
b0e56fb1 2114Generate debug information in default format
2115
2116gcoff
3d3b9d5b 2117Common JoinedOrMissing Negative(gdwarf-)
b0e56fb1 2118Generate debug information in COFF format
2119
3d3b9d5b 2120gdwarf-
2121Common Joined UInteger Var(dwarf_version) Init(2) Negative(gstabs)
2122Generate debug information in DWARF v2 (or later) format
b0e56fb1 2123
2124ggdb
2125Common JoinedOrMissing
2126Generate debug information in default extended format
2127
2128gstabs
a1baa5f1 2129Common JoinedOrMissing Negative(gstabs+)
b0e56fb1 2130Generate debug information in STABS format
2131
2132gstabs+
a1baa5f1 2133Common JoinedOrMissing Negative(gvms)
b0e56fb1 2134Generate debug information in extended STABS format
2135
c16b6d19 2136gno-strict-dwarf
024fa7dd 2137Common RejectNegative Var(dwarf_strict,0) Init(-1)
c16b6d19 2138Emit DWARF additions beyond selected version
2139
2140gstrict-dwarf
5461e683 2141Common Report RejectNegative Var(dwarf_strict,1)
c16b6d19 2142Don't emit DWARF additions beyond selected version
2143
71278019 2144gtoggle
2145Common Report Var(flag_gtoggle)
2146Toggle debug information generation
2147
b0e56fb1 2148gvms
a1baa5f1 2149Common JoinedOrMissing Negative(gxcoff)
b0e56fb1 2150Generate debug information in VMS format
2151
2152gxcoff
a1baa5f1 2153Common JoinedOrMissing Negative(gxcoff+)
b0e56fb1 2154Generate debug information in XCOFF format
2155
2156gxcoff+
a1baa5f1 2157Common JoinedOrMissing Negative(gcoff)
b0e56fb1 2158Generate debug information in extended XCOFF format
6f2f567f 2159
f37ef985 2160h
2161Driver Joined Separate
2162
19bc000d 2163iplugindir=
2164Common Joined Var(plugindir_string) Init(0)
2165-iplugindir=<dir> Set <dir> to be the default plugin directory
2166
e28aa114 2167l
2168Driver Joined Separate
2169
3bfde2af 2170n
2171Driver
2172
e28aa114 2173no-canonical-prefixes
2174Driver
2175
cb22f930 2176nodefaultlibs
2177Driver
2178
286f96fe 2179nostartfiles
2180Driver
2181
cb22f930 2182nostdlib
2183Driver
2184
e690b385 2185o
6bd9d862 2186Common Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
53b8e5c1 2187-o <file> Place output into <file>
e690b385 2188
2189p
2e9da478 2190Common Var(profile_flag)
53b8e5c1 2191Enable function profiling
e690b385 2192
e28aa114 2193pass-exit-codes
2194Driver Var(pass_exit_codes)
2195
e690b385 2196pedantic
2e9da478 2197Common Var(pedantic)
53b8e5c1 2198Issue warnings needed for strict compliance to the standard
e690b385 2199
2200pedantic-errors
6bd9d862 2201Common Var(flag_pedantic_errors)
53b8e5c1 2202Like -pedantic but issue them as errors
e690b385 2203
cb22f930 2204pg
2205Driver
2206
e28aa114 2207pipe
2208Driver Var(use_pipes)
2209
2210print-file-name=
2211Driver JoinedOrMissing Var(print_file_name)
2212
2213print-libgcc-file-name
2214Driver
2215
2216print-multi-directory
2217Driver Var(print_multi_directory)
2218
2219print-multi-lib
2220Driver Var(print_multi_lib)
2221
2222print-multi-os-directory
2223Driver Var(print_multi_os_directory)
2224
2225print-prog-name=
2226Driver JoinedOrMissing Var(print_prog_name)
2227
2228print-search-dirs
2229Driver Var(print_search_dirs)
2230
2231print-sysroot
2232Driver Var(print_sysroot)
2233
2234print-sysroot-headers-suffix
2235Driver Var(print_sysroot_headers_suffix)
2236
3272db82 2237quiet
e28aa114 2238Common Var(quiet_flag) RejectDriver
53b8e5c1 2239Do not display functions compiled or elapsed time
3272db82 2240
3bfde2af 2241r
2242Driver
2243
2244s
2245Driver
2246
e28aa114 2247save-temps
2248Driver
2249
2250save-temps=
2251Driver Joined
2252
3bfde2af 2253t
2254Driver
2255
e28aa114 2256time
2257Driver Var(report_times)
2258
2259time=
2260Driver JoinedOrMissing
2261
5789e05b 2262u
2263Driver Joined Separate
2264
4b2a05b6 2265undef
2266Driver
2267; C option, but driver must not handle as "-u ndef".
2268
e28aa114 2269v
6bd9d862 2270Common Driver Var(verbose_flag)
2271Enable verbose output
e28aa114 2272
e690b385 2273version
e28aa114 2274Common Var(version_flag) RejectDriver
53b8e5c1 2275Display the compiler's version
e690b385 2276
2277w
2e9da478 2278Common Var(inhibit_warnings)
53b8e5c1 2279Suppress warnings
e690b385 2280
e28aa114 2281wrapper
2282Driver Separate Var(wrapper_string)
2283
2284x
2285Driver Joined Separate
2286
794febf8 2287shared
2288Common RejectNegative Negative(pie)
2289Create a shared library
2290
e28aa114 2291shared-libgcc
2292Driver
2293
2294specs
67089c6b 2295Driver Separate Alias(specs=)
e28aa114 2296
2297specs=
2298Driver Joined
2299
cb22f930 2300static
2301Driver
2302
e28aa114 2303static-libgcc
2304Driver
2305
2306static-libgfortran
2307Driver
2308; Documented for Fortran, but always accepted by driver.
2309
2310static-libstdc++
2311Driver
2312
e440a328 2313static-libgo
2314Driver
2315; Documented for Go, but always accepted by driver.
2316
5789e05b 2317symbolic
2318Driver
2319
794febf8 2320pie
2321Common RejectNegative Negative(shared)
2322Create a position independent executable
2323
f37ef985 2324z
2325Driver Joined Separate
2326
3272db82 2327; This comment is to ensure we retain the blank line above.