xref: /dragonfly/contrib/gcc-8.0/gcc/common.opt (revision 58e805e6)
138fd1498Szrj; Options for the language- and target-independent parts of the compiler.
238fd1498Szrj
338fd1498Szrj; Copyright (C) 2003-2018 Free Software Foundation, Inc.
438fd1498Szrj;
538fd1498Szrj; This file is part of GCC.
638fd1498Szrj;
738fd1498Szrj; GCC is free software; you can redistribute it and/or modify it under
838fd1498Szrj; the terms of the GNU General Public License as published by the Free
938fd1498Szrj; Software Foundation; either version 3, or (at your option) any later
1038fd1498Szrj; version.
1138fd1498Szrj;
1238fd1498Szrj; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
1338fd1498Szrj; WARRANTY; without even the implied warranty of MERCHANTABILITY or
1438fd1498Szrj; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
1538fd1498Szrj; for more details.
1638fd1498Szrj;
1738fd1498Szrj; You should have received a copy of the GNU General Public License
1838fd1498Szrj; along with GCC; see the file COPYING3.  If not see
1938fd1498Szrj; <http://www.gnu.org/licenses/>.
2038fd1498Szrj
2138fd1498Szrj; See the GCC internals manual (options.texi) for a description of this file's format.
2238fd1498Szrj
2338fd1498Szrj; Please try to keep this file in ASCII collating order.
2438fd1498Szrj
2538fd1498SzrjVariable
2638fd1498Szrjint target_flags
2738fd1498Szrj
2838fd1498SzrjVariable
2938fd1498Szrjint optimize
3038fd1498Szrj
3138fd1498SzrjVariable
3238fd1498Szrjint optimize_size
3338fd1498Szrj
3438fd1498SzrjVariable
3538fd1498Szrjint optimize_debug
3638fd1498Szrj
3738fd1498Szrj; Not used directly to control optimizations, only to save -Ofast
3838fd1498Szrj; setting for "optimize" attributes.
3938fd1498SzrjVariable
4038fd1498Szrjint optimize_fast
4138fd1498Szrj
4238fd1498Szrj; True if this is the lto front end.  This is used to disable gimple
4338fd1498Szrj; generation and lowering passes that are normally run on the output
4438fd1498Szrj; of a front end.  These passes must be bypassed for lto since they
4538fd1498Szrj; have already been done before the gimple was written.
4638fd1498SzrjVariable
4738fd1498Szrjbool in_lto_p = false
4838fd1498Szrj
4938fd1498Szrj; This variable is set to non-0 only by LTO front-end.  1 indicates that
5038fd1498Szrj; the output produced will be used for incrmeental linking (thus weak symbols
5138fd1498Szrj; can still be bound).
5238fd1498SzrjVariable
5338fd1498Szrjint flag_incremental_link = 0
5438fd1498Szrj
5538fd1498Szrj; 0 means straightforward implementation of complex divide acceptable.
5638fd1498Szrj; 1 means wide ranges of inputs must work for complex divide.
5738fd1498Szrj; 2 means C99-like requirements for complex multiply and divide.
5838fd1498SzrjVariable
5938fd1498Szrjint flag_complex_method = 1
6038fd1498Szrj
6138fd1498Szrj; Language specific warning pass for unused results.
6238fd1498SzrjVariable
6338fd1498Szrjbool flag_warn_unused_result = false
6438fd1498Szrj
6538fd1498SzrjVariable
6638fd1498Szrjint *param_values
6738fd1498Szrj
6838fd1498Szrj; Nonzero if we should write GIMPLE bytecode for link-time optimization.
6938fd1498SzrjVariable
7038fd1498Szrjint flag_generate_lto
7138fd1498Szrj
7238fd1498Szrj; Nonzero if we should write GIMPLE bytecode for offload compilation.
7338fd1498SzrjVariable
7438fd1498Szrjint flag_generate_offload = 0
7538fd1498Szrj
7638fd1498Szrj; True to warn about any objects definitions whose size is larger
7738fd1498Szrj; than N bytes.  Also want about function definitions whose returned
7838fd1498Szrj; values are larger than N bytes, where N is 'larger_than_size'.
7938fd1498SzrjVariable
8038fd1498Szrjbool warn_larger_than
8138fd1498Szrj
8238fd1498SzrjVariable
8338fd1498SzrjHOST_WIDE_INT larger_than_size
8438fd1498Szrj
8538fd1498Szrj; True to warn about any function whose frame size is larger
8638fd1498Szrj; than N bytes.
8738fd1498SzrjVariable
8838fd1498Szrjbool warn_frame_larger_than
8938fd1498Szrj
9038fd1498SzrjVariable
9138fd1498SzrjHOST_WIDE_INT frame_larger_than_size
9238fd1498Szrj
9338fd1498Szrj; Nonzero means we should be saving declaration info into a .X file.
9438fd1498SzrjVariable
9538fd1498Szrjint flag_gen_aux_info = 0
9638fd1498Szrj
9738fd1498Szrj; Nonzero if we are compiling code for a shared library, zero for
9838fd1498Szrj; executable.
9938fd1498SzrjVariable
10038fd1498Szrjint flag_shlib
10138fd1498Szrj
10238fd1498Szrj; These two are really VEC(char_p,heap) *.
10338fd1498Szrj
10438fd1498SzrjVariable
10538fd1498Szrjvoid *flag_instrument_functions_exclude_functions
10638fd1498Szrj
10738fd1498SzrjVariable
10838fd1498Szrjvoid *flag_instrument_functions_exclude_files
10938fd1498Szrj
11038fd1498Szrj; Generic structs (e.g. templates not explicitly specialized)
11138fd1498Szrj; may not have a compilation unit associated with them, and so
11238fd1498Szrj; may need to be treated differently from ordinary structs.
11338fd1498Szrj;
11438fd1498Szrj; Structs only handled by reference (indirectly), will also usually
11538fd1498Szrj; not need as much debugging information.
11638fd1498Szrj
11738fd1498SzrjVariable
11838fd1498Szrjenum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
11938fd1498Szrj
12038fd1498SzrjVariable
12138fd1498Szrjenum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY }
12238fd1498Szrj
12338fd1498Szrj; True if we should exit after parsing options.
12438fd1498SzrjVariable
12538fd1498Szrjbool exit_after_options
12638fd1498Szrj
12738fd1498Szrj; Type(s) of debugging information we are producing (if any).  See
12838fd1498Szrj; flag-types.h for the definitions of the different possible types of
12938fd1498Szrj; debugging information.
13038fd1498SzrjVariable
13138fd1498Szrjenum debug_info_type write_symbols = NO_DEBUG
13238fd1498Szrj
13338fd1498Szrj; Level of debugging information we are producing.  See flag-types.h
13438fd1498Szrj; for the definitions of the different possible levels.
13538fd1498SzrjVariable
13638fd1498Szrjenum debug_info_levels debug_info_level = DINFO_LEVEL_NONE
13738fd1498Szrj
13838fd1498Szrj; Nonzero means use GNU-only extensions in the generated symbolic
13938fd1498Szrj; debugging information.  Currently, this only has an effect when
14038fd1498Szrj; write_symbols is set to DBX_DEBUG or XCOFF_DEBUG.
14138fd1498SzrjVariable
14238fd1498Szrjbool use_gnu_debug_info_extensions
14338fd1498Szrj
14438fd1498Szrj; Original value of maximum field alignment in bytes, specified via
14538fd1498Szrj; -fpack-struct=<value>.
14638fd1498SzrjVariable
14738fd1498Szrjunsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT
14838fd1498Szrj
14938fd1498Szrj; Type of stack check.
15038fd1498SzrjVariable
15138fd1498Szrjenum stack_check_type flag_stack_check = NO_STACK_CHECK
15238fd1498Szrj
15338fd1498Szrj; True if stack usage information needs to be computed.
15438fd1498SzrjVariable
15538fd1498Szrjbool flag_stack_usage_info = false
15638fd1498Szrj
15738fd1498Szrj; -dA causes debug commentary information to be produced in
15838fd1498Szrj; the generated assembly code (to make it more readable).  This option
15938fd1498Szrj; is generally only of use to those who actually need to read the
16038fd1498Szrj; generated assembly code (perhaps while debugging the compiler itself).
16138fd1498Szrj; Currently, this switch is only used by dwarf2out.c; however, it is intended
16238fd1498Szrj; to be a catchall for printing debug information in the assembler file.
16338fd1498SzrjVariable
16438fd1498Szrjint flag_debug_asm
16538fd1498Szrj
16638fd1498Szrj; How many NOP insns to place at each function entry by default
16738fd1498SzrjVariable
16838fd1498SzrjHOST_WIDE_INT function_entry_patch_area_size
16938fd1498Szrj
17038fd1498Szrj; And how far the real asm entry point is into this area
17138fd1498SzrjVariable
17238fd1498SzrjHOST_WIDE_INT function_entry_patch_area_start
17338fd1498Szrj
17438fd1498Szrj; Balance between GNAT encodings and standard DWARF to emit.
17538fd1498SzrjVariable
17638fd1498Szrjenum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT
17738fd1498Szrj
17838fd1498Szrj; -dP causes the rtl to be emitted as a comment in assembly.
17938fd1498SzrjVariable
18038fd1498Szrjint flag_dump_rtl_in_asm
18138fd1498Szrj
18238fd1498Szrj; Whether -da was passed (used only in handle_common_deferred_options).
18338fd1498SzrjVariable
18438fd1498Szrjbool flag_dump_all_passed
18538fd1498Szrj
18638fd1498Szrj; Other flags saying which kinds of debugging dump have been requested.
18738fd1498Szrj
18838fd1498SzrjVariable
18938fd1498Szrjint rtl_dump_and_exit
19038fd1498Szrj
19138fd1498SzrjVariable
19238fd1498Szrjint flag_print_asm_name
19338fd1498Szrj
19438fd1498Szrj; Name of top-level original source file (what was input to cpp).
19538fd1498Szrj; This comes from the #-command at the beginning of the actual input.
19638fd1498Szrj; If there isn't any there, then this is the cc1 input file name.
19738fd1498SzrjVariable
19838fd1498Szrjconst char *main_input_filename
19938fd1498Szrj
20038fd1498Szrj; Pointer to base name in main_input_filename, with directories and a
20138fd1498Szrj; single final extension removed, and the length of this base
20238fd1498Szrj; name.
20338fd1498Szrj
20438fd1498SzrjVariable
20538fd1498Szrjconst char *main_input_basename
20638fd1498Szrj
20738fd1498SzrjVariable
20838fd1498Szrjint main_input_baselength
20938fd1498Szrj
21038fd1498Szrj; Which options have been printed by --help.
21138fd1498SzrjVariable
21238fd1498Szrjchar *help_printed
21338fd1498Szrj
21438fd1498Szrj; Which enums have been printed by --help.  0 = not printed, no
21538fd1498Szrj; relevant options seen, 1 = relevant option seen, not yet printed, 2
21638fd1498Szrj; = printed.
21738fd1498SzrjVariable
21838fd1498Szrjchar *help_enum_printed
21938fd1498Szrj
22038fd1498Szrj; The number of columns for --help output.
22138fd1498SzrjVariable
22238fd1498Szrjunsigned int help_columns
22338fd1498Szrj
22438fd1498Szrj; Whether this options structure has been through finish_options
22538fd1498SzrjVariable
22638fd1498Szrjbool flag_opts_finished
22738fd1498Szrj
22838fd1498Szrj; What the sanitizer should instrument
22938fd1498SzrjVariable
23038fd1498Szrjunsigned int flag_sanitize
23138fd1498Szrj
23238fd1498Szrj; What sanitizers should recover from errors
23338fd1498SzrjVariable
23438fd1498Szrjunsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN)
23538fd1498Szrj
23638fd1498Szrj; What the coverage sanitizers should instrument
23738fd1498SzrjVariable
23838fd1498Szrjunsigned int flag_sanitize_coverage
23938fd1498Szrj
24038fd1498Szrj; Flag whether a prefix has been added to dump_base_name
24138fd1498SzrjVariable
24238fd1498Szrjbool dump_base_name_prefixed = false
24338fd1498Szrj
24438fd1498Szrj; Flag whether HSA generation has been explicitely disabled
24538fd1498SzrjVariable
24638fd1498Szrjbool flag_disable_hsa = false
24738fd1498Szrj
24838fd1498Szrj###
24938fd1498SzrjDriver
25038fd1498Szrj
25138fd1498Szrj-assemble
25238fd1498SzrjDriver Alias(S)
25338fd1498Szrj
25438fd1498Szrj-compile
25538fd1498SzrjDriver Alias(c)
25638fd1498Szrj
25738fd1498Szrj-coverage
25838fd1498SzrjDriver Alias(coverage)
25938fd1498Szrj
26038fd1498Szrj-debug
26138fd1498SzrjCommon Alias(g)
26238fd1498Szrj
26338fd1498Szrj-dump
26438fd1498SzrjCommon Separate Alias(d)
26538fd1498Szrj
26638fd1498Szrj-dump=
26738fd1498SzrjCommon Joined Alias(d)
26838fd1498Szrj
26938fd1498Szrj-dumpbase
27038fd1498SzrjCommon Separate Alias(dumpbase)
27138fd1498Szrj
27238fd1498Szrj-dumpdir
27338fd1498SzrjCommon Separate Alias(dumpdir)
27438fd1498Szrj
27538fd1498Szrj-entry
27638fd1498SzrjDriver Separate Alias(e)
27738fd1498Szrj
27838fd1498Szrj-entry=
27938fd1498SzrjDriver Joined Alias(e)
28038fd1498Szrj
28138fd1498Szrj-extra-warnings
28238fd1498SzrjCommon Warning Alias(Wextra)
28338fd1498Szrj
28438fd1498Szrj-for-assembler
28538fd1498SzrjDriver Separate Alias(Xassembler)
28638fd1498Szrj
28738fd1498Szrj-for-assembler=
28838fd1498SzrjDriver JoinedOrMissing Alias(Xassembler)
28938fd1498Szrj
29038fd1498Szrj-for-linker
29138fd1498SzrjDriver Separate Alias(Xlinker)
29238fd1498Szrj
29338fd1498Szrj-for-linker=
29438fd1498SzrjDriver JoinedOrMissing Alias(Xlinker)
29538fd1498Szrj
29638fd1498Szrj-force-link
29738fd1498SzrjDriver Separate Alias(u)
29838fd1498Szrj
29938fd1498Szrj-force-link=
30038fd1498SzrjDriver Joined Alias(u)
30138fd1498Szrj
30238fd1498Szrj-help
30338fd1498SzrjCommon Driver Var(help_flag)
30438fd1498SzrjDisplay this information.
30538fd1498Szrj
30638fd1498Szrj-help=
30738fd1498SzrjCommon Driver Report Joined
30838fd1498Szrj--help=<class>	Display descriptions of a specific class of options.  <class> is one or more of optimizers, target, warnings, undocumented, params.
30938fd1498Szrj
31038fd1498Szrj-language
31138fd1498SzrjDriver Separate Alias(x)
31238fd1498Szrj
31338fd1498Szrj-language=
31438fd1498SzrjDriver Joined Alias(x)
31538fd1498Szrj
31638fd1498Szrj-library-directory
31738fd1498SzrjDriver Separate Alias(L)
31838fd1498Szrj
31938fd1498Szrj-library-directory=
32038fd1498SzrjDriver Joined Alias(L)
32138fd1498Szrj
32238fd1498Szrj-no-canonical-prefixes
32338fd1498SzrjDriver Alias(no-canonical-prefixes)
32438fd1498Szrj
32538fd1498Szrj-no-standard-libraries
32638fd1498SzrjDriver Alias(nostdlib)
32738fd1498Szrj
32838fd1498Szrj-no-sysroot-suffix
32938fd1498SzrjDriver Var(no_sysroot_suffix)
33038fd1498Szrj
33138fd1498Szrj-no-warnings
33238fd1498SzrjCommon Alias(w)
33338fd1498Szrj
33438fd1498Szrj-optimize
33538fd1498SzrjCommon Alias(O)
33638fd1498Szrj
33738fd1498Szrj-output
33838fd1498SzrjCommon Driver Separate Alias(o) MissingArgError(missing filename after %qs)
33938fd1498Szrj
34038fd1498Szrj-output=
34138fd1498SzrjCommon Driver Joined Alias(o) MissingArgError(missing filename after %qs)
34238fd1498Szrj
34338fd1498Szrj-pass-exit-codes
34438fd1498SzrjDriver Alias(pass-exit-codes)
34538fd1498Szrj
34638fd1498Szrj-pedantic
34738fd1498SzrjCommon Alias(Wpedantic)
34838fd1498Szrj
34938fd1498Szrj-pedantic-errors
35038fd1498SzrjCommon Alias(pedantic-errors)
35138fd1498Szrj
35238fd1498Szrj-pie
35338fd1498SzrjDriver Alias(pie)
35438fd1498Szrj
35538fd1498Szrj-static-pie
35638fd1498SzrjDriver Alias(static-pie)
35738fd1498Szrj
35838fd1498Szrj-pipe
35938fd1498SzrjDriver Alias(pipe)
36038fd1498Szrj
36138fd1498Szrj-prefix
36238fd1498SzrjDriver Separate Alias(B)
36338fd1498Szrj
36438fd1498Szrj-prefix=
36538fd1498SzrjDriver JoinedOrMissing Alias(B)
36638fd1498Szrj
36738fd1498Szrj-preprocess
36838fd1498SzrjDriver Alias(E)
36938fd1498Szrj
37038fd1498Szrj-print-file-name
37138fd1498SzrjDriver Separate Alias(print-file-name=)
37238fd1498Szrj
37338fd1498Szrj-print-file-name=
37438fd1498SzrjDriver JoinedOrMissing Alias(print-file-name=)
37538fd1498Szrj
37638fd1498Szrj-print-libgcc-file-name
37738fd1498SzrjDriver Alias(print-libgcc-file-name)
37838fd1498Szrj
37938fd1498Szrj-print-multi-directory
38038fd1498SzrjDriver Alias(print-multi-directory)
38138fd1498Szrj
38238fd1498Szrj-print-multi-lib
38338fd1498SzrjDriver Alias(print-multi-lib)
38438fd1498Szrj
38538fd1498Szrj-print-multi-os-directory
38638fd1498SzrjDriver Alias(print-multi-os-directory)
38738fd1498Szrj
38838fd1498Szrj-print-multiarch
38938fd1498SzrjDriver Alias(print-multiarch)
39038fd1498Szrj
39138fd1498Szrj-print-prog-name
39238fd1498SzrjDriver Separate Alias(print-prog-name=)
39338fd1498Szrj
39438fd1498Szrj-print-prog-name=
39538fd1498SzrjDriver JoinedOrMissing Alias(print-prog-name=)
39638fd1498Szrj
39738fd1498Szrj-print-search-dirs
39838fd1498SzrjDriver Alias(print-search-dirs)
39938fd1498Szrj
40038fd1498Szrj-print-sysroot
40138fd1498SzrjDriver Alias(print-sysroot)
40238fd1498Szrj
40338fd1498Szrj-print-sysroot-headers-suffix
40438fd1498SzrjDriver Alias(print-sysroot-headers-suffix)
40538fd1498Szrj
40638fd1498Szrj-profile
40738fd1498SzrjCommon Alias(p)
40838fd1498Szrj
40938fd1498Szrj-save-temps
41038fd1498SzrjDriver Alias(save-temps)
41138fd1498Szrj
41238fd1498Szrj-shared
41338fd1498SzrjDriver Alias(shared)
41438fd1498Szrj
41538fd1498Szrj-specs
41638fd1498SzrjDriver Separate Alias(specs=)
41738fd1498Szrj
41838fd1498Szrj-specs=
41938fd1498SzrjDriver Joined Alias(specs=)
42038fd1498Szrj
42138fd1498Szrj-static
42238fd1498SzrjDriver Alias(static)
42338fd1498Szrj
42438fd1498Szrj-symbolic
42538fd1498SzrjDriver Alias(symbolic)
42638fd1498Szrj
42738fd1498Szrj-target-help
42838fd1498SzrjCommon Driver
42938fd1498SzrjAlias for --help=target.
43038fd1498Szrj
43138fd1498Szrj-time
43238fd1498SzrjDriver Alias(time)
43338fd1498Szrj
43438fd1498Szrj-verbose
43538fd1498SzrjDriver Alias(v)
43638fd1498Szrj
43738fd1498Szrj;; The driver used to convert options such as --help into forms such
43838fd1498Szrj;; as -fhelp; the following four entries are for compatibility with
43938fd1498Szrj;; any direct uses of those (undocumented) -f forms
44038fd1498Szrjfhelp
44138fd1498SzrjCommon Driver Alias(-help)
44238fd1498Szrj
44338fd1498Szrjfhelp=
44438fd1498SzrjCommon Driver Joined Alias(-help=)
44538fd1498Szrj
44638fd1498Szrjftarget-help
44738fd1498SzrjCommon Driver Alias(-target-help)
44838fd1498Szrj
44938fd1498Szrjfversion
45038fd1498SzrjCommon Driver Alias(-version)
45138fd1498Szrj
45238fd1498Szrj-param
45338fd1498SzrjCommon Separate
45438fd1498Szrj--param <param>=<value>	Set parameter <param> to value.  See below for a complete list of parameters.
45538fd1498Szrj
45638fd1498Szrj-param=
45738fd1498SzrjCommon Joined Alias(-param)
45838fd1498Szrj
45938fd1498Szrj-sysroot
46038fd1498SzrjDriver Separate Alias(-sysroot=)
46138fd1498Szrj
46238fd1498Szrj-sysroot=
46338fd1498SzrjDriver JoinedOrMissing
46438fd1498Szrj
46538fd1498Szrj-version
46638fd1498SzrjCommon Driver
46738fd1498Szrj
46838fd1498SzrjB
46938fd1498SzrjDriver Joined Separate
47038fd1498Szrj
47138fd1498SzrjE
47238fd1498SzrjDriver
47338fd1498Szrj
47438fd1498SzrjL
47538fd1498SzrjDriver Joined Separate
47638fd1498Szrj
47738fd1498SzrjN
47838fd1498SzrjDriver
47938fd1498Szrj
48038fd1498SzrjO
48138fd1498SzrjCommon JoinedOrMissing Optimization
48238fd1498Szrj-O<number>	Set optimization level to <number>.
48338fd1498Szrj
48438fd1498SzrjOs
48538fd1498SzrjCommon Optimization
48638fd1498SzrjOptimize for space rather than speed.
48738fd1498Szrj
48838fd1498SzrjOfast
48938fd1498SzrjCommon Optimization
49038fd1498SzrjOptimize for speed disregarding exact standards compliance.
49138fd1498Szrj
49238fd1498SzrjOg
49338fd1498SzrjCommon Optimization
49438fd1498SzrjOptimize for debugging experience rather than speed or size.
49538fd1498Szrj
49638fd1498SzrjQ
49738fd1498SzrjDriver
49838fd1498Szrj
49938fd1498SzrjQn
50038fd1498SzrjDriver Negative(Qy)
50138fd1498Szrj
50238fd1498SzrjQy
50338fd1498SzrjDriver Negative(Qn)
50438fd1498Szrj
50538fd1498SzrjR
50638fd1498SzrjDriver Joined Separate
50738fd1498Szrj
50838fd1498SzrjS
50938fd1498SzrjDriver
51038fd1498Szrj
51138fd1498SzrjT
51238fd1498SzrjDriver Joined Separate
51338fd1498Szrj
51438fd1498SzrjTbss
51538fd1498SzrjDriver Separate
51638fd1498Szrj
51738fd1498SzrjTbss=
51838fd1498SzrjDriver Joined
51938fd1498Szrj
52038fd1498SzrjTdata
52138fd1498SzrjDriver Separate
52238fd1498Szrj
52338fd1498SzrjTdata=
52438fd1498SzrjDriver Joined
52538fd1498Szrj
52638fd1498SzrjTtext
52738fd1498SzrjDriver Separate
52838fd1498Szrj
52938fd1498SzrjTtext=
53038fd1498SzrjDriver Joined
53138fd1498Szrj
53238fd1498SzrjW
53338fd1498SzrjCommon RejectNegative Warning Alias(Wextra)
53438fd1498SzrjThis switch is deprecated; use -Wextra instead.
53538fd1498Szrj
53638fd1498SzrjWa,
53738fd1498SzrjDriver JoinedOrMissing RejectNegative
53838fd1498Szrj
53938fd1498SzrjWl,
54038fd1498SzrjDriver JoinedOrMissing RejectNegative
54138fd1498Szrj
54238fd1498SzrjWp,
54338fd1498SzrjDriver JoinedOrMissing RejectNegative
54438fd1498Szrj
54538fd1498SzrjWaggregate-return
54638fd1498SzrjCommon Var(warn_aggregate_return) Warning
54738fd1498SzrjWarn about returning structures, unions or arrays.
54838fd1498Szrj
54938fd1498SzrjWaggressive-loop-optimizations
55038fd1498SzrjCommon Var(warn_aggressive_loop_optimizations) Init(1) Warning
55138fd1498SzrjWarn if a loop with constant number of iterations triggers undefined behavior.
55238fd1498Szrj
55338fd1498SzrjWarray-bounds
55438fd1498SzrjCommon Var(warn_array_bounds) Warning
55538fd1498SzrjWarn if an array is accessed out of bounds.
55638fd1498Szrj
55738fd1498SzrjWarray-bounds=
55838fd1498SzrjCommon Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2)
55938fd1498SzrjWarn if an array is accessed out of bounds.
56038fd1498Szrj
56138fd1498SzrjWattributes
56238fd1498SzrjCommon Var(warn_attributes) Init(1) Warning
56338fd1498SzrjWarn about inappropriate attribute usage.
56438fd1498Szrj
56538fd1498SzrjWattribute-alias
56638fd1498SzrjCommon Var(warn_attributes) Init(1) Warning
56738fd1498SzrjWarn about type safety and similar errors in attribute alias and related.
56838fd1498Szrj
56938fd1498SzrjWcast-align
57038fd1498SzrjCommon Var(warn_cast_align) Warning
57138fd1498SzrjWarn about pointer casts which increase alignment.
57238fd1498Szrj
57338fd1498SzrjWcast-align=strict
57438fd1498SzrjCommon Var(warn_cast_align,2) Warning
57538fd1498SzrjWarn about pointer casts which increase alignment.
57638fd1498Szrj
57738fd1498SzrjWcpp
57838fd1498SzrjCommon Var(warn_cpp) Init(1) Warning
57938fd1498SzrjWarn when a #warning directive is encountered.
58038fd1498Szrj
58138fd1498SzrjWdeprecated-declarations
58238fd1498SzrjCommon Var(warn_deprecated_decl) Init(1) Warning
58338fd1498SzrjWarn about uses of __attribute__((deprecated)) declarations.
58438fd1498Szrj
58538fd1498SzrjWdisabled-optimization
58638fd1498SzrjCommon Var(warn_disabled_optimization) Warning
58738fd1498SzrjWarn when an optimization pass is disabled.
58838fd1498Szrj
58938fd1498SzrjWerror
59038fd1498SzrjCommon Var(warnings_are_errors)
59138fd1498SzrjTreat all warnings as errors.
59238fd1498Szrj
59338fd1498SzrjWerror=
59438fd1498SzrjCommon Joined
59538fd1498SzrjTreat specified warning as error.
59638fd1498Szrj
59738fd1498SzrjWextra
59838fd1498SzrjCommon Var(extra_warnings) Warning
59938fd1498SzrjPrint extra (possibly unwanted) warnings.
60038fd1498Szrj
60138fd1498SzrjWfatal-errors
60238fd1498SzrjCommon Var(flag_fatal_errors)
60338fd1498SzrjExit on the first error occurred.
60438fd1498Szrj
60538fd1498SzrjWframe-larger-than=
60638fd1498SzrjCommon RejectNegative Joined UInteger Warning
60738fd1498Szrj-Wframe-larger-than=<number>	Warn if a function's stack frame requires more than <number> bytes.
60838fd1498Szrj
60938fd1498SzrjWfree-nonheap-object
61038fd1498SzrjCommon Var(warn_free_nonheap_object) Init(1) Warning
61138fd1498SzrjWarn when attempting to free a non-heap object.
61238fd1498Szrj
61338fd1498SzrjWhsa
61438fd1498SzrjCommon Var(warn_hsa) Init(1) Warning
61538fd1498SzrjWarn when a function cannot be expanded to HSAIL.
61638fd1498Szrj
61738fd1498SzrjWimplicit-fallthrough
61838fd1498SzrjCommon Alias(Wimplicit-fallthrough=,3,0) Warning
61938fd1498Szrj
62038fd1498SzrjWimplicit-fallthrough=
62138fd1498SzrjCommon Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5)
62238fd1498SzrjWarn when a switch case falls through.
62338fd1498Szrj
62438fd1498SzrjWinline
62538fd1498SzrjCommon Var(warn_inline) Warning
62638fd1498SzrjWarn when an inlined function cannot be inlined.
62738fd1498Szrj
62838fd1498SzrjWinvalid-memory-model
62938fd1498SzrjCommon Var(warn_invalid_memory_model) Init(1) Warning
63038fd1498SzrjWarn when an atomic memory model parameter is known to be outside the valid range.
63138fd1498Szrj
63238fd1498SzrjWlarger-than-
63338fd1498SzrjCommon RejectNegative Joined Warning Undocumented Alias(Wlarger-than=)
63438fd1498Szrj
63538fd1498SzrjWlarger-than=
63638fd1498SzrjCommon RejectNegative Joined UInteger Warning
63738fd1498Szrj-Wlarger-than=<number>	Warn if an object is larger than <number> bytes.
63838fd1498Szrj
63938fd1498SzrjWnonnull-compare
64038fd1498SzrjVar(warn_nonnull_compare) Warning
64138fd1498SzrjWarn if comparing pointer parameter with nonnull attribute with NULL.
64238fd1498Szrj
64338fd1498SzrjWnull-dereference
64438fd1498SzrjCommon Var(warn_null_dereference) Warning
64538fd1498SzrjWarn if dereferencing a NULL pointer may lead to erroneous or undefined behavior.
64638fd1498Szrj
64738fd1498SzrjWunsafe-loop-optimizations
648*58e805e6SzrjCommon Ignore Warning
649*58e805e6SzrjDoes nothing. Preserved for backward compatibility.
65038fd1498Szrj
65138fd1498SzrjWmissing-noreturn
65238fd1498SzrjCommon Warning Alias(Wsuggest-attribute=noreturn)
65338fd1498Szrj
65438fd1498SzrjWodr
65538fd1498SzrjCommon Var(warn_odr_violations) Init(1) Warning
65638fd1498SzrjWarn about some C++ One Definition Rule violations during link time optimization.
65738fd1498Szrj
65838fd1498SzrjWoverflow
65938fd1498SzrjCommon Var(warn_overflow) Init(1) Warning
66038fd1498SzrjWarn about overflow in arithmetic expressions.
66138fd1498Szrj
66238fd1498SzrjWlto-type-mismatch
66338fd1498SzrjCommon Var(warn_lto_type_mismatch) Init(1) Warning
66438fd1498SzrjDuring link time optimization warn about mismatched types of global declarations.
66538fd1498Szrj
66638fd1498SzrjWpacked
66738fd1498SzrjCommon Var(warn_packed) Warning
66838fd1498SzrjWarn when the packed attribute has no effect on struct layout.
66938fd1498Szrj
67038fd1498SzrjWpadded
67138fd1498SzrjCommon Var(warn_padded) Warning
67238fd1498SzrjWarn when padding is required to align structure members.
67338fd1498Szrj
67438fd1498SzrjWpedantic
67538fd1498SzrjCommon Var(pedantic) Init(0) Warning
67638fd1498SzrjIssue warnings needed for strict compliance to the standard.
67738fd1498Szrj
67838fd1498SzrjWreturn-local-addr
67938fd1498SzrjCommon Var(warn_return_local_addr) Init(1) Warning
68038fd1498SzrjWarn about returning a pointer/reference to a local or temporary variable.
68138fd1498Szrj
68238fd1498SzrjWshadow
68338fd1498SzrjCommon Var(warn_shadow) Warning
68438fd1498SzrjWarn when one variable shadows another.  Same as -Wshadow=global.
68538fd1498Szrj
68638fd1498SzrjWshadow=global
68738fd1498SzrjCommon Warning Alias(Wshadow)
68838fd1498SzrjWarn when one variable shadows another (globally).
68938fd1498Szrj
69038fd1498SzrjWshadow=local
69138fd1498SzrjCommon Var(warn_shadow_local) Warning EnabledBy(Wshadow)
69238fd1498SzrjWarn when one local variable shadows another local variable or parameter.
69338fd1498Szrj
69438fd1498SzrjWshadow-local
69538fd1498SzrjCommon Warning Undocumented Alias(Wshadow=local)
69638fd1498Szrj
69738fd1498SzrjWshadow=compatible-local
69838fd1498SzrjCommon Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local)
69938fd1498SzrjWarn when one local variable shadows another local variable or parameter of compatible type.
70038fd1498Szrj
70138fd1498SzrjWshadow-compatible-local
70238fd1498SzrjCommon Warning Undocumented Alias(Wshadow=compatible-local)
70338fd1498Szrj
70438fd1498SzrjWstack-protector
70538fd1498SzrjCommon Var(warn_stack_protect) Warning
70638fd1498SzrjWarn when not issuing stack smashing protection for some reason.
70738fd1498Szrj
70838fd1498SzrjWstack-usage=
70938fd1498SzrjCommon Joined RejectNegative UInteger Var(warn_stack_usage) Warning
71038fd1498Szrj-Wstack-usage=<number>	Warn if stack usage might be larger than specified amount.
71138fd1498Szrj
71238fd1498SzrjWstrict-aliasing
71338fd1498SzrjCommon Warning
71438fd1498SzrjWarn about code which might break strict aliasing rules.
71538fd1498Szrj
71638fd1498SzrjWstrict-aliasing=
71738fd1498SzrjCommon Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning
71838fd1498SzrjWarn about code which might break strict aliasing rules.
71938fd1498Szrj
72038fd1498SzrjWstrict-overflow
72138fd1498SzrjCommon Warning
72238fd1498SzrjWarn about optimizations that assume that signed overflow is undefined.
72338fd1498Szrj
72438fd1498SzrjWstrict-overflow=
72538fd1498SzrjCommon Joined RejectNegative UInteger Var(warn_strict_overflow) Warning
72638fd1498SzrjWarn about optimizations that assume that signed overflow is undefined.
72738fd1498Szrj
72838fd1498SzrjWsuggest-attribute=cold
72938fd1498SzrjCommon Var(warn_suggest_attribute_cold) Warning
73038fd1498SzrjWarn about functions which might be candidates for __attribute__((cold)).
73138fd1498Szrj
73238fd1498SzrjWsuggest-attribute=const
73338fd1498SzrjCommon Var(warn_suggest_attribute_const) Warning
73438fd1498SzrjWarn about functions which might be candidates for __attribute__((const)).
73538fd1498Szrj
73638fd1498SzrjWsuggest-attribute=pure
73738fd1498SzrjCommon Var(warn_suggest_attribute_pure) Warning
73838fd1498SzrjWarn about functions which might be candidates for __attribute__((pure)).
73938fd1498Szrj
74038fd1498SzrjWsuggest-attribute=noreturn
74138fd1498SzrjCommon Var(warn_suggest_attribute_noreturn) Warning
74238fd1498SzrjWarn about functions which might be candidates for __attribute__((noreturn)).
74338fd1498Szrj
74438fd1498SzrjWsuggest-attribute=malloc
74538fd1498SzrjCommon Var(warn_suggest_attribute_malloc) Warning
74638fd1498SzrjWarn about functions which might be candidates for __attribute__((malloc)).
74738fd1498Szrj
74838fd1498SzrjWsuggest-final-types
74938fd1498SzrjCommon Var(warn_suggest_final_types) Warning
75038fd1498SzrjWarn about C++ polymorphic types where adding final keyword would improve code quality.
75138fd1498Szrj
75238fd1498SzrjWsuggest-final-methods
75338fd1498SzrjCommon Var(warn_suggest_final_methods) Warning
75438fd1498SzrjWarn about C++ virtual methods where adding final keyword would improve code quality.
75538fd1498Szrj
75638fd1498SzrjWswitch-unreachable
75738fd1498SzrjCommon Var(warn_switch_unreachable) Warning Init(1)
75838fd1498SzrjWarn about statements between switch's controlling expression and the first
75938fd1498Szrjcase.
76038fd1498Szrj
76138fd1498SzrjWsystem-headers
76238fd1498SzrjCommon Var(warn_system_headers) Warning
76338fd1498SzrjDo not suppress warnings from system headers.
76438fd1498Szrj
76538fd1498SzrjWtrampolines
76638fd1498SzrjCommon Var(warn_trampolines) Warning
76738fd1498SzrjWarn whenever a trampoline is generated.
76838fd1498Szrj
76938fd1498SzrjWtype-limits
77038fd1498SzrjCommon Var(warn_type_limits) Warning EnabledBy(Wextra)
77138fd1498SzrjWarn if a comparison is always true or always false due to the limited range of the data type.
77238fd1498Szrj
77338fd1498SzrjWuninitialized
77438fd1498SzrjCommon Var(warn_uninitialized) Warning EnabledBy(Wextra)
77538fd1498SzrjWarn about uninitialized automatic variables.
77638fd1498Szrj
77738fd1498SzrjWmaybe-uninitialized
77838fd1498SzrjCommon Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized)
77938fd1498SzrjWarn about maybe uninitialized automatic variables.
78038fd1498Szrj
78138fd1498SzrjWunreachable-code
78238fd1498SzrjCommon Ignore Warning
78338fd1498SzrjDoes nothing. Preserved for backward compatibility.
78438fd1498Szrj
78538fd1498SzrjWunused
78638fd1498SzrjCommon Var(warn_unused) Init(0) Warning
78738fd1498SzrjEnable all -Wunused- warnings.
78838fd1498Szrj
78938fd1498SzrjWunused-but-set-parameter
79038fd1498SzrjCommon Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra)
79138fd1498SzrjWarn when a function parameter is only set, otherwise unused.
79238fd1498Szrj
79338fd1498SzrjWunused-but-set-variable
79438fd1498SzrjCommon Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused)
79538fd1498SzrjWarn when a variable is only set, otherwise unused.
79638fd1498Szrj
79738fd1498SzrjWunused-function
79838fd1498SzrjCommon Var(warn_unused_function) Warning EnabledBy(Wunused)
79938fd1498SzrjWarn when a function is unused.
80038fd1498Szrj
80138fd1498SzrjWunused-label
80238fd1498SzrjCommon Var(warn_unused_label) Warning EnabledBy(Wunused)
80338fd1498SzrjWarn when a label is unused.
80438fd1498Szrj
80538fd1498SzrjWunused-parameter
80638fd1498SzrjCommon Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra)
80738fd1498SzrjWarn when a function parameter is unused.
80838fd1498Szrj
80938fd1498SzrjWunused-value
81038fd1498SzrjCommon Var(warn_unused_value) Warning EnabledBy(Wunused)
81138fd1498SzrjWarn when an expression value is unused.
81238fd1498Szrj
81338fd1498SzrjWunused-variable
81438fd1498SzrjCommon Var(warn_unused_variable) Warning EnabledBy(Wunused)
81538fd1498SzrjWarn when a variable is unused.
81638fd1498Szrj
81738fd1498SzrjWcoverage-mismatch
81838fd1498SzrjCommon Var(warn_coverage_mismatch) Init(1) Warning
81938fd1498SzrjWarn in case profiles in -fprofile-use do not match.
82038fd1498Szrj
82138fd1498SzrjWvector-operation-performance
82238fd1498SzrjCommon Var(warn_vector_operation_performance) Warning
82338fd1498SzrjWarn when a vector operation is compiled outside the SIMD.
82438fd1498Szrj
82538fd1498SzrjXassembler
82638fd1498SzrjDriver Separate
82738fd1498Szrj
82838fd1498SzrjXlinker
82938fd1498SzrjDriver Separate
83038fd1498Szrj
83138fd1498SzrjXpreprocessor
83238fd1498SzrjDriver Separate
83338fd1498Szrj
83438fd1498SzrjZ
83538fd1498SzrjDriver
83638fd1498Szrj
83738fd1498Szrjaux-info
83838fd1498SzrjCommon Separate Var(aux_info_file_name)
83938fd1498Szrj-aux-info <file>	Emit declaration information into <file>.
84038fd1498Szrj
84138fd1498Szrjaux-info=
84238fd1498SzrjCommon Joined Alias(aux-info)
84338fd1498Szrj
84438fd1498Szrjauxbase
84538fd1498SzrjCommon Separate RejectDriver Var(aux_base_name)
84638fd1498Szrj
84738fd1498Szrjauxbase-strip
84838fd1498SzrjCommon Separate RejectDriver
84938fd1498Szrj
85038fd1498Szrjcoverage
85138fd1498SzrjDriver
85238fd1498Szrj
85338fd1498Szrjc
85438fd1498SzrjDriver
85538fd1498Szrj
85638fd1498Szrjd
85738fd1498SzrjCommon Joined
85838fd1498Szrj-d<letters>	Enable dumps from specific passes of the compiler.
85938fd1498Szrj
86038fd1498Szrjdumpbase
86138fd1498SzrjCommon Separate Var(dump_base_name)
86238fd1498Szrj-dumpbase <file>	Set the file basename to be used for dumps.
86338fd1498Szrj
86438fd1498Szrjdumpdir
86538fd1498SzrjCommon Separate Var(dump_dir_name)
86638fd1498Szrj-dumpdir <dir>	Set the directory name to be used for dumps.
86738fd1498Szrj
86838fd1498Szrjdumpmachine
86938fd1498SzrjDriver
87038fd1498Szrj
87138fd1498Szrjdumpspecs
87238fd1498SzrjDriver
87338fd1498Szrj
87438fd1498Szrjdumpversion
87538fd1498SzrjDriver
87638fd1498Szrj
87738fd1498Szrjdumpfullversion
87838fd1498SzrjDriver
87938fd1498Szrj
88038fd1498Szrje
88138fd1498SzrjDriver Joined Separate
88238fd1498Szrj
88338fd1498Szrj; This option has historically been passed down to the linker by an
88438fd1498Szrj; accident of a %{e*} spec, so ensure it continues to be passed down
88538fd1498Szrj; as a single option.  The supported option for this purpose is
88638fd1498Szrj; -rdynamic.  See PR 47390.
88738fd1498Szrjexport-dynamic
88838fd1498SzrjDriver Undocumented
88938fd1498Szrj
89038fd1498Szrj; The version of the C++ ABI in use.  The following values are allowed:
89138fd1498Szrj;
89238fd1498Szrj; 0: The version of the ABI believed most conformant with the C++ ABI
89338fd1498Szrj;    specification.  This ABI may change as bugs are discovered and fixed.
89438fd1498Szrj;    Therefore, 0 will not necessarily indicate the same ABI in different
89538fd1498Szrj;    versions of G++.
89638fd1498Szrj;
89738fd1498Szrj; 1: The version of the ABI first used in G++ 3.2.  No longer selectable.
89838fd1498Szrj;
89938fd1498Szrj; 2: The version of the ABI first used in G++ 3.4, and the default
90038fd1498Szrj;    until GCC 4.9.
90138fd1498Szrj;
90238fd1498Szrj; 3: The version of the ABI that fixes the missing underscore
90338fd1498Szrj;    in template non-type arguments of pointer type.
90438fd1498Szrj;
90538fd1498Szrj; 4: The version of the ABI that introduces unambiguous mangling of
90638fd1498Szrj;    vector types.  First selectable in G++ 4.5.
90738fd1498Szrj;
90838fd1498Szrj; 5: The version of the ABI that ignores attribute const/noreturn
90938fd1498Szrj;    in function pointer mangling, and corrects mangling of decltype and
91038fd1498Szrj;    function parameters used in other parameters and the return type.
91138fd1498Szrj;    First selectable in G++ 4.6.
91238fd1498Szrj;
91338fd1498Szrj; 6: The version of the ABI that doesn't promote scoped enums to int and
91438fd1498Szrj;    changes the mangling of template argument packs, const/static_cast,
91538fd1498Szrj;    prefix ++ and --, and a class scope function used as a template
91638fd1498Szrj;    argument.
91738fd1498Szrj;    First selectable in G++ 4.7.
91838fd1498Szrj;
91938fd1498Szrj; 7: The version of the ABI that treats nullptr_t as a builtin type and
92038fd1498Szrj;    corrects the mangling of lambdas in default argument scope.
92138fd1498Szrj;    First selectable in G++ 4.8.
92238fd1498Szrj;
92338fd1498Szrj; 8: The version of the ABI that corrects the substitution behavior of
92438fd1498Szrj;    function types with function-cv-qualifiers.
92538fd1498Szrj;    First selectable in G++ 4.9 and default in G++ 5.
92638fd1498Szrj;
92738fd1498Szrj; 9: The version of the ABI that corrects the alignment of nullptr_t.
92838fd1498Szrj;    First selectable and default in G++ 5.2.
92938fd1498Szrj;
93038fd1498Szrj; 10: The version of the ABI that mangles attributes that affect type
93138fd1498Szrj;     identity, such as ia32 calling convention attributes (stdcall, etc.)
93238fd1498Szrj;     Default in G++ 6 (set in c_common_post_options).
93338fd1498Szrj;
93438fd1498Szrj; 11: The version of the ABI that corrects mangling of sizeof... expressions
93538fd1498Szrj;     and introduces new inheriting constructor handling.
93638fd1498Szrj;     Default in G++ 7.
93738fd1498Szrj;
93838fd1498Szrj; 12: Corrects the calling convention for classes with only deleted copy/move
93938fd1498Szrj;     constructors and changes passing/returning of empty records.
940*58e805e6Szrj;     Default in G++ 8.1.
941*58e805e6Szrj;
942*58e805e6Szrj; 13: Fixes the accidental change in 12 to the calling convention for classes
943*58e805e6Szrj;     with deleted copy constructor and trivial move constructor.
944*58e805e6Szrj;     Default in G++ 8.2.
94538fd1498Szrj;
94638fd1498Szrj; Additional positive integers will be assigned as new versions of
94738fd1498Szrj; the ABI become the default version of the ABI.
94838fd1498Szrjfabi-version=
94938fd1498SzrjCommon Joined RejectNegative UInteger Var(flag_abi_version) Init(0)
95038fd1498SzrjThe version of the C++ ABI in use.
95138fd1498Szrj
95238fd1498Szrjfaggressive-loop-optimizations
95338fd1498SzrjCommon Report Var(flag_aggressive_loop_optimizations) Optimization Init(1)
95438fd1498SzrjAggressively optimize loops using language constraints.
95538fd1498Szrj
95638fd1498Szrjfalign-functions
95738fd1498SzrjCommon Report Var(align_functions,0) Optimization UInteger
95838fd1498SzrjAlign the start of functions.
95938fd1498Szrj
96038fd1498Szrjfalign-functions=
96138fd1498SzrjCommon RejectNegative Joined UInteger Var(align_functions) Optimization
96238fd1498Szrj
96338fd1498Szrjflimit-function-alignment
96438fd1498SzrjCommon Report Var(flag_limit_function_alignment) Optimization Init(0)
96538fd1498Szrj
96638fd1498Szrjfalign-jumps
96738fd1498SzrjCommon Report Var(align_jumps,0) Optimization UInteger
96838fd1498SzrjAlign labels which are only reached by jumping.
96938fd1498Szrj
97038fd1498Szrjfalign-jumps=
97138fd1498SzrjCommon RejectNegative Joined UInteger Var(align_jumps) Optimization
97238fd1498Szrj
97338fd1498Szrjfalign-labels
97438fd1498SzrjCommon Report Var(align_labels,0) Optimization UInteger
97538fd1498SzrjAlign all labels.
97638fd1498Szrj
97738fd1498Szrjfalign-labels=
97838fd1498SzrjCommon RejectNegative Joined UInteger Var(align_labels) Optimization
97938fd1498Szrj
98038fd1498Szrjfalign-loops
98138fd1498SzrjCommon Report Var(align_loops,0) Optimization UInteger
98238fd1498SzrjAlign the start of loops.
98338fd1498Szrj
98438fd1498Szrjfalign-loops=
98538fd1498SzrjCommon RejectNegative Joined UInteger Var(align_loops) Optimization
98638fd1498Szrj
98738fd1498Szrjfargument-alias
98838fd1498SzrjCommon Ignore
98938fd1498SzrjDoes nothing. Preserved for backward compatibility.
99038fd1498Szrj
99138fd1498Szrjfargument-noalias
99238fd1498SzrjCommon Ignore
99338fd1498SzrjDoes nothing. Preserved for backward compatibility.
99438fd1498Szrj
99538fd1498Szrjfargument-noalias-global
99638fd1498SzrjCommon Ignore
99738fd1498SzrjDoes nothing. Preserved for backward compatibility.
99838fd1498Szrj
99938fd1498Szrjfargument-noalias-anything
100038fd1498SzrjCommon Ignore
100138fd1498SzrjDoes nothing. Preserved for backward compatibility.
100238fd1498Szrj
100338fd1498Szrjfsanitize=
100438fd1498SzrjCommon Driver Report Joined
100538fd1498SzrjSelect what to sanitize.
100638fd1498Szrj
100738fd1498Szrjfsanitize-coverage=
100838fd1498SzrjCommon Report Joined
100938fd1498SzrjSelect type of coverage sanitization.
101038fd1498Szrj
101138fd1498Szrjfasan-shadow-offset=
101238fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
101338fd1498Szrj-fasan-shadow-offset=<number>	Use custom shadow memory offset.
101438fd1498Szrj
101538fd1498Szrjfsanitize-sections=
101638fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
101738fd1498Szrj-fsanitize-sections=<sec1,sec2,...>	Sanitize global variables
101838fd1498Szrjin user-defined sections.
101938fd1498Szrj
102038fd1498Szrjfsanitize-recover=
102138fd1498SzrjCommon Report Joined
102238fd1498SzrjAfter diagnosing undefined behavior attempt to continue execution.
102338fd1498Szrj
102438fd1498Szrjfsanitize-recover
102538fd1498SzrjCommon Report
102638fd1498SzrjThis switch is deprecated; use -fsanitize-recover= instead.
102738fd1498Szrj
102838fd1498Szrjfsanitize-address-use-after-scope
102938fd1498SzrjCommon Driver Report Var(flag_sanitize_address_use_after_scope) Init(0)
103038fd1498Szrj
103138fd1498Szrjfsanitize-undefined-trap-on-error
103238fd1498SzrjCommon Driver Report Var(flag_sanitize_undefined_trap_on_error) Init(0)
103338fd1498SzrjUse trap instead of a library function for undefined behavior sanitization.
103438fd1498Szrj
103538fd1498Szrjfasynchronous-unwind-tables
103638fd1498SzrjCommon Report Var(flag_asynchronous_unwind_tables) Optimization
103738fd1498SzrjGenerate unwind tables that are exact at each instruction boundary.
103838fd1498Szrj
103938fd1498Szrjfauto-inc-dec
104038fd1498SzrjCommon Report Var(flag_auto_inc_dec) Init(1) Optimization
104138fd1498SzrjGenerate auto-inc/dec instructions.
104238fd1498Szrj
104338fd1498Szrjfauto-profile
104438fd1498SzrjCommon Report Var(flag_auto_profile)
104538fd1498SzrjUse sample profile information for call graph node weights. The default
104638fd1498Szrjprofile file is fbdata.afdo in 'pwd'.
104738fd1498Szrj
104838fd1498Szrjfauto-profile=
104938fd1498SzrjCommon Joined RejectNegative Var(auto_profile_file)
105038fd1498SzrjUse sample profile information for call graph node weights. The profile
105138fd1498Szrjfile is specified in the argument.
105238fd1498Szrj
105338fd1498Szrj; -fcheck-bounds causes gcc to generate array bounds checks.
105438fd1498Szrj; For C, C++ and ObjC: defaults off.
105538fd1498Szrj; For Java: defaults to on.
105638fd1498Szrj; For Fortran: defaults to off.
105738fd1498Szrjfbounds-check
105838fd1498SzrjCommon Report Var(flag_bounds_check)
105938fd1498SzrjGenerate code to check bounds before indexing arrays.
106038fd1498Szrj
106138fd1498Szrjfbranch-count-reg
106238fd1498SzrjCommon Report Var(flag_branch_on_count_reg) Optimization
106338fd1498SzrjReplace add, compare, branch with branch on count register.
106438fd1498Szrj
106538fd1498Szrjfbranch-probabilities
106638fd1498SzrjCommon Report Var(flag_branch_probabilities) Optimization
106738fd1498SzrjUse profiling information for branch probabilities.
106838fd1498Szrj
106938fd1498Szrjfbranch-target-load-optimize
107038fd1498SzrjCommon Report Var(flag_branch_target_load_optimize) Optimization
107138fd1498SzrjPerform branch target load optimization before prologue / epilogue threading.
107238fd1498Szrj
107338fd1498Szrjfbranch-target-load-optimize2
107438fd1498SzrjCommon Report Var(flag_branch_target_load_optimize2) Optimization
107538fd1498SzrjPerform branch target load optimization after prologue / epilogue threading.
107638fd1498Szrj
107738fd1498Szrjfbtr-bb-exclusive
107838fd1498SzrjCommon Report Var(flag_btr_bb_exclusive) Optimization
107938fd1498SzrjRestrict target load migration not to re-use registers in any basic block.
108038fd1498Szrj
108138fd1498Szrjfcall-saved-
108238fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
108338fd1498Szrj-fcall-saved-<register>	Mark <register> as being preserved across functions.
108438fd1498Szrj
108538fd1498Szrjfcall-used-
108638fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
108738fd1498Szrj-fcall-used-<register>	Mark <register> as being corrupted by function calls.
108838fd1498Szrj
108938fd1498Szrj; Nonzero for -fcaller-saves: allocate values in regs that need to
109038fd1498Szrj; be saved across function calls, if that produces overall better code.
109138fd1498Szrj; Optional now, so people can test it.
109238fd1498Szrjfcaller-saves
109338fd1498SzrjCommon Report Var(flag_caller_saves) Optimization
109438fd1498SzrjSave registers around function calls.
109538fd1498Szrj
109638fd1498Szrjfcheck-data-deps
109738fd1498SzrjCommon Report Var(flag_check_data_deps)
109838fd1498SzrjThis switch is deprecated; do not use.
109938fd1498Szrj
110038fd1498Szrjfcheck-new
110138fd1498SzrjCommon Var(flag_check_new)
110238fd1498SzrjCheck the return value of new in C++.
110338fd1498Szrj
110438fd1498Szrjfchecking
110538fd1498SzrjCommon Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0)
110638fd1498SzrjPerform internal consistency checkings.
110738fd1498Szrj
110838fd1498Szrjfchecking=
110938fd1498SzrjCommon Joined RejectNegative UInteger Var(flag_checking)
111038fd1498SzrjPerform internal consistency checkings.
111138fd1498Szrj
111238fd1498Szrjfcode-hoisting
111338fd1498SzrjCommon Report Var(flag_code_hoisting) Optimization
111438fd1498SzrjEnable code hoisting.
111538fd1498Szrj
111638fd1498Szrjfcombine-stack-adjustments
111738fd1498SzrjCommon Report Var(flag_combine_stack_adjustments) Optimization
111838fd1498SzrjLooks for opportunities to reduce stack adjustments and stack references.
111938fd1498Szrj
112038fd1498Szrjfcommon
112138fd1498SzrjCommon Report Var(flag_no_common,0)
112238fd1498SzrjDo not put uninitialized globals in the common section.
112338fd1498Szrj
112438fd1498Szrjfcompare-debug
112538fd1498SzrjDriver
112638fd1498Szrj; Converted by the driver to -fcompare-debug= options.
112738fd1498Szrj
112838fd1498Szrjfcompare-debug=
112938fd1498SzrjCommon Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt)
113038fd1498Szrj-fcompare-debug[=<opts>]	Compile with and without e.g. -gtoggle, and compare the final-insns dump.
113138fd1498Szrj
113238fd1498Szrjfcompare-debug-second
113338fd1498SzrjCommon Driver RejectNegative Var(flag_compare_debug)
113438fd1498SzrjRun only the second compilation of -fcompare-debug.
113538fd1498Szrj
113638fd1498Szrjfcompare-elim
113738fd1498SzrjCommon Report Var(flag_compare_elim_after_reload) Optimization
113838fd1498SzrjPerform comparison elimination after register allocation has finished.
113938fd1498Szrj
114038fd1498Szrjfconserve-stack
114138fd1498SzrjCommon Var(flag_conserve_stack) Optimization
114238fd1498SzrjDo not perform optimizations increasing noticeably stack usage.
114338fd1498Szrj
114438fd1498Szrjfcprop-registers
114538fd1498SzrjCommon Report Var(flag_cprop_registers) Optimization
114638fd1498SzrjPerform a register copy-propagation optimization pass.
114738fd1498Szrj
114838fd1498Szrjfcrossjumping
114938fd1498SzrjCommon Report Var(flag_crossjumping) Optimization
115038fd1498SzrjPerform cross-jumping optimization.
115138fd1498Szrj
115238fd1498Szrjfcse-follow-jumps
115338fd1498SzrjCommon Report Var(flag_cse_follow_jumps) Optimization
115438fd1498SzrjWhen running CSE, follow jumps to their targets.
115538fd1498Szrj
115638fd1498Szrjfcse-skip-blocks
115738fd1498SzrjCommon Ignore
115838fd1498SzrjDoes nothing.  Preserved for backward compatibility.
115938fd1498Szrj
116038fd1498Szrjfcx-limited-range
116138fd1498SzrjCommon Report Var(flag_cx_limited_range) Optimization SetByCombined
116238fd1498SzrjOmit range reduction step when performing complex division.
116338fd1498Szrj
116438fd1498Szrjfcx-fortran-rules
116538fd1498SzrjCommon Report Var(flag_cx_fortran_rules) Optimization
116638fd1498SzrjComplex multiplication and division follow Fortran rules.
116738fd1498Szrj
116838fd1498Szrjfdata-sections
116938fd1498SzrjCommon Report Var(flag_data_sections)
117038fd1498SzrjPlace data items into their own section.
117138fd1498Szrj
117238fd1498Szrjfdbg-cnt-list
117338fd1498SzrjCommon Report Var(common_deferred_options) Defer
117438fd1498SzrjList all available debugging counters with their limits and counts.
117538fd1498Szrj
117638fd1498Szrjfdbg-cnt=
117738fd1498SzrjCommon RejectNegative Joined Var(common_deferred_options) Defer
117838fd1498Szrj-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...]	Set the debug counter limit.
117938fd1498Szrj
118038fd1498Szrjfdebug-prefix-map=
118138fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
118238fd1498Szrj-fdebug-prefix-map=<old>=<new> Map one directory name to another in debug information.
118338fd1498Szrj
118438fd1498Szrjffile-prefix-map=
118538fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
118638fd1498Szrj-ffile-prefix-map=<old>=<new> Map one directory name to another in compilation result.
118738fd1498Szrj
118838fd1498Szrjfdebug-types-section
118938fd1498SzrjCommon Report Var(flag_debug_types_section) Init(0)
119038fd1498SzrjOutput .debug_types section when using DWARF v4 debuginfo.
119138fd1498Szrj
119238fd1498Szrj; Nonzero for -fdefer-pop: don't pop args after each function call
119338fd1498Szrj; instead save them up to pop many calls' args with one insns.
119438fd1498Szrjfdefer-pop
119538fd1498SzrjCommon Report Var(flag_defer_pop) Optimization
119638fd1498SzrjDefer popping functions args from stack until later.
119738fd1498Szrj
119838fd1498Szrjfdelayed-branch
119938fd1498SzrjCommon Report Var(flag_delayed_branch) Optimization
120038fd1498SzrjAttempt to fill delay slots of branch instructions.
120138fd1498Szrj
120238fd1498Szrjfdelete-dead-exceptions
120338fd1498SzrjCommon Report Var(flag_delete_dead_exceptions) Init(0) Optimization
120438fd1498SzrjDelete dead instructions that may throw exceptions.
120538fd1498Szrj
120638fd1498Szrjfdelete-null-pointer-checks
120738fd1498SzrjCommon Report Var(flag_delete_null_pointer_checks) Init(-1) Optimization
120838fd1498SzrjDelete useless null pointer checks.
120938fd1498Szrj
121038fd1498Szrjfdevirtualize-at-ltrans
121138fd1498SzrjCommon Report Var(flag_ltrans_devirtualize)
121238fd1498SzrjStream extra data to support more aggressive devirtualization in LTO local transformation mode.
121338fd1498Szrj
121438fd1498Szrjfdevirtualize-speculatively
121538fd1498SzrjCommon Report Var(flag_devirtualize_speculatively) Optimization
121638fd1498SzrjPerform speculative devirtualization.
121738fd1498Szrj
121838fd1498Szrjfdevirtualize
121938fd1498SzrjCommon Report Var(flag_devirtualize) Optimization
122038fd1498SzrjTry to convert virtual calls to direct ones.
122138fd1498Szrj
122238fd1498Szrjfdiagnostics-show-location=
122338fd1498SzrjCommon Joined RejectNegative Enum(diagnostic_prefixing_rule)
122438fd1498Szrj-fdiagnostics-show-location=[once|every-line]	How often to emit source location at the beginning of line-wrapped diagnostics.
122538fd1498Szrj
122638fd1498Szrj; Required for these enum values.
122738fd1498SzrjSourceInclude
122838fd1498Szrjpretty-print.h
122938fd1498Szrj
123038fd1498SzrjEnum
123138fd1498SzrjName(diagnostic_prefixing_rule) Type(int)
123238fd1498Szrj
123338fd1498SzrjEnumValue
123438fd1498SzrjEnum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE)
123538fd1498Szrj
123638fd1498SzrjEnumValue
123738fd1498SzrjEnum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE)
123838fd1498Szrj
123938fd1498Szrjfdiagnostics-show-caret
124038fd1498SzrjCommon Var(flag_diagnostics_show_caret) Init(1)
124138fd1498SzrjShow the source line with a caret indicating the column.
124238fd1498Szrj
124338fd1498Szrjfdiagnostics-color
124438fd1498SzrjCommon Alias(fdiagnostics-color=,always,never)
124538fd1498Szrj;
124638fd1498Szrj
124738fd1498Szrjfdiagnostics-color=
124838fd1498SzrjDriver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO)
124938fd1498Szrj-fdiagnostics-color=[never|always|auto]	Colorize diagnostics.
125038fd1498Szrj
125138fd1498Szrj; Required for these enum values.
125238fd1498SzrjSourceInclude
125338fd1498Szrjdiagnostic-color.h
125438fd1498Szrj
125538fd1498SzrjEnum
125638fd1498SzrjName(diagnostic_color_rule) Type(int)
125738fd1498Szrj
125838fd1498SzrjEnumValue
125938fd1498SzrjEnum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO)
126038fd1498Szrj
126138fd1498SzrjEnumValue
126238fd1498SzrjEnum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES)
126338fd1498Szrj
126438fd1498SzrjEnumValue
126538fd1498SzrjEnum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO)
126638fd1498Szrj
126738fd1498Szrjfdiagnostics-parseable-fixits
126838fd1498SzrjCommon Var(flag_diagnostics_parseable_fixits)
126938fd1498SzrjPrint fix-it hints in machine-readable form.
127038fd1498Szrj
127138fd1498Szrjfdiagnostics-generate-patch
127238fd1498SzrjCommon Var(flag_diagnostics_generate_patch)
127338fd1498SzrjPrint fix-it hints to stderr in unified diff format.
127438fd1498Szrj
127538fd1498Szrjfdiagnostics-show-option
127638fd1498SzrjCommon Var(flag_diagnostics_show_option) Init(1)
127738fd1498SzrjAmend appropriate diagnostic messages with the command line option that controls them.
127838fd1498Szrj
127938fd1498Szrjfdisable-
128038fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
128138fd1498Szrj-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass.
128238fd1498Szrj
128338fd1498Szrjfenable-
128438fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
128538fd1498Szrj-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass.
128638fd1498Szrj
128738fd1498Szrjfdump-
128838fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
128938fd1498Szrj-fdump-<type>	Dump various compiler internals to a file.
129038fd1498Szrj
129138fd1498Szrjfdump-final-insns
129238fd1498SzrjDriver RejectNegative
129338fd1498Szrj
129438fd1498Szrjfdump-final-insns=
129538fd1498SzrjCommon RejectNegative Joined Var(flag_dump_final_insns)
129638fd1498Szrj-fdump-final-insns=filename	Dump to filename the insns at the end of translation.
129738fd1498Szrj
129838fd1498Szrjfdump-go-spec=
129938fd1498SzrjCommon RejectNegative Joined Var(flag_dump_go_spec)
130038fd1498Szrj-fdump-go-spec=filename	Write all declarations to file as Go code.
130138fd1498Szrj
130238fd1498Szrjfdump-noaddr
130338fd1498SzrjCommon Report Var(flag_dump_noaddr)
130438fd1498SzrjSuppress output of addresses in debugging dumps.
130538fd1498Szrj
130638fd1498Szrjfreport-bug
130738fd1498SzrjCommon Driver Var(flag_report_bug)
130838fd1498SzrjCollect and dump debug information into temporary file if ICE in C/C++
130938fd1498Szrjcompiler occurred.
131038fd1498Szrj
131138fd1498Szrjfdump-internal-locations
131238fd1498SzrjCommon Var(flag_dump_locations) Init(0)
131338fd1498SzrjDump detailed information on GCC's internal representation of source code locations.
131438fd1498Szrj
131538fd1498Szrjfdump-passes
131638fd1498SzrjCommon Var(flag_dump_passes) Init(0)
131738fd1498SzrjDump optimization passes.
131838fd1498Szrj
131938fd1498Szrjfdump-unnumbered
132038fd1498SzrjCommon Report Var(flag_dump_unnumbered)
132138fd1498SzrjSuppress output of instruction numbers, line number notes and addresses in debugging dumps.
132238fd1498Szrj
132338fd1498Szrjfdump-unnumbered-links
132438fd1498SzrjCommon Report Var(flag_dump_unnumbered_links)
132538fd1498SzrjSuppress output of previous and next insn numbers in debugging dumps.
132638fd1498Szrj
132738fd1498Szrjfdwarf2-cfi-asm
132838fd1498SzrjCommon Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE)
132938fd1498SzrjEnable CFI tables via GAS assembler directives.
133038fd1498Szrj
133138fd1498Szrjfearly-inlining
133238fd1498SzrjCommon Report Var(flag_early_inlining) Init(1) Optimization
133338fd1498SzrjPerform early inlining.
133438fd1498Szrj
133538fd1498Szrjfeliminate-dwarf2-dups
133638fd1498SzrjCommon Ignore
133738fd1498SzrjDoes nothing.  Preserved for backward compatibility.
133838fd1498Szrj
133938fd1498Szrjfipa-sra
134038fd1498SzrjCommon Report Var(flag_ipa_sra) Init(0) Optimization
134138fd1498SzrjPerform interprocedural reduction of aggregates.
134238fd1498Szrj
134338fd1498Szrjfeliminate-unused-debug-symbols
134438fd1498SzrjCommon Report Var(flag_debug_only_used_symbols)
134538fd1498SzrjPerform unused symbol elimination in debug info.
134638fd1498Szrj
134738fd1498Szrjfeliminate-unused-debug-types
134838fd1498SzrjCommon Report Var(flag_eliminate_unused_debug_types) Init(1)
134938fd1498SzrjPerform unused type elimination in debug info.
135038fd1498Szrj
135138fd1498Szrjfemit-class-debug-always
135238fd1498SzrjCommon Report Var(flag_emit_class_debug_always) Init(0)
135338fd1498SzrjDo not suppress C++ class debug information.
135438fd1498Szrj
135538fd1498Szrjfexceptions
135638fd1498SzrjCommon Report Var(flag_exceptions) Optimization
135738fd1498SzrjEnable exception handling.
135838fd1498Szrj
135938fd1498Szrjfexpensive-optimizations
136038fd1498SzrjCommon Report Var(flag_expensive_optimizations) Optimization
136138fd1498SzrjPerform a number of minor, expensive optimizations.
136238fd1498Szrj
136338fd1498Szrjfexcess-precision=
136438fd1498SzrjCommon Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT) SetByCombined
136538fd1498Szrj-fexcess-precision=[fast|standard]	Specify handling of excess floating-point precision.
136638fd1498Szrj
136738fd1498SzrjEnum
136838fd1498SzrjName(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs)
136938fd1498Szrj
137038fd1498SzrjEnumValue
137138fd1498SzrjEnum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST)
137238fd1498Szrj
137338fd1498SzrjEnumValue
137438fd1498SzrjEnum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD)
137538fd1498Szrj
137638fd1498Szrj; Whether we permit the extended set of values for FLT_EVAL_METHOD
137738fd1498Szrj; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11.
137838fd1498Szrjfpermitted-flt-eval-methods=
137938fd1498SzrjCommon Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT)
138038fd1498Szrj-fpermitted-flt-eval-methods=[c11|ts-18661]	Specify which values of FLT_EVAL_METHOD are permitted.
138138fd1498Szrj
138238fd1498SzrjEnum
138338fd1498SzrjName(permitted_flt_eval_methods) Type(enum permitted_flt_eval_methods) UnknownError(unknown specification for the set of FLT_EVAL_METHOD values to permit %qs)
138438fd1498Szrj
138538fd1498SzrjEnumValue
138638fd1498SzrjEnum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11)
138738fd1498Szrj
138838fd1498SzrjEnumValue
138938fd1498SzrjEnum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661)
139038fd1498Szrj
139138fd1498Szrjffast-math
139238fd1498SzrjCommon Optimization
139338fd1498Szrj
139438fd1498Szrjffat-lto-objects
139538fd1498SzrjCommon Var(flag_fat_lto_objects)
139638fd1498SzrjOutput lto objects containing both the intermediate language and binary output.
139738fd1498Szrj
139838fd1498Szrjffinite-math-only
139938fd1498SzrjCommon Report Var(flag_finite_math_only) Optimization SetByCombined
140038fd1498SzrjAssume no NaNs or infinities are generated.
140138fd1498Szrj
140238fd1498Szrjffixed-
140338fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
140438fd1498Szrj-ffixed-<register>	Mark <register> as being unavailable to the compiler.
140538fd1498Szrj
140638fd1498Szrjffloat-store
140738fd1498SzrjCommon Report Var(flag_float_store) Optimization
140838fd1498SzrjDon't allocate floats and doubles in extended-precision registers.
140938fd1498Szrj
141038fd1498Szrjfforce-addr
141138fd1498SzrjCommon Ignore
141238fd1498SzrjDoes nothing.  Preserved for backward compatibility.
141338fd1498Szrj
141438fd1498Szrjfforward-propagate
141538fd1498SzrjCommon Report Var(flag_forward_propagate) Optimization
141638fd1498SzrjPerform a forward propagation pass on RTL.
141738fd1498Szrj
141838fd1498Szrjffp-contract=
141938fd1498SzrjCommon Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization
142038fd1498Szrj-ffp-contract=[off|on|fast]	Perform floating-point expression contraction.
142138fd1498Szrj
142238fd1498SzrjEnum
142338fd1498SzrjName(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs)
142438fd1498Szrj
142538fd1498SzrjEnumValue
142638fd1498SzrjEnum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF)
142738fd1498Szrj
142838fd1498Szrj; Not implemented, fall back to conservative FP_CONTRACT_OFF.
142938fd1498SzrjEnumValue
143038fd1498SzrjEnum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF)
143138fd1498Szrj
143238fd1498SzrjEnumValue
143338fd1498SzrjEnum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST)
143438fd1498Szrj
143538fd1498Szrjffp-int-builtin-inexact
143638fd1498SzrjCommon Report Var(flag_fp_int_builtin_inexact) Init(1) Optimization
143738fd1498SzrjAllow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions.
143838fd1498Szrj
143938fd1498Szrj; Nonzero means don't put addresses of constant functions in registers.
144038fd1498Szrj; Used for compiling the Unix kernel, where strange substitutions are
144138fd1498Szrj; done on the assembly output.
144238fd1498Szrjffunction-cse
144338fd1498SzrjCommon Report Var(flag_no_function_cse,0) Optimization
144438fd1498SzrjAllow function addresses to be held in registers.
144538fd1498Szrj
144638fd1498Szrjffunction-sections
144738fd1498SzrjCommon Report Var(flag_function_sections)
144838fd1498SzrjPlace each function into its own section.
144938fd1498Szrj
145038fd1498Szrjfgcse
145138fd1498SzrjCommon Report Var(flag_gcse) Optimization
145238fd1498SzrjPerform global common subexpression elimination.
145338fd1498Szrj
145438fd1498Szrjfgcse-lm
145538fd1498SzrjCommon Report Var(flag_gcse_lm) Init(1) Optimization
145638fd1498SzrjPerform enhanced load motion during global common subexpression elimination.
145738fd1498Szrj
145838fd1498Szrjfgcse-sm
145938fd1498SzrjCommon Report Var(flag_gcse_sm) Init(0) Optimization
146038fd1498SzrjPerform store motion after global common subexpression elimination.
146138fd1498Szrj
146238fd1498Szrjfgcse-las
146338fd1498SzrjCommon Report Var(flag_gcse_las) Init(0) Optimization
146438fd1498SzrjPerform redundant load after store elimination in global common subexpression
146538fd1498Szrjelimination.
146638fd1498Szrj
146738fd1498Szrjfgcse-after-reload
146838fd1498SzrjCommon Report Var(flag_gcse_after_reload) Optimization
146938fd1498SzrjPerform global common subexpression elimination after register allocation has
147038fd1498Szrjfinished.
147138fd1498Szrj
147238fd1498SzrjEnum
147338fd1498SzrjName(dwarf_gnat_encodings) Type(int)
147438fd1498Szrj
147538fd1498SzrjEnumValue
147638fd1498SzrjEnum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL)
147738fd1498Szrj
147838fd1498SzrjEnumValue
147938fd1498SzrjEnum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB)
148038fd1498Szrj
148138fd1498SzrjEnumValue
148238fd1498SzrjEnum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL)
148338fd1498Szrj
148438fd1498Szrjfgnat-encodings=
148538fd1498SzrjCommon Enum(dwarf_gnat_encodings) Joined RejectNegative Report Undocumented Var(gnat_encodings)
148638fd1498Szrj-fgnat-encodings=[all|gdb|minimal]	Select the balance between GNAT encodings and standard DWARF emitted in the debug information
148738fd1498Szrj
148838fd1498Szrj; This option is not documented yet as its semantics will change.
148938fd1498Szrjfgraphite
149038fd1498SzrjCommon Report Var(flag_graphite) Optimization
149138fd1498SzrjEnable in and out of Graphite representation.
149238fd1498Szrj
149338fd1498Szrjfgraphite-identity
149438fd1498SzrjCommon Report Var(flag_graphite_identity) Optimization
149538fd1498SzrjEnable Graphite Identity transformation.
149638fd1498Szrj
149738fd1498Szrjfhoist-adjacent-loads
149838fd1498SzrjCommon Report Var(flag_hoist_adjacent_loads) Optimization
149938fd1498SzrjEnable hoisting adjacent loads to encourage generating conditional move
150038fd1498Szrjinstructions.
150138fd1498Szrj
150238fd1498Szrjfkeep-gc-roots-live
150338fd1498SzrjCommon Undocumented Report Var(flag_keep_gc_roots_live) Optimization
150438fd1498Szrj; Always keep a pointer to a live memory block
150538fd1498Szrj
150638fd1498Szrjfloop-parallelize-all
150738fd1498SzrjCommon Report Var(flag_loop_parallelize_all) Optimization
150838fd1498SzrjMark all loops as parallel.
150938fd1498Szrj
151038fd1498Szrjfloop-strip-mine
151138fd1498SzrjCommon Alias(floop-nest-optimize)
151238fd1498SzrjEnable loop nest transforms.  Same as -floop-nest-optimize.
151338fd1498Szrj
151438fd1498Szrjfloop-interchange
151538fd1498SzrjCommon Report Var(flag_loop_interchange) Optimization
151638fd1498SzrjEnable loop interchange on trees.
151738fd1498Szrj
151838fd1498Szrjfloop-block
151938fd1498SzrjCommon Alias(floop-nest-optimize)
152038fd1498SzrjEnable loop nest transforms.  Same as -floop-nest-optimize.
152138fd1498Szrj
152238fd1498Szrjfloop-unroll-and-jam
152338fd1498SzrjCommon Report Var(flag_unroll_jam) Optimization
152438fd1498SzrjPerform unroll-and-jam on loops.
152538fd1498Szrj
152638fd1498Szrjfgnu-tm
152738fd1498SzrjCommon Report Var(flag_tm)
152838fd1498SzrjEnable support for GNU transactional memory.
152938fd1498Szrj
153038fd1498Szrjfgnu-unique
153138fd1498SzrjCommon Report Var(flag_gnu_unique) Init(1)
153238fd1498SzrjUse STB_GNU_UNIQUE if supported by the assembler.
153338fd1498Szrj
153438fd1498Szrjfloop-flatten
153538fd1498SzrjCommon Ignore
153638fd1498SzrjDoes nothing. Preserved for backward compatibility.
153738fd1498Szrj
153838fd1498Szrjfloop-nest-optimize
153938fd1498SzrjCommon Report Var(flag_loop_nest_optimize) Optimization
154038fd1498SzrjEnable the loop nest optimizer.
154138fd1498Szrj
154238fd1498Szrjfstrict-volatile-bitfields
154338fd1498SzrjCommon Report Var(flag_strict_volatile_bitfields) Init(-1) Optimization
154438fd1498SzrjForce bitfield accesses to match their type width.
154538fd1498Szrj
154638fd1498Szrjfstore-merging
154738fd1498SzrjCommon Report Var(flag_store_merging) Optimization
154838fd1498SzrjMerge adjacent stores.
154938fd1498Szrj
155038fd1498Szrjfguess-branch-probability
155138fd1498SzrjCommon Report Var(flag_guess_branch_prob) Optimization
155238fd1498SzrjEnable guessing of branch probabilities.
155338fd1498Szrj
155438fd1498Szrj; Nonzero means ignore `#ident' directives.  0 means handle them.
155538fd1498Szrj; Generate position-independent code for executables if possible
155638fd1498Szrj; On SVR4 targets, it also controls whether or not to emit a
155738fd1498Szrj; string identifying the compiler.
155838fd1498Szrjfident
155938fd1498SzrjCommon Report Var(flag_no_ident,0)
156038fd1498SzrjProcess #ident directives.
156138fd1498Szrj
156238fd1498Szrjfif-conversion
156338fd1498SzrjCommon Report Var(flag_if_conversion) Optimization
156438fd1498SzrjPerform conversion of conditional jumps to branchless equivalents.
156538fd1498Szrj
156638fd1498Szrjfif-conversion2
156738fd1498SzrjCommon Report Var(flag_if_conversion2) Optimization
156838fd1498SzrjPerform conversion of conditional jumps to conditional execution.
156938fd1498Szrj
157038fd1498Szrjfstack-reuse=
157138fd1498SzrjCommon Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization
157238fd1498Szrj-fstack-reuse=[all|named_vars|none]	Set stack reuse level for local variables.
157338fd1498Szrj
157438fd1498SzrjEnum
157538fd1498SzrjName(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs)
157638fd1498Szrj
157738fd1498SzrjEnumValue
157838fd1498SzrjEnum(stack_reuse_level) String(all) Value(SR_ALL)
157938fd1498Szrj
158038fd1498SzrjEnumValue
158138fd1498SzrjEnum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS)
158238fd1498Szrj
158338fd1498SzrjEnumValue
158438fd1498SzrjEnum(stack_reuse_level) String(none) Value(SR_NONE)
158538fd1498Szrj
158638fd1498Szrjftree-loop-if-convert
158738fd1498SzrjCommon Report Var(flag_tree_loop_if_convert) Init(-1) Optimization
158838fd1498SzrjConvert conditional jumps in innermost loops to branchless equivalents.
158938fd1498Szrj
159038fd1498Szrjftree-loop-if-convert-stores
159138fd1498SzrjCommon Ignore
159238fd1498SzrjDoes nothing. Preserved for backward compatibility.
159338fd1498Szrj
159438fd1498Szrj; -finhibit-size-directive inhibits output of .size for ELF.
159538fd1498Szrj; This is used only for compiling crtstuff.c,
159638fd1498Szrj; and it may be extended to other effects
159738fd1498Szrj; needed for crtstuff.c on other systems.
159838fd1498Szrjfinhibit-size-directive
159938fd1498SzrjCommon Report Var(flag_inhibit_size_directive)
160038fd1498SzrjDo not generate .size directives.
160138fd1498Szrj
160238fd1498Szrjfindirect-inlining
160338fd1498SzrjCommon Report Var(flag_indirect_inlining) Optimization
160438fd1498SzrjPerform indirect inlining.
160538fd1498Szrj
160638fd1498Szrj; General flag to enable inlining.  Specifying -fno-inline will disable
160738fd1498Szrj; all inlining apart from always-inline functions.
160838fd1498Szrjfinline
160938fd1498SzrjCommon Report Var(flag_no_inline,0) Init(0) Optimization
161038fd1498SzrjEnable inlining of function declared \"inline\", disabling disables all inlining.
161138fd1498Szrj
161238fd1498Szrjfinline-small-functions
161338fd1498SzrjCommon Report Var(flag_inline_small_functions) Optimization
161438fd1498SzrjIntegrate functions into their callers when code size is known not to grow.
161538fd1498Szrj
161638fd1498Szrjfinline-functions
161738fd1498SzrjCommon Report Var(flag_inline_functions) Optimization
161838fd1498SzrjIntegrate functions not declared \"inline\" into their callers when profitable.
161938fd1498Szrj
162038fd1498Szrjfinline-functions-called-once
162138fd1498SzrjCommon Report Var(flag_inline_functions_called_once) Optimization
162238fd1498SzrjIntegrate functions only required by their single caller.
162338fd1498Szrj
162438fd1498Szrjfinline-limit-
162538fd1498SzrjCommon RejectNegative Joined Alias(finline-limit=)
162638fd1498Szrj
162738fd1498Szrjfinline-limit=
162838fd1498SzrjCommon RejectNegative Joined UInteger
162938fd1498Szrj-finline-limit=<number>	Limit the size of inlined functions to <number>.
163038fd1498Szrj
163138fd1498Szrjfinline-atomics
163238fd1498SzrjCommon Report Var(flag_inline_atomics) Init(1) Optimization
163338fd1498SzrjInline __atomic operations when a lock free instruction sequence is available.
163438fd1498Szrj
163538fd1498Szrjfcf-protection
163638fd1498SzrjCommon RejectNegative Alias(fcf-protection=,full)
163738fd1498Szrj
163838fd1498Szrjfcf-protection=
163938fd1498SzrjCommon Report Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE)
164038fd1498Szrj-fcf-protection=[full|branch|return|none]	Instrument functions with checks to verify jump/call/return control-flow transfer
164138fd1498Szrjinstructions have valid targets.
164238fd1498Szrj
164338fd1498SzrjEnum
164438fd1498SzrjName(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs)
164538fd1498Szrj
164638fd1498SzrjEnumValue
164738fd1498SzrjEnum(cf_protection_level) String(full) Value(CF_FULL)
164838fd1498Szrj
164938fd1498SzrjEnumValue
165038fd1498SzrjEnum(cf_protection_level) String(branch) Value(CF_BRANCH)
165138fd1498Szrj
165238fd1498SzrjEnumValue
165338fd1498SzrjEnum(cf_protection_level) String(return) Value(CF_RETURN)
165438fd1498Szrj
165538fd1498SzrjEnumValue
165638fd1498SzrjEnum(cf_protection_level) String(none) Value(CF_NONE)
165738fd1498Szrj
165838fd1498Szrjfinstrument-functions
165938fd1498SzrjCommon Report Var(flag_instrument_function_entry_exit)
166038fd1498SzrjInstrument function entry and exit with profiling calls.
166138fd1498Szrj
166238fd1498Szrjfinstrument-functions-exclude-function-list=
166338fd1498SzrjCommon RejectNegative Joined
166438fd1498Szrj-finstrument-functions-exclude-function-list=name,...  Do not instrument listed functions.
166538fd1498Szrj
166638fd1498Szrjfinstrument-functions-exclude-file-list=
166738fd1498SzrjCommon RejectNegative Joined
166838fd1498Szrj-finstrument-functions-exclude-file-list=filename,...  Do not instrument functions listed in files.
166938fd1498Szrj
167038fd1498Szrjfipa-cp
167138fd1498SzrjCommon Report Var(flag_ipa_cp) Optimization
167238fd1498SzrjPerform interprocedural constant propagation.
167338fd1498Szrj
167438fd1498Szrjfipa-cp-clone
167538fd1498SzrjCommon Report Var(flag_ipa_cp_clone) Optimization
167638fd1498SzrjPerform cloning to make Interprocedural constant propagation stronger.
167738fd1498Szrj
167838fd1498Szrjfipa-cp-alignment
167938fd1498SzrjCommon Ignore
168038fd1498SzrjDoes nothing.  Preserved for backward compatibility.
168138fd1498Szrj
168238fd1498Szrjfipa-bit-cp
168338fd1498SzrjCommon Report Var(flag_ipa_bit_cp) Optimization
168438fd1498SzrjPerform interprocedural bitwise constant propagation.
168538fd1498Szrj
168638fd1498Szrjfipa-profile
168738fd1498SzrjCommon Report Var(flag_ipa_profile) Init(0) Optimization
168838fd1498SzrjPerform interprocedural profile propagation.
168938fd1498Szrj
169038fd1498Szrjfipa-pta
169138fd1498SzrjCommon Report Var(flag_ipa_pta) Init(0) Optimization
169238fd1498SzrjPerform interprocedural points-to analysis.
169338fd1498Szrj
169438fd1498Szrjfipa-pure-const
169538fd1498SzrjCommon Report Var(flag_ipa_pure_const) Init(0) Optimization
169638fd1498SzrjDiscover pure and const functions.
169738fd1498Szrj
169838fd1498Szrjfipa-icf
169938fd1498SzrjCommon Report Var(flag_ipa_icf) Optimization
170038fd1498SzrjPerform Identical Code Folding for functions and read-only variables.
170138fd1498Szrj
170238fd1498Szrjfipa-icf-functions
170338fd1498SzrjCommon Report Var(flag_ipa_icf_functions) Optimization
170438fd1498SzrjPerform Identical Code Folding for functions.
170538fd1498Szrj
170638fd1498Szrjfipa-icf-variables
170738fd1498SzrjCommon Report Var(flag_ipa_icf_variables) Optimization
170838fd1498SzrjPerform Identical Code Folding for variables.
170938fd1498Szrj
171038fd1498Szrjfipa-reference
171138fd1498SzrjCommon Report Var(flag_ipa_reference) Init(0) Optimization
171238fd1498SzrjDiscover readonly and non addressable static variables.
171338fd1498Szrj
171438fd1498Szrjfipa-matrix-reorg
171538fd1498SzrjCommon Ignore
171638fd1498SzrjDoes nothing. Preserved for backward compatibility.
171738fd1498Szrj
171838fd1498Szrjfipa-struct-reorg
171938fd1498SzrjCommon Ignore
172038fd1498SzrjDoes nothing. Preserved for backward compatibility.
172138fd1498Szrj
172238fd1498Szrjfipa-vrp
172338fd1498SzrjCommon Report Var(flag_ipa_vrp) Optimization
172438fd1498SzrjPerform IPA Value Range Propagation.
172538fd1498Szrj
172638fd1498Szrjfira-algorithm=
172738fd1498SzrjCommon Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization
172838fd1498Szrj-fira-algorithm=[CB|priority]	Set the used IRA algorithm.
172938fd1498Szrj
173038fd1498SzrjEnum
173138fd1498SzrjName(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs)
173238fd1498Szrj
173338fd1498SzrjEnumValue
173438fd1498SzrjEnum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB)
173538fd1498Szrj
173638fd1498SzrjEnumValue
173738fd1498SzrjEnum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY)
173838fd1498Szrj
173938fd1498Szrjfira-region=
174038fd1498SzrjCommon Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT) Optimization
174138fd1498Szrj-fira-region=[one|all|mixed]	Set regions for IRA.
174238fd1498Szrj
174338fd1498SzrjEnum
174438fd1498SzrjName(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs)
174538fd1498Szrj
174638fd1498SzrjEnumValue
174738fd1498SzrjEnum(ira_region) String(one) Value(IRA_REGION_ONE)
174838fd1498Szrj
174938fd1498SzrjEnumValue
175038fd1498SzrjEnum(ira_region) String(all) Value(IRA_REGION_ALL)
175138fd1498Szrj
175238fd1498SzrjEnumValue
175338fd1498SzrjEnum(ira_region) String(mixed) Value(IRA_REGION_MIXED)
175438fd1498Szrj
175538fd1498Szrjfira-hoist-pressure
175638fd1498SzrjCommon Report Var(flag_ira_hoist_pressure) Init(1) Optimization
175738fd1498SzrjUse IRA based register pressure calculation
175838fd1498Szrjin RTL hoist optimizations.
175938fd1498Szrj
176038fd1498Szrjfira-loop-pressure
176138fd1498SzrjCommon Report Var(flag_ira_loop_pressure) Optimization
176238fd1498SzrjUse IRA based register pressure calculation
176338fd1498Szrjin RTL loop optimizations.
176438fd1498Szrj
176538fd1498Szrjfira-share-save-slots
176638fd1498SzrjCommon Report Var(flag_ira_share_save_slots) Init(1) Optimization
176738fd1498SzrjShare slots for saving different hard registers.
176838fd1498Szrj
176938fd1498Szrjfira-share-spill-slots
177038fd1498SzrjCommon Report Var(flag_ira_share_spill_slots) Init(1) Optimization
177138fd1498SzrjShare stack slots for spilled pseudo-registers.
177238fd1498Szrj
177338fd1498Szrjfira-verbose=
177438fd1498SzrjCommon RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5)
177538fd1498Szrj-fira-verbose=<number>	Control IRA's level of diagnostic messages.
177638fd1498Szrj
177738fd1498Szrjfivopts
177838fd1498SzrjCommon Report Var(flag_ivopts) Init(1) Optimization
177938fd1498SzrjOptimize induction variables on trees.
178038fd1498Szrj
178138fd1498Szrjfjump-tables
178238fd1498SzrjCommon Var(flag_jump_tables) Init(1) Optimization
178338fd1498SzrjUse jump tables for sufficiently large switch statements.
178438fd1498Szrj
178538fd1498Szrjfkeep-inline-functions
178638fd1498SzrjCommon Report Var(flag_keep_inline_functions)
178738fd1498SzrjGenerate code for functions even if they are fully inlined.
178838fd1498Szrj
178938fd1498Szrjfkeep-static-functions
179038fd1498SzrjCommon Report Var(flag_keep_static_functions)
179138fd1498SzrjGenerate code for static functions even if they are never called.
179238fd1498Szrj
179338fd1498Szrjfkeep-static-consts
179438fd1498SzrjCommon Report Var(flag_keep_static_consts) Init(1)
179538fd1498SzrjEmit static const variables even if they are not used.
179638fd1498Szrj
179738fd1498Szrjfleading-underscore
179838fd1498SzrjCommon Report Var(flag_leading_underscore) Init(-1)
179938fd1498SzrjGive external symbols a leading underscore.
180038fd1498Szrj
180138fd1498Szrjfloop-optimize
180238fd1498SzrjCommon Ignore
180338fd1498SzrjDoes nothing.  Preserved for backward compatibility.
180438fd1498Szrj
180538fd1498Szrjflra-remat
180638fd1498SzrjCommon Report Var(flag_lra_remat) Optimization
180738fd1498SzrjDo CFG-sensitive rematerialization in LRA.
180838fd1498Szrj
180938fd1498Szrjflto
181038fd1498SzrjCommon
181138fd1498SzrjEnable link-time optimization.
181238fd1498Szrj
181338fd1498Szrjflto=
181438fd1498SzrjCommon RejectNegative Joined Var(flag_lto)
181538fd1498SzrjLink-time optimization with number of parallel jobs or jobserver.
181638fd1498Szrj
181738fd1498SzrjEnum
181838fd1498SzrjName(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs)
181938fd1498Szrj
182038fd1498SzrjEnumValue
182138fd1498SzrjEnum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE)
182238fd1498Szrj
182338fd1498SzrjEnumValue
182438fd1498SzrjEnum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE)
182538fd1498Szrj
182638fd1498SzrjEnumValue
182738fd1498SzrjEnum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED)
182838fd1498Szrj
182938fd1498SzrjEnumValue
183038fd1498SzrjEnum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1)
183138fd1498Szrj
183238fd1498SzrjEnumValue
183338fd1498SzrjEnum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX)
183438fd1498Szrj
183538fd1498Szrjflto-partition=
183638fd1498SzrjCommon Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED)
183738fd1498SzrjSpecify the algorithm to partition symbols and vars at linktime.
183838fd1498Szrj
183938fd1498Szrj; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h.
184038fd1498Szrjflto-compression-level=
184138fd1498SzrjCommon Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 9)
184238fd1498Szrj-flto-compression-level=<number>	Use zlib compression level <number> for IL.
184338fd1498Szrj
184438fd1498Szrjflto-odr-type-merging
184538fd1498SzrjCommon Report Var(flag_lto_odr_type_mering) Init(1)
184638fd1498SzrjMerge C++ types using One Definition Rule.
184738fd1498Szrj
184838fd1498Szrjflto-report
184938fd1498SzrjCommon Report Var(flag_lto_report) Init(0)
185038fd1498SzrjReport various link-time optimization statistics.
185138fd1498Szrj
185238fd1498Szrjflto-report-wpa
185338fd1498SzrjCommon Report Var(flag_lto_report_wpa) Init(0)
185438fd1498SzrjReport various link-time optimization statistics for WPA only.
185538fd1498Szrj
185638fd1498Szrjfmath-errno
185738fd1498SzrjCommon Report Var(flag_errno_math) Init(1) Optimization SetByCombined
185838fd1498SzrjSet errno after built-in math functions.
185938fd1498Szrj
186038fd1498Szrjfmax-errors=
186138fd1498SzrjCommon Joined RejectNegative UInteger Var(flag_max_errors)
186238fd1498Szrj-fmax-errors=<number>	Maximum number of errors to report.
186338fd1498Szrj
186438fd1498Szrjfmem-report
186538fd1498SzrjCommon Report Var(mem_report)
186638fd1498SzrjReport on permanent memory allocation.
186738fd1498Szrj
186838fd1498Szrjfmem-report-wpa
186938fd1498SzrjCommon Report Var(mem_report_wpa)
187038fd1498SzrjReport on permanent memory allocation in WPA only.
187138fd1498Szrj
187238fd1498Szrj; This will attempt to merge constant section constants, if 1 only
187338fd1498Szrj; string constants and constants from constant pool, if 2 also constant
187438fd1498Szrj; variables.
187538fd1498Szrjfmerge-all-constants
187638fd1498SzrjCommon Report Var(flag_merge_constants,2) Init(1)
187738fd1498SzrjAttempt to merge identical constants and constant variables.
187838fd1498Szrj
187938fd1498Szrjfmerge-constants
188038fd1498SzrjCommon Report Var(flag_merge_constants,1)
188138fd1498SzrjAttempt to merge identical constants across compilation units.
188238fd1498Szrj
188338fd1498Szrjfmerge-debug-strings
188438fd1498SzrjCommon Report Var(flag_merge_debug_strings) Init(1)
188538fd1498SzrjAttempt to merge identical debug strings across compilation units.
188638fd1498Szrj
188738fd1498Szrjfmessage-length=
188838fd1498SzrjCommon RejectNegative Joined UInteger
188938fd1498Szrj-fmessage-length=<number>	Limit diagnostics to <number> characters per line.  0 suppresses line-wrapping.
189038fd1498Szrj
189138fd1498Szrjfmodulo-sched
189238fd1498SzrjCommon Report Var(flag_modulo_sched) Optimization
189338fd1498SzrjPerform SMS based modulo scheduling before the first scheduling pass.
189438fd1498Szrj
189538fd1498Szrjfmodulo-sched-allow-regmoves
189638fd1498SzrjCommon Report Var(flag_modulo_sched_allow_regmoves) Optimization
189738fd1498SzrjPerform SMS based modulo scheduling with register moves allowed.
189838fd1498Szrj
189938fd1498Szrjfmove-loop-invariants
190038fd1498SzrjCommon Report Var(flag_move_loop_invariants) Optimization
190138fd1498SzrjMove loop invariant computations out of loops.
190238fd1498Szrj
190338fd1498Szrjfdce
190438fd1498SzrjCommon Var(flag_dce) Init(1) Optimization
190538fd1498SzrjUse the RTL dead code elimination pass.
190638fd1498Szrj
190738fd1498Szrjfdse
190838fd1498SzrjCommon Var(flag_dse) Init(1) Optimization
190938fd1498SzrjUse the RTL dead store elimination pass.
191038fd1498Szrj
191138fd1498Szrjfreschedule-modulo-scheduled-loops
191238fd1498SzrjCommon Report Var(flag_resched_modulo_sched) Optimization
191338fd1498SzrjEnable/Disable the traditional scheduling in loops that already passed modulo scheduling.
191438fd1498Szrj
191538fd1498Szrjfnon-call-exceptions
191638fd1498SzrjCommon Report Var(flag_non_call_exceptions) Optimization
191738fd1498SzrjSupport synchronous non-call exceptions.
191838fd1498Szrj
191938fd1498Szrjfoffload=
192038fd1498SzrjCommon Driver Joined MissingArgError(options or targets missing after %qs)
192138fd1498Szrj-foffload=<targets>=<options>  Specify offloading targets and options for them.
192238fd1498Szrj
192338fd1498Szrjfoffload-abi=
192438fd1498SzrjCommon Joined RejectNegative Enum(offload_abi) Var(flag_offload_abi) Init(OFFLOAD_ABI_UNSET)
192538fd1498Szrj-foffload-abi=[lp64|ilp32]     Set the ABI to use in an offload compiler.
192638fd1498Szrj
192738fd1498SzrjEnum
192838fd1498SzrjName(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs)
192938fd1498Szrj
193038fd1498SzrjEnumValue
193138fd1498SzrjEnum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32)
193238fd1498Szrj
193338fd1498SzrjEnumValue
193438fd1498SzrjEnum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64)
193538fd1498Szrj
193638fd1498Szrjfomit-frame-pointer
193738fd1498SzrjCommon Report Var(flag_omit_frame_pointer) Optimization
193838fd1498SzrjWhen possible do not generate stack frames.
193938fd1498Szrj
194038fd1498Szrjfopt-info
194138fd1498SzrjCommon Report Var(flag_opt_info) Optimization
194238fd1498SzrjEnable all optimization info dumps on stderr.
194338fd1498Szrj
194438fd1498Szrjfopt-info-
194538fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
194638fd1498Szrj-fopt-info[-<type>=filename]	Dump compiler optimization details.
194738fd1498Szrj
194838fd1498Szrjfoptimize-register-move
194938fd1498SzrjCommon Ignore
195038fd1498SzrjDoes nothing. Preserved for backward compatibility.
195138fd1498Szrj
195238fd1498Szrjfoptimize-sibling-calls
195338fd1498SzrjCommon Report Var(flag_optimize_sibling_calls) Optimization
195438fd1498SzrjOptimize sibling and tail recursive calls.
195538fd1498Szrj
195638fd1498Szrjfpartial-inlining
195738fd1498SzrjCommon Report Var(flag_partial_inlining) Optimization
195838fd1498SzrjPerform partial inlining.
195938fd1498Szrj
196038fd1498Szrjfpre-ipa-mem-report
196138fd1498SzrjCommon Report Var(pre_ipa_mem_report)
196238fd1498SzrjReport on memory allocation before interprocedural optimization.
196338fd1498Szrj
196438fd1498Szrjfpost-ipa-mem-report
196538fd1498SzrjCommon Report Var(post_ipa_mem_report)
196638fd1498SzrjReport on memory allocation before interprocedural optimization.
196738fd1498Szrj
196838fd1498Szrjfpack-struct
196938fd1498SzrjCommon Report Var(flag_pack_struct) Optimization
197038fd1498SzrjPack structure members together without holes.
197138fd1498Szrj
197238fd1498Szrjfpack-struct=
197338fd1498SzrjCommon RejectNegative Joined UInteger Optimization
197438fd1498Szrj-fpack-struct=<number>	Set initial maximum structure member alignment.
197538fd1498Szrj
197638fd1498Szrjfpcc-struct-return
197738fd1498SzrjCommon Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN)
197838fd1498SzrjReturn small aggregates in memory, not registers.
197938fd1498Szrj
198038fd1498Szrjfpeel-loops
198138fd1498SzrjCommon Report Var(flag_peel_loops) Optimization
198238fd1498SzrjPerform loop peeling.
198338fd1498Szrj
198438fd1498Szrjfpeephole
198538fd1498SzrjCommon Report Var(flag_no_peephole,0) Optimization
198638fd1498SzrjEnable machine specific peephole optimizations.
198738fd1498Szrj
198838fd1498Szrjfpeephole2
198938fd1498SzrjCommon Report Var(flag_peephole2) Optimization
199038fd1498SzrjEnable an RTL peephole pass before sched2.
199138fd1498Szrj
199238fd1498SzrjfPIC
199338fd1498SzrjCommon Report Var(flag_pic,2) Negative(fPIE) Init(-1)
199438fd1498SzrjGenerate position-independent code if possible (large mode).
199538fd1498Szrj
199638fd1498SzrjfPIE
199738fd1498SzrjCommon Report Var(flag_pie,2) Negative(fpic) Init(-1)
199838fd1498SzrjGenerate position-independent code for executables if possible (large mode).
199938fd1498Szrj
200038fd1498Szrjfpic
200138fd1498SzrjCommon Report Var(flag_pic,1) Negative(fpie) Init(-1)
200238fd1498SzrjGenerate position-independent code if possible (small mode).
200338fd1498Szrj
200438fd1498Szrjfpie
200538fd1498SzrjCommon Report Var(flag_pie,1) Negative(fPIC) Init(-1)
200638fd1498SzrjGenerate position-independent code for executables if possible (small mode).
200738fd1498Szrj
200838fd1498Szrjfplt
200938fd1498SzrjCommon Report Var(flag_plt) Init(1) Optimization
201038fd1498SzrjUse PLT for PIC calls (-fno-plt: load the address from GOT at call site).
201138fd1498Szrj
201238fd1498Szrjfplugin=
201338fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
201438fd1498SzrjSpecify a plugin to load.
201538fd1498Szrj
201638fd1498Szrjfplugin-arg-
201738fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
201838fd1498Szrj-fplugin-arg-<name>-<key>[=<value>]	Specify argument <key>=<value> for plugin <name>.
201938fd1498Szrj
202038fd1498Szrjfpredictive-commoning
202138fd1498SzrjCommon Report Var(flag_predictive_commoning) Optimization
202238fd1498SzrjRun predictive commoning optimization.
202338fd1498Szrj
202438fd1498Szrjfprefetch-loop-arrays
202538fd1498SzrjCommon Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization
202638fd1498SzrjGenerate prefetch instructions, if available, for arrays in loops.
202738fd1498Szrj
202838fd1498Szrjfprofile
202938fd1498SzrjCommon Report Var(profile_flag)
203038fd1498SzrjEnable basic program profiling code.
203138fd1498Szrj
203238fd1498Szrjfprofile-abs-path
203338fd1498SzrjCommon Report Var(profile_abs_path_flag)
203438fd1498SzrjGenerate absolute source path names for gcov.
203538fd1498Szrj
203638fd1498Szrjfprofile-arcs
203738fd1498SzrjCommon Report Var(profile_arc_flag)
203838fd1498SzrjInsert arc-based program profiling code.
203938fd1498Szrj
204038fd1498Szrjfprofile-dir=
204138fd1498SzrjCommon Joined RejectNegative Var(profile_data_prefix)
204238fd1498SzrjSet the top-level directory for storing the profile data.
204338fd1498SzrjThe default is 'pwd'.
204438fd1498Szrj
204538fd1498Szrjfprofile-correction
204638fd1498SzrjCommon Report Var(flag_profile_correction)
204738fd1498SzrjEnable correction of flow inconsistent profile data input.
204838fd1498Szrj
204938fd1498Szrjfprofile-update=
205038fd1498SzrjCommon Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE)
205138fd1498Szrj-fprofile-update=[single|atomic|prefer-atomic]	Set the profile update method.
205238fd1498Szrj
205338fd1498SzrjEnum
205438fd1498SzrjName(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs)
205538fd1498Szrj
205638fd1498SzrjEnumValue
205738fd1498SzrjEnum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE)
205838fd1498Szrj
205938fd1498SzrjEnumValue
206038fd1498SzrjEnum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC)
206138fd1498Szrj
206238fd1498SzrjEnumValue
206338fd1498SzrjEnum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC)
206438fd1498Szrj
206538fd1498Szrjfprofile-generate
206638fd1498SzrjCommon
206738fd1498SzrjEnable common options for generating profile info for profile feedback directed optimizations.
206838fd1498Szrj
206938fd1498Szrjfprofile-generate=
207038fd1498SzrjCommon Joined RejectNegative
207138fd1498SzrjEnable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=.
207238fd1498Szrj
207338fd1498Szrjfprofile-use
207438fd1498SzrjCommon Var(flag_profile_use)
207538fd1498SzrjEnable common options for performing profile feedback directed optimizations.
207638fd1498Szrj
207738fd1498Szrjfprofile-use=
207838fd1498SzrjCommon Joined RejectNegative
207938fd1498SzrjEnable common options for performing profile feedback directed optimizations, and set -fprofile-dir=.
208038fd1498Szrj
208138fd1498Szrjfprofile-values
208238fd1498SzrjCommon Report Var(flag_profile_values)
208338fd1498SzrjInsert code to profile values of expressions.
208438fd1498Szrj
208538fd1498Szrjfprofile-report
208638fd1498SzrjCommon Report Var(profile_report)
208738fd1498SzrjReport on consistency of profile.
208838fd1498Szrj
208938fd1498Szrjfprofile-reorder-functions
209038fd1498SzrjCommon Report Var(flag_profile_reorder_functions)
209138fd1498SzrjEnable function reordering that improves code placement.
209238fd1498Szrj
209338fd1498Szrjfpatchable-function-entry=
209438fd1498SzrjCommon Joined Optimization
209538fd1498SzrjInsert NOP instructions at each function entry.
209638fd1498Szrj
209738fd1498Szrjfrandom-seed
209838fd1498SzrjCommon Var(common_deferred_options) Defer
209938fd1498Szrj
210038fd1498Szrjfrandom-seed=
210138fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer
210238fd1498Szrj-frandom-seed=<string>	Make compile reproducible using <string>.
210338fd1498Szrj
210438fd1498Szrj; This switch causes the command line that was used to create an
210538fd1498Szrj; object file to be recorded into the object file.  The exact format
210638fd1498Szrj; of this recording is target and binary file format dependent.
210738fd1498Szrj; It is related to the -fverbose-asm switch, but that switch only
210838fd1498Szrj; records information in the assembler output file as comments, so
210938fd1498Szrj; they never reach the object file.
211038fd1498Szrjfrecord-gcc-switches
211138fd1498SzrjCommon Report Var(flag_record_gcc_switches)
211238fd1498SzrjRecord gcc command line switches in the object file.
211338fd1498Szrj
211438fd1498Szrjfreg-struct-return
211538fd1498SzrjCommon Report Var(flag_pcc_struct_return,0) Optimization
211638fd1498SzrjReturn small aggregates in registers.
211738fd1498Szrj
211838fd1498Szrjfregmove
211938fd1498SzrjCommon Ignore
212038fd1498SzrjDoes nothing. Preserved for backward compatibility.
212138fd1498Szrj
212238fd1498Szrjflifetime-dse
212338fd1498SzrjCommon Report Var(flag_lifetime_dse,2) Init(2) Optimization
212438fd1498SzrjTell DSE that the storage for a C++ object is dead when the constructor
212538fd1498Szrjstarts and when the destructor finishes.
212638fd1498Szrj
212738fd1498Szrjflifetime-dse=
212838fd1498SzrjCommon Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2)
212938fd1498Szrj
213038fd1498Szrjflive-range-shrinkage
213138fd1498SzrjCommon Report Var(flag_live_range_shrinkage) Init(0) Optimization
213238fd1498SzrjRelief of register pressure through live range shrinkage.
213338fd1498Szrj
213438fd1498Szrjfrename-registers
213538fd1498SzrjCommon Report Var(flag_rename_registers) Init(2) Optimization
213638fd1498SzrjPerform a register renaming optimization pass.
213738fd1498Szrj
213838fd1498Szrjfschedule-fusion
213938fd1498SzrjCommon Report Var(flag_schedule_fusion) Init(2) Optimization
214038fd1498SzrjPerform a target dependent instruction fusion optimization pass.
214138fd1498Szrj
214238fd1498Szrjfreorder-blocks
214338fd1498SzrjCommon Report Var(flag_reorder_blocks) Optimization
214438fd1498SzrjReorder basic blocks to improve code placement.
214538fd1498Szrj
214638fd1498Szrjfreorder-blocks-algorithm=
214738fd1498SzrjCommon Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization
214838fd1498Szrj-freorder-blocks-algorithm=[simple|stc]	Set the used basic block reordering algorithm.
214938fd1498Szrj
215038fd1498SzrjEnum
215138fd1498SzrjName(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs)
215238fd1498Szrj
215338fd1498SzrjEnumValue
215438fd1498SzrjEnum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE)
215538fd1498Szrj
215638fd1498SzrjEnumValue
215738fd1498SzrjEnum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC)
215838fd1498Szrj
215938fd1498Szrjfreorder-blocks-and-partition
216038fd1498SzrjCommon Report Var(flag_reorder_blocks_and_partition) Optimization
216138fd1498SzrjReorder basic blocks and partition into hot and cold sections.
216238fd1498Szrj
216338fd1498Szrjfreorder-functions
216438fd1498SzrjCommon Report Var(flag_reorder_functions) Optimization
216538fd1498SzrjReorder functions to improve code placement.
216638fd1498Szrj
216738fd1498Szrjfrerun-cse-after-loop
216838fd1498SzrjCommon Report Var(flag_rerun_cse_after_loop) Optimization
216938fd1498SzrjAdd a common subexpression elimination pass after loop optimizations.
217038fd1498Szrj
217138fd1498Szrjfrerun-loop-opt
217238fd1498SzrjCommon Ignore
217338fd1498SzrjDoes nothing.  Preserved for backward compatibility.
217438fd1498Szrj
217538fd1498Szrjfrounding-math
217638fd1498SzrjCommon Report Var(flag_rounding_math) Optimization SetByCombined
217738fd1498SzrjDisable optimizations that assume default FP rounding behavior.
217838fd1498Szrj
217938fd1498Szrjfsched-interblock
218038fd1498SzrjCommon Report Var(flag_schedule_interblock) Init(1) Optimization
218138fd1498SzrjEnable scheduling across basic blocks.
218238fd1498Szrj
218338fd1498Szrjfsched-pressure
218438fd1498SzrjCommon Report Var(flag_sched_pressure) Init(0) Optimization
218538fd1498SzrjEnable register pressure sensitive insn scheduling.
218638fd1498Szrj
218738fd1498Szrjfsched-spec
218838fd1498SzrjCommon Report Var(flag_schedule_speculative) Init(1) Optimization
218938fd1498SzrjAllow speculative motion of non-loads.
219038fd1498Szrj
219138fd1498Szrjfsched-spec-load
219238fd1498SzrjCommon Report Var(flag_schedule_speculative_load) Optimization
219338fd1498SzrjAllow speculative motion of some loads.
219438fd1498Szrj
219538fd1498Szrjfsched-spec-load-dangerous
219638fd1498SzrjCommon Report Var(flag_schedule_speculative_load_dangerous) Optimization
219738fd1498SzrjAllow speculative motion of more loads.
219838fd1498Szrj
219938fd1498Szrjfsched-verbose=
220038fd1498SzrjCommon RejectNegative Joined UInteger Var(sched_verbose_param) Init(1)
220138fd1498Szrj-fsched-verbose=<number>	Set the verbosity level of the scheduler.
220238fd1498Szrj
220338fd1498Szrjfsched2-use-superblocks
220438fd1498SzrjCommon Report Var(flag_sched2_use_superblocks) Optimization
220538fd1498SzrjIf scheduling post reload, do superblock scheduling.
220638fd1498Szrj
220738fd1498Szrjfsched2-use-traces
220838fd1498SzrjCommon Ignore
220938fd1498SzrjDoes nothing.  Preserved for backward compatibility.
221038fd1498Szrj
221138fd1498Szrjfschedule-insns
221238fd1498SzrjCommon Report Var(flag_schedule_insns) Optimization
221338fd1498SzrjReschedule instructions before register allocation.
221438fd1498Szrj
221538fd1498Szrjfschedule-insns2
221638fd1498SzrjCommon Report Var(flag_schedule_insns_after_reload) Optimization
221738fd1498SzrjReschedule instructions after register allocation.
221838fd1498Szrj
221938fd1498Szrj; This flag should be on when a target implements non-trivial
222038fd1498Szrj; scheduling hooks, maybe saving some information for its own sake.
222138fd1498Szrj; On IA64, for example, this is used for correct bundling.
222238fd1498Szrjfselective-scheduling
222338fd1498SzrjCommon Report Var(flag_selective_scheduling) Optimization
222438fd1498SzrjSchedule instructions using selective scheduling algorithm.
222538fd1498Szrj
222638fd1498Szrjfselective-scheduling2
222738fd1498SzrjCommon Report Var(flag_selective_scheduling2) Optimization
222838fd1498SzrjRun selective scheduling after reload.
222938fd1498Szrj
223038fd1498Szrjfself-test=
223138fd1498SzrjCommon Undocumented Joined Var(flag_self_test)
223238fd1498SzrjRun self-tests, using the given path to locate test files.
223338fd1498Szrj
223438fd1498Szrjfsel-sched-pipelining
223538fd1498SzrjCommon Report Var(flag_sel_sched_pipelining) Init(0) Optimization
223638fd1498SzrjPerform software pipelining of inner loops during selective scheduling.
223738fd1498Szrj
223838fd1498Szrjfsel-sched-pipelining-outer-loops
223938fd1498SzrjCommon Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization
224038fd1498SzrjPerform software pipelining of outer loops during selective scheduling.
224138fd1498Szrj
224238fd1498Szrjfsel-sched-reschedule-pipelined
224338fd1498SzrjCommon Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization
224438fd1498SzrjReschedule pipelined regions without pipelining.
224538fd1498Szrj
224638fd1498Szrjfsemantic-interposition
224738fd1498SzrjCommon Report Var(flag_semantic_interposition) Init(1)
224838fd1498SzrjAllow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker.
224938fd1498Szrj
225038fd1498Szrj; sched_stalled_insns means that insns can be moved prematurely from the queue
225138fd1498Szrj; of stalled insns into the ready list.
225238fd1498Szrjfsched-stalled-insns
225338fd1498SzrjCommon Report Var(flag_sched_stalled_insns) Optimization UInteger
225438fd1498SzrjAllow premature scheduling of queued insns.
225538fd1498Szrj
225638fd1498Szrjfsched-stalled-insns=
225738fd1498SzrjCommon RejectNegative Joined UInteger Optimization
225838fd1498Szrj-fsched-stalled-insns=<number>	Set number of queued insns that can be prematurely scheduled.
225938fd1498Szrj
226038fd1498Szrj; sched_stalled_insns_dep controls how many recently scheduled cycles will
226138fd1498Szrj; be examined for a dependency on a stalled insn that is candidate for
226238fd1498Szrj; premature removal from the queue of stalled insns into the ready list (has
226338fd1498Szrj; an effect only if the flag 'sched_stalled_insns' is set).
226438fd1498Szrjfsched-stalled-insns-dep
226538fd1498SzrjCommon Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger
226638fd1498SzrjSet dependence distance checking in premature scheduling of queued insns.
226738fd1498Szrj
226838fd1498Szrjfsched-stalled-insns-dep=
226938fd1498SzrjCommon RejectNegative Joined UInteger Optimization
227038fd1498Szrj-fsched-stalled-insns-dep=<number>	Set dependence distance checking in premature scheduling of queued insns.
227138fd1498Szrj
227238fd1498Szrjfsched-group-heuristic
227338fd1498SzrjCommon Report Var(flag_sched_group_heuristic) Init(1) Optimization
227438fd1498SzrjEnable the group heuristic in the scheduler.
227538fd1498Szrj
227638fd1498Szrjfsched-critical-path-heuristic
227738fd1498SzrjCommon Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization
227838fd1498SzrjEnable the critical path heuristic in the scheduler.
227938fd1498Szrj
228038fd1498Szrjfsched-spec-insn-heuristic
228138fd1498SzrjCommon Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization
228238fd1498SzrjEnable the speculative instruction heuristic in the scheduler.
228338fd1498Szrj
228438fd1498Szrjfsched-rank-heuristic
228538fd1498SzrjCommon Report Var(flag_sched_rank_heuristic) Init(1) Optimization
228638fd1498SzrjEnable the rank heuristic in the scheduler.
228738fd1498Szrj
228838fd1498Szrjfsched-last-insn-heuristic
228938fd1498SzrjCommon Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization
229038fd1498SzrjEnable the last instruction heuristic in the scheduler.
229138fd1498Szrj
229238fd1498Szrjfsched-dep-count-heuristic
229338fd1498SzrjCommon Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization
229438fd1498SzrjEnable the dependent count heuristic in the scheduler.
229538fd1498Szrj
229638fd1498Szrjfsection-anchors
229738fd1498SzrjCommon Report Var(flag_section_anchors) Optimization
229838fd1498SzrjAccess data in the same section from shared anchor points.
229938fd1498Szrj
230038fd1498Szrjfsee
230138fd1498SzrjCommon Ignore
230238fd1498SzrjDoes nothing.  Preserved for backward compatibility.
230338fd1498Szrj
230438fd1498Szrjfzee
230538fd1498SzrjCommon Ignore
230638fd1498SzrjDoes nothing.  Preserved for backward compatibility.
230738fd1498Szrj
230838fd1498Szrjfree
230938fd1498SzrjCommon Report Var(flag_ree) Init(0)
231038fd1498SzrjTurn on Redundant Extensions Elimination pass.
231138fd1498Szrj
231238fd1498Szrjfshow-column
231338fd1498SzrjCommon Report Var(flag_show_column) Init(1)
231438fd1498SzrjShow column numbers in diagnostics, when available.  Default on.
231538fd1498Szrj
231638fd1498Szrjfshrink-wrap
231738fd1498SzrjCommon Report Var(flag_shrink_wrap) Optimization
231838fd1498SzrjEmit function prologues only before parts of the function that need it,
231938fd1498Szrjrather than at the top of the function.
232038fd1498Szrj
232138fd1498Szrjfshrink-wrap-separate
232238fd1498SzrjCommon Report Var(flag_shrink_wrap_separate) Init(1) Optimization
232338fd1498SzrjShrink-wrap parts of the prologue and epilogue separately.
232438fd1498Szrj
232538fd1498Szrjfsignaling-nans
232638fd1498SzrjCommon Report Var(flag_signaling_nans) Optimization SetByCombined
232738fd1498SzrjDisable optimizations observable by IEEE signaling NaNs.
232838fd1498Szrj
232938fd1498Szrjfsigned-zeros
233038fd1498SzrjCommon Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined
233138fd1498SzrjDisable floating point optimizations that ignore the IEEE signedness of zero.
233238fd1498Szrj
233338fd1498Szrjfsingle-precision-constant
233438fd1498SzrjCommon Report Var(flag_single_precision_constant) Optimization
233538fd1498SzrjConvert floating point constants to single precision constants.
233638fd1498Szrj
233738fd1498Szrjfsplit-ivs-in-unroller
233838fd1498SzrjCommon Report Var(flag_split_ivs_in_unroller) Init(1) Optimization
233938fd1498SzrjSplit lifetimes of induction variables when loops are unrolled.
234038fd1498Szrj
234138fd1498Szrjfsplit-stack
234238fd1498SzrjCommon Report Var(flag_split_stack) Init(-1)
234338fd1498SzrjGenerate discontiguous stack frames.
234438fd1498Szrj
234538fd1498Szrjfsplit-wide-types
234638fd1498SzrjCommon Report Var(flag_split_wide_types) Optimization
234738fd1498SzrjSplit wide types into independent registers.
234838fd1498Szrj
234938fd1498Szrjfssa-backprop
235038fd1498SzrjCommon Report Var(flag_ssa_backprop) Init(1) Optimization
235138fd1498SzrjEnable backward propagation of use properties at the SSA level.
235238fd1498Szrj
235338fd1498Szrjfssa-phiopt
235438fd1498SzrjCommon Report Var(flag_ssa_phiopt) Optimization
235538fd1498SzrjOptimize conditional patterns using SSA PHI nodes.
235638fd1498Szrj
235738fd1498Szrjfstdarg-opt
235838fd1498SzrjCommon Report Var(flag_stdarg_opt) Init(1) Optimization
235938fd1498SzrjOptimize amount of stdarg registers saved to stack at start of function.
236038fd1498Szrj
236138fd1498Szrjfvariable-expansion-in-unroller
236238fd1498SzrjCommon Report Var(flag_variable_expansion_in_unroller) Optimization
236338fd1498SzrjApply variable expansion when loops are unrolled.
236438fd1498Szrj
236538fd1498Szrjfstack-check=
236638fd1498SzrjCommon Report RejectNegative Joined Optimization
236738fd1498Szrj-fstack-check=[no|generic|specific]	Insert stack checking code into the program.
236838fd1498Szrj
236938fd1498Szrjfstack-check
237038fd1498SzrjCommon Alias(fstack-check=, specific, no)
237138fd1498SzrjInsert stack checking code into the program.  Same as -fstack-check=specific.
237238fd1498Szrj
237338fd1498Szrjfstack-clash-protection
237438fd1498SzrjCommon Report Var(flag_stack_clash_protection) Optimization
237538fd1498SzrjInsert code to probe each page of stack space as it is allocated to protect
237638fd1498Szrjfrom stack-clash style attacks.
237738fd1498Szrj
237838fd1498Szrjfstack-limit
237938fd1498SzrjCommon Var(common_deferred_options) Defer
238038fd1498Szrj
238138fd1498Szrjfstack-limit-register=
238238fd1498SzrjCommon RejectNegative Joined Var(common_deferred_options) Defer
238338fd1498Szrj-fstack-limit-register=<register>	Trap if the stack goes past <register>.
238438fd1498Szrj
238538fd1498Szrjfstack-limit-symbol=
238638fd1498SzrjCommon RejectNegative Joined Var(common_deferred_options) Defer
238738fd1498Szrj-fstack-limit-symbol=<name>	Trap if the stack goes past symbol <name>.
238838fd1498Szrj
238938fd1498Szrjfstack-protector
239038fd1498SzrjCommon Report Var(flag_stack_protect, 1) Init(-1) Optimization
239138fd1498SzrjUse propolice as a stack protection method.
239238fd1498Szrj
239338fd1498Szrjfstack-protector-all
239438fd1498SzrjCommon Report RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization
239538fd1498SzrjUse a stack protection method for every function.
239638fd1498Szrj
239738fd1498Szrjfstack-protector-strong
239838fd1498SzrjCommon Report RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization
239938fd1498SzrjUse a smart stack protection method for certain functions.
240038fd1498Szrj
240138fd1498Szrjfstack-protector-explicit
240238fd1498SzrjCommon Report RejectNegative Var(flag_stack_protect, 4) Optimization
240338fd1498SzrjUse stack protection method only for functions with the stack_protect attribute.
240438fd1498Szrj
240538fd1498Szrjfstack-usage
240638fd1498SzrjCommon RejectNegative Var(flag_stack_usage)
240738fd1498SzrjOutput stack usage information on a per-function basis.
240838fd1498Szrj
240938fd1498Szrjfstrength-reduce
241038fd1498SzrjCommon Ignore
241138fd1498SzrjDoes nothing.  Preserved for backward compatibility.
241238fd1498Szrj
241338fd1498Szrj; Nonzero if we should do (language-dependent) alias analysis.
241438fd1498Szrj; Typically, this analysis will assume that expressions of certain
241538fd1498Szrj; types do not alias expressions of certain other types.  Only used
241638fd1498Szrj; if alias analysis (in general) is enabled.
241738fd1498Szrjfstrict-aliasing
241838fd1498SzrjCommon Report Var(flag_strict_aliasing) Optimization
241938fd1498SzrjAssume strict aliasing rules apply.
242038fd1498Szrj
242138fd1498Szrjfstrict-overflow
242238fd1498SzrjCommon Report
242338fd1498SzrjTreat signed overflow as undefined.  Negated as -fwrapv -fwrapv-pointer.
242438fd1498Szrj
242538fd1498Szrjfsync-libcalls
242638fd1498SzrjCommon Report Var(flag_sync_libcalls) Init(1)
242738fd1498SzrjImplement __atomic operations via libcalls to legacy __sync functions.
242838fd1498Szrj
242938fd1498Szrjfsyntax-only
243038fd1498SzrjCommon Report Var(flag_syntax_only)
243138fd1498SzrjCheck for syntax errors, then stop.
243238fd1498Szrj
243338fd1498Szrjftest-coverage
243438fd1498SzrjCommon Report Var(flag_test_coverage)
243538fd1498SzrjCreate data files needed by \"gcov\".
243638fd1498Szrj
243738fd1498Szrjfthread-jumps
243838fd1498SzrjCommon Report Var(flag_thread_jumps) Optimization
243938fd1498SzrjPerform jump threading optimizations.
244038fd1498Szrj
244138fd1498Szrjftime-report
244238fd1498SzrjCommon Report Var(time_report)
244338fd1498SzrjReport the time taken by each compiler pass.
244438fd1498Szrj
244538fd1498Szrjftime-report-details
244638fd1498SzrjCommon Report Var(time_report_details)
244738fd1498SzrjRecord times taken by sub-phases separately.
244838fd1498Szrj
244938fd1498Szrjftls-model=
245038fd1498SzrjCommon Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC)
245138fd1498Szrj-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec]	Set the default thread-local storage code generation model.
245238fd1498Szrj
245338fd1498SzrjEnum
245438fd1498SzrjName(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs)
245538fd1498Szrj
245638fd1498SzrjEnumValue
245738fd1498SzrjEnum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC)
245838fd1498Szrj
245938fd1498SzrjEnumValue
246038fd1498SzrjEnum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC)
246138fd1498Szrj
246238fd1498SzrjEnumValue
246338fd1498SzrjEnum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC)
246438fd1498Szrj
246538fd1498SzrjEnumValue
246638fd1498SzrjEnum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC)
246738fd1498Szrj
246838fd1498Szrjftoplevel-reorder
246938fd1498SzrjCommon Report Var(flag_toplevel_reorder) Init(2)
247038fd1498SzrjReorder top level functions, variables, and asms.
247138fd1498Szrj
247238fd1498Szrjftracer
247338fd1498SzrjCommon Report Var(flag_tracer) Optimization
247438fd1498SzrjPerform superblock formation via tail duplication.
247538fd1498Szrj
247638fd1498Szrjftrampolines
247738fd1498SzrjCommon Report Var(flag_trampolines) Init(0)
247838fd1498SzrjFor targets that normally need trampolines for nested functions, always
247938fd1498Szrjgenerate them instead of using descriptors.
248038fd1498Szrj
248138fd1498Szrj; Zero means that floating-point math operations cannot generate a
248238fd1498Szrj; (user-visible) trap.  This is the case, for example, in nonstop
248338fd1498Szrj; IEEE 754 arithmetic.
248438fd1498Szrjftrapping-math
248538fd1498SzrjCommon Report Var(flag_trapping_math) Init(1) Optimization SetByCombined
248638fd1498SzrjAssume floating-point operations can trap.
248738fd1498Szrj
248838fd1498Szrjftrapv
248938fd1498SzrjCommon Report Var(flag_trapv) Optimization
249038fd1498SzrjTrap for signed overflow in addition, subtraction and multiplication.
249138fd1498Szrj
249238fd1498Szrjftree-ccp
249338fd1498SzrjCommon Report Var(flag_tree_ccp) Optimization
249438fd1498SzrjEnable SSA-CCP optimization on trees.
249538fd1498Szrj
249638fd1498Szrjftree-bit-ccp
249738fd1498SzrjCommon Report Var(flag_tree_bit_ccp) Optimization
249838fd1498SzrjEnable SSA-BIT-CCP optimization on trees.
249938fd1498Szrj
250038fd1498Szrjftree-store-ccp
250138fd1498SzrjCommon Ignore
250238fd1498SzrjDoes nothing.  Preserved for backward compatibility.
250338fd1498Szrj
250438fd1498Szrjftree-ch
250538fd1498SzrjCommon Report Var(flag_tree_ch) Optimization
250638fd1498SzrjEnable loop header copying on trees.
250738fd1498Szrj
250838fd1498Szrjftree-coalesce-inlined-vars
250938fd1498SzrjCommon Ignore RejectNegative
251038fd1498SzrjDoes nothing.  Preserved for backward compatibility.
251138fd1498Szrj
251238fd1498Szrjftree-coalesce-vars
251338fd1498SzrjCommon Report Var(flag_tree_coalesce_vars) Optimization
251438fd1498SzrjEnable SSA coalescing of user variables.
251538fd1498Szrj
251638fd1498Szrjftree-copyrename
251738fd1498SzrjCommon Ignore
251838fd1498SzrjDoes nothing.  Preserved for backward compatibility.
251938fd1498Szrj
252038fd1498Szrjftree-copy-prop
252138fd1498SzrjCommon Report Var(flag_tree_copy_prop) Optimization
252238fd1498SzrjEnable copy propagation on trees.
252338fd1498Szrj
252438fd1498Szrjftree-store-copy-prop
252538fd1498SzrjCommon Ignore
252638fd1498SzrjDoes nothing.  Preserved for backward compatibility.
252738fd1498Szrj
252838fd1498Szrjftree-cselim
252938fd1498SzrjCommon Report Var(flag_tree_cselim) Init(2) Optimization
253038fd1498SzrjTransform condition stores into unconditional ones.
253138fd1498Szrj
253238fd1498Szrjftree-switch-conversion
253338fd1498SzrjCommon Report Var(flag_tree_switch_conversion) Optimization
253438fd1498SzrjPerform conversions of switch initializations.
253538fd1498Szrj
253638fd1498Szrjftree-dce
253738fd1498SzrjCommon Report Var(flag_tree_dce) Optimization
253838fd1498SzrjEnable SSA dead code elimination optimization on trees.
253938fd1498Szrj
254038fd1498Szrjftree-dominator-opts
254138fd1498SzrjCommon Report Var(flag_tree_dom) Optimization
254238fd1498SzrjEnable dominator optimizations.
254338fd1498Szrj
254438fd1498Szrjftree-tail-merge
254538fd1498SzrjCommon Report Var(flag_tree_tail_merge) Optimization
254638fd1498SzrjEnable tail merging on trees.
254738fd1498Szrj
254838fd1498Szrjftree-dse
254938fd1498SzrjCommon Report Var(flag_tree_dse) Optimization
255038fd1498SzrjEnable dead store elimination.
255138fd1498Szrj
255238fd1498Szrjftree-forwprop
255338fd1498SzrjCommon Report Var(flag_tree_forwprop) Init(1) Optimization
255438fd1498SzrjEnable forward propagation on trees.
255538fd1498Szrj
255638fd1498Szrjftree-fre
255738fd1498SzrjCommon Report Var(flag_tree_fre) Optimization
255838fd1498SzrjEnable Full Redundancy Elimination (FRE) on trees.
255938fd1498Szrj
256038fd1498Szrjfoptimize-strlen
256138fd1498SzrjCommon Report Var(flag_optimize_strlen) Optimization
256238fd1498SzrjEnable string length optimizations on trees.
256338fd1498Szrj
256438fd1498Szrjfisolate-erroneous-paths-dereference
256538fd1498SzrjCommon Report Var(flag_isolate_erroneous_paths_dereference) Optimization
256638fd1498SzrjDetect paths that trigger erroneous or undefined behavior due to
256738fd1498Szrjdereferencing a null pointer.  Isolate those paths from the main control
256838fd1498Szrjflow and turn the statement with erroneous or undefined behavior into a trap.
256938fd1498Szrj
257038fd1498Szrjfisolate-erroneous-paths-attribute
257138fd1498SzrjCommon Report Var(flag_isolate_erroneous_paths_attribute) Optimization
257238fd1498SzrjDetect paths that trigger erroneous or undefined behavior due to a null value
257338fd1498Szrjbeing used in a way forbidden by a returns_nonnull or nonnull
257438fd1498Szrjattribute.  Isolate those paths from the main control flow and turn the
257538fd1498Szrjstatement with erroneous or undefined behavior into a trap.
257638fd1498Szrj
257738fd1498Szrjftree-loop-distribution
257838fd1498SzrjCommon Report Var(flag_tree_loop_distribution) Optimization
257938fd1498SzrjEnable loop distribution on trees.
258038fd1498Szrj
258138fd1498Szrjftree-loop-distribute-patterns
258238fd1498SzrjCommon Report Var(flag_tree_loop_distribute_patterns) Optimization
258338fd1498SzrjEnable loop distribution for patterns transformed into a library call.
258438fd1498Szrj
258538fd1498Szrjftree-loop-im
258638fd1498SzrjCommon Report Var(flag_tree_loop_im) Init(1) Optimization
258738fd1498SzrjEnable loop invariant motion on trees.
258838fd1498Szrj
258938fd1498Szrjftree-loop-linear
259038fd1498SzrjCommon Alias(floop-nest-optimize)
259138fd1498SzrjEnable loop nest transforms.  Same as -floop-nest-optimize.
259238fd1498Szrj
259338fd1498Szrjftree-loop-ivcanon
259438fd1498SzrjCommon Report Var(flag_tree_loop_ivcanon) Init(1) Optimization
259538fd1498SzrjCreate canonical induction variables in loops.
259638fd1498Szrj
259738fd1498Szrjftree-loop-optimize
259838fd1498SzrjCommon Report Var(flag_tree_loop_optimize) Init(1) Optimization
259938fd1498SzrjEnable loop optimizations on tree level.
260038fd1498Szrj
260138fd1498Szrjftree-parallelize-loops=
260238fd1498SzrjCommon Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization
260338fd1498Szrj-ftree-parallelize-loops=<number>	Enable automatic parallelization of loops.
260438fd1498Szrj
260538fd1498Szrjftree-phiprop
260638fd1498SzrjCommon Report Var(flag_tree_phiprop) Init(1) Optimization
260738fd1498SzrjEnable hoisting loads from conditional pointers.
260838fd1498Szrj
260938fd1498Szrjftree-pre
261038fd1498SzrjCommon Report Var(flag_tree_pre) Optimization
261138fd1498SzrjEnable SSA-PRE optimization on trees.
261238fd1498Szrj
261338fd1498Szrjftree-partial-pre
261438fd1498SzrjCommon Report Var(flag_tree_partial_pre) Optimization
261538fd1498SzrjIn SSA-PRE optimization on trees, enable partial-partial redundancy elimination.
261638fd1498Szrj
261738fd1498Szrjftree-pta
261838fd1498SzrjCommon Report Var(flag_tree_pta) Optimization
261938fd1498SzrjPerform function-local points-to analysis on trees.
262038fd1498Szrj
262138fd1498Szrjftree-reassoc
262238fd1498SzrjCommon Report Var(flag_tree_reassoc) Init(1) Optimization
262338fd1498SzrjEnable reassociation on tree level.
262438fd1498Szrj
262538fd1498Szrjftree-salias
262638fd1498SzrjCommon Ignore
262738fd1498SzrjDoes nothing.  Preserved for backward compatibility.
262838fd1498Szrj
262938fd1498Szrjftree-sink
263038fd1498SzrjCommon Report Var(flag_tree_sink) Optimization
263138fd1498SzrjEnable SSA code sinking on trees.
263238fd1498Szrj
263338fd1498Szrjftree-slsr
263438fd1498SzrjCommon Report Var(flag_tree_slsr) Optimization
263538fd1498SzrjPerform straight-line strength reduction.
263638fd1498Szrj
263738fd1498Szrjftree-sra
263838fd1498SzrjCommon Report Var(flag_tree_sra) Optimization
263938fd1498SzrjPerform scalar replacement of aggregates.
264038fd1498Szrj
264138fd1498Szrjftree-ter
264238fd1498SzrjCommon Report Var(flag_tree_ter) Optimization
264338fd1498SzrjReplace temporary expressions in the SSA->normal pass.
264438fd1498Szrj
264538fd1498Szrjftree-lrs
264638fd1498SzrjCommon Report Var(flag_tree_live_range_split) Optimization
264738fd1498SzrjPerform live range splitting during the SSA->normal pass.
264838fd1498Szrj
264938fd1498Szrjftree-vrp
265038fd1498SzrjCommon Report Var(flag_tree_vrp) Init(0) Optimization
265138fd1498SzrjPerform Value Range Propagation on trees.
265238fd1498Szrj
265338fd1498Szrjfsplit-paths
265438fd1498SzrjCommon Report Var(flag_split_paths) Init(0) Optimization
265538fd1498SzrjSplit paths leading to loop backedges.
265638fd1498Szrj
265738fd1498Szrjfunconstrained-commons
265838fd1498SzrjCommon Var(flag_unconstrained_commons) Optimization
265938fd1498SzrjAssume common declarations may be overridden with ones with a larger
266038fd1498Szrjtrailing array.
266138fd1498Szrj
266238fd1498Szrjfunit-at-a-time
266338fd1498SzrjCommon Report Var(flag_unit_at_a_time) Init(1)
266438fd1498SzrjCompile whole compilation unit at a time.
266538fd1498Szrj
266638fd1498Szrjfunroll-loops
266738fd1498SzrjCommon Report Var(flag_unroll_loops) Optimization
266838fd1498SzrjPerform loop unrolling when iteration count is known.
266938fd1498Szrj
267038fd1498Szrjfunroll-all-loops
267138fd1498SzrjCommon Report Var(flag_unroll_all_loops) Optimization
267238fd1498SzrjPerform loop unrolling for all loops.
267338fd1498Szrj
267438fd1498Szrj; Nonzero means that loop optimizer may assume that the induction variables
267538fd1498Szrj; that control loops do not overflow and that the loops with nontrivial
267638fd1498Szrj; exit condition are not infinite
267738fd1498Szrjfunsafe-loop-optimizations
267838fd1498SzrjCommon Ignore
267938fd1498SzrjDoes nothing.  Preserved for backward compatibility.
268038fd1498Szrj
268138fd1498Szrjfassociative-math
268238fd1498SzrjCommon Report Var(flag_associative_math) SetByCombined Optimization
268338fd1498SzrjAllow optimization for floating-point arithmetic which may change the
268438fd1498Szrjresult of the operation due to rounding.
268538fd1498Szrj
268638fd1498Szrjfreciprocal-math
268738fd1498SzrjCommon Report Var(flag_reciprocal_math) SetByCombined Optimization
268838fd1498SzrjSame as -fassociative-math for expressions which include division.
268938fd1498Szrj
269038fd1498Szrj; Nonzero means that unsafe floating-point math optimizations are allowed
269138fd1498Szrj; for the sake of speed.  IEEE compliance is not guaranteed, and operations
269238fd1498Szrj; are allowed to assume that their arguments and results are "normal"
269338fd1498Szrj; (e.g., nonnegative for SQRT).
269438fd1498Szrjfunsafe-math-optimizations
269538fd1498SzrjCommon Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined
269638fd1498SzrjAllow math optimizations that may violate IEEE or ISO standards.
269738fd1498Szrj
269838fd1498Szrjfunswitch-loops
269938fd1498SzrjCommon Report Var(flag_unswitch_loops) Optimization
270038fd1498SzrjPerform loop unswitching.
270138fd1498Szrj
270238fd1498Szrjfsplit-loops
270338fd1498SzrjCommon Report Var(flag_split_loops) Optimization
270438fd1498SzrjPerform loop splitting.
270538fd1498Szrj
270638fd1498Szrjfunwind-tables
270738fd1498SzrjCommon Report Var(flag_unwind_tables) Optimization
270838fd1498SzrjJust generate unwind tables for exception handling.
270938fd1498Szrj
271038fd1498Szrjfuse-ld=bfd
271138fd1498SzrjCommon Driver Negative(fuse-ld=gold)
271238fd1498SzrjUse the bfd linker instead of the default linker.
271338fd1498Szrj
271438fd1498Szrjfuse-ld=gold
271538fd1498SzrjCommon Driver Negative(fuse-ld=bfd)
271638fd1498SzrjUse the gold linker instead of the default linker.
271738fd1498Szrj
271838fd1498Szrjfuse-linker-plugin
271938fd1498SzrjCommon Undocumented Var(flag_use_linker_plugin)
272038fd1498Szrj
272138fd1498Szrj; Positive if we should track variables, negative if we should run
272238fd1498Szrj; the var-tracking pass only to discard debug annotations, zero if
272338fd1498Szrj; we're not to run it.  When flag_var_tracking == 2 (AUTODETECT_VALUE) it
272438fd1498Szrj; will be set according to optimize, debug_info_level and debug_hooks
272538fd1498Szrj; in process_options ().
272638fd1498Szrjfvar-tracking
272738fd1498SzrjCommon Report Var(flag_var_tracking) Init(2) PerFunction
272838fd1498SzrjPerform variable tracking.
272938fd1498Szrj
273038fd1498Szrj; Positive if we should track variables at assignments, negative if
273138fd1498Szrj; we should run the var-tracking pass only to discard debug
273238fd1498Szrj; annotations.  When flag_var_tracking_assignments ==
273338fd1498Szrj; AUTODETECT_VALUE it will be set according to flag_var_tracking.
273438fd1498Szrjfvar-tracking-assignments
273538fd1498SzrjCommon Report Var(flag_var_tracking_assignments) Init(2) PerFunction
273638fd1498SzrjPerform variable tracking by annotating assignments.
273738fd1498Szrj
273838fd1498Szrj; Nonzero if we should toggle flag_var_tracking_assignments after
273938fd1498Szrj; processing options and computing its default.  */
274038fd1498Szrjfvar-tracking-assignments-toggle
274138fd1498SzrjCommon Report Var(flag_var_tracking_assignments_toggle) PerFunction
274238fd1498SzrjToggle -fvar-tracking-assignments.
274338fd1498Szrj
274438fd1498Szrj; Positive if we should track uninitialized variables, negative if
274538fd1498Szrj; we should run the var-tracking pass only to discard debug
274638fd1498Szrj; annotations.  When flag_var_tracking_uninit == AUTODETECT_VALUE it
274738fd1498Szrj; will be set according to flag_var_tracking.
274838fd1498Szrjfvar-tracking-uninit
274938fd1498SzrjCommon Report Var(flag_var_tracking_uninit) PerFunction
275038fd1498SzrjPerform variable tracking and also tag variables that are uninitialized.
275138fd1498Szrj
275238fd1498Szrj; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize.
275338fd1498Szrjftree-vectorize
275438fd1498SzrjCommon Report Optimization
275538fd1498SzrjEnable vectorization on trees.
275638fd1498Szrj
275738fd1498Szrjftree-vectorizer-verbose=
275838fd1498SzrjCommon Joined RejectNegative Ignore
275938fd1498SzrjDoes nothing.  Preserved for backward compatibility.
276038fd1498Szrj
276138fd1498Szrjftree-loop-vectorize
276238fd1498SzrjCommon Report Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize)
276338fd1498SzrjEnable loop vectorization on trees.
276438fd1498Szrj
276538fd1498Szrjftree-slp-vectorize
276638fd1498SzrjCommon Report Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize)
276738fd1498SzrjEnable basic block vectorization (SLP) on trees.
276838fd1498Szrj
276938fd1498Szrjfvect-cost-model=
277038fd1498SzrjCommon Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization
277138fd1498SzrjSpecifies the cost model for vectorization.
277238fd1498Szrj-fvect-cost-model=[unlimited|dynamic|cheap]	Specifies the cost model for vectorization.
277338fd1498Szrj
277438fd1498Szrjfsimd-cost-model=
277538fd1498SzrjCommon Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization
277638fd1498Szrj-fsimd-cost-model=[unlimited|dynamic|cheap]	Specifies the vectorization cost model for code marked with a simd directive.
277738fd1498Szrj
277838fd1498SzrjEnum
277938fd1498SzrjName(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs)
278038fd1498Szrj
278138fd1498SzrjEnumValue
278238fd1498SzrjEnum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED)
278338fd1498Szrj
278438fd1498SzrjEnumValue
278538fd1498SzrjEnum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC)
278638fd1498Szrj
278738fd1498SzrjEnumValue
278838fd1498SzrjEnum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP)
278938fd1498Szrj
279038fd1498Szrjfvect-cost-model
279138fd1498SzrjCommon Alias(fvect-cost-model=,dynamic,unlimited)
279238fd1498SzrjEnables the dynamic vectorizer cost model.  Preserved for backward compatibility.
279338fd1498Szrj
279438fd1498Szrjftree-vect-loop-version
279538fd1498SzrjCommon Ignore
279638fd1498SzrjDoes nothing. Preserved for backward compatibility.
279738fd1498Szrj
279838fd1498Szrjftree-scev-cprop
279938fd1498SzrjCommon Report Var(flag_tree_scev_cprop) Init(1) Optimization
280038fd1498SzrjEnable copy propagation of scalar-evolution information.
280138fd1498Szrj
280238fd1498Szrj; -fverbose-asm causes extra commentary information to be produced in
280338fd1498Szrj; the generated assembly code (to make it more readable).  This option
280438fd1498Szrj; is generally only of use to those who actually need to read the
280538fd1498Szrj; generated assembly code (perhaps while debugging the compiler itself).
280638fd1498Szrj; -fno-verbose-asm, the default, causes the extra information
280738fd1498Szrj; to not be added and is useful when comparing two assembler files.
280838fd1498Szrjfverbose-asm
280938fd1498SzrjCommon Report Var(flag_verbose_asm)
281038fd1498SzrjAdd extra commentary to assembler output.
281138fd1498Szrj
281238fd1498Szrjfvisibility=
281338fd1498SzrjCommon Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT)
281438fd1498Szrj-fvisibility=[default|internal|hidden|protected]	Set the default symbol visibility.
281538fd1498Szrj
281638fd1498SzrjEnum
281738fd1498SzrjName(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs)
281838fd1498Szrj
281938fd1498SzrjEnumValue
282038fd1498SzrjEnum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT)
282138fd1498Szrj
282238fd1498SzrjEnumValue
282338fd1498SzrjEnum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL)
282438fd1498Szrj
282538fd1498SzrjEnumValue
282638fd1498SzrjEnum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN)
282738fd1498Szrj
282838fd1498SzrjEnumValue
282938fd1498SzrjEnum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED)
283038fd1498Szrj
283138fd1498Szrjfvtable-verify=
283238fd1498SzrjCommon Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY)
283338fd1498SzrjValidate vtable pointers before using them.
283438fd1498Szrj
283538fd1498SzrjEnum
283638fd1498SzrjName(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs)
283738fd1498Szrj
283838fd1498SzrjEnumValue
283938fd1498SzrjEnum(vtv_priority) String(none) Value(VTV_NO_PRIORITY)
284038fd1498Szrj
284138fd1498SzrjEnumValue
284238fd1498SzrjEnum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY)
284338fd1498Szrj
284438fd1498SzrjEnumValue
284538fd1498SzrjEnum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY)
284638fd1498Szrj
284738fd1498Szrjfvtv-counts
284838fd1498SzrjCommon Var(flag_vtv_counts)
284938fd1498SzrjOutput vtable verification counters.
285038fd1498Szrj
285138fd1498Szrjfvtv-debug
285238fd1498SzrjCommon Var(flag_vtv_debug)
285338fd1498SzrjOutput vtable verification pointer sets information.
285438fd1498Szrj
285538fd1498Szrjfvpt
285638fd1498SzrjCommon Report Var(flag_value_profile_transformations) Optimization
285738fd1498SzrjUse expression value profiles in optimizations.
285838fd1498Szrj
285938fd1498Szrjfweb
286038fd1498SzrjCommon Report Var(flag_web) Init(2) Optimization
286138fd1498SzrjConstruct webs and split unrelated uses of single variable.
286238fd1498Szrj
286338fd1498Szrjftree-builtin-call-dce
286438fd1498SzrjCommon Report Var(flag_tree_builtin_call_dce) Init(0) Optimization
286538fd1498SzrjEnable conditional dead code elimination for builtin calls.
286638fd1498Szrj
286738fd1498Szrjfwhole-program
286838fd1498SzrjCommon Report Var(flag_whole_program) Init(0)
286938fd1498SzrjPerform whole program optimizations.
287038fd1498Szrj
287138fd1498Szrjfwrapv-pointer
287238fd1498SzrjCommon Report Var(flag_wrapv_pointer) Optimization
287338fd1498SzrjAssume pointer overflow wraps around.
287438fd1498Szrj
287538fd1498Szrjfwrapv
287638fd1498SzrjCommon Report Var(flag_wrapv) Optimization
287738fd1498SzrjAssume signed arithmetic overflow wraps around.
287838fd1498Szrj
287938fd1498Szrjfzero-initialized-in-bss
288038fd1498SzrjCommon Report Var(flag_zero_initialized_in_bss) Init(1)
288138fd1498SzrjPut zero initialized data in the bss section.
288238fd1498Szrj
288338fd1498Szrjg
288438fd1498SzrjCommon Driver RejectNegative JoinedOrMissing
288538fd1498SzrjGenerate debug information in default format.
288638fd1498Szrj
288738fd1498Szrjgas-loc-support
288838fd1498SzrjCommon Driver Var(dwarf2out_as_loc_support) Init(2)
288938fd1498SzrjAssume assembler support for (DWARF2+) .loc directives
289038fd1498Szrj
289138fd1498Szrjgas-locview-support
289238fd1498SzrjCommon Driver Var(dwarf2out_as_locview_support) Init(2)
289338fd1498SzrjAssume assembler support for view in (DWARF2+) .loc directives
289438fd1498Szrj
289538fd1498Szrjgcoff
289638fd1498SzrjCommon Driver Ignore Warn(switch %qs no longer supported)
289738fd1498SzrjDoes nothing.  Preserved for backward compatibility.
289838fd1498Szrj
289938fd1498Szrjgcoff1
290038fd1498SzrjCommon Driver Ignore Warn(switch %qs no longer supported)
290138fd1498SzrjDoes nothing.  Preserved for backward compatibility.
290238fd1498Szrj
290338fd1498Szrjgcoff2
290438fd1498SzrjCommon Driver Ignore Warn(switch %qs no longer supported)
290538fd1498SzrjDoes nothing.  Preserved for backward compatibility.
290638fd1498Szrj
290738fd1498Szrjgcoff3
290838fd1498SzrjCommon Driver Ignore Warn(switch %qs no longer supported)
290938fd1498SzrjDoes nothing.  Preserved for backward compatibility.
291038fd1498Szrj
291138fd1498Szrjgcolumn-info
291238fd1498SzrjCommon Driver Var(debug_column_info,1) Init(1)
291338fd1498SzrjRecord DW_AT_decl_column and DW_AT_call_column in DWARF.
291438fd1498Szrj
291538fd1498Szrjgdwarf
291638fd1498SzrjCommon Driver JoinedOrMissing Negative(gdwarf-)
291738fd1498SzrjGenerate debug information in default version of DWARF format.
291838fd1498Szrj
291938fd1498Szrjgdwarf-
292038fd1498SzrjCommon Driver Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs)
292138fd1498SzrjGenerate debug information in DWARF v2 (or later) format.
292238fd1498Szrj
292338fd1498Szrjggdb
292438fd1498SzrjCommon Driver JoinedOrMissing
292538fd1498SzrjGenerate debug information in default extended format.
292638fd1498Szrj
292738fd1498Szrjginline-points
292838fd1498SzrjCommon Driver Var(debug_inline_points) Init(2)
292938fd1498SzrjGenerate extended entry point information for inlined functions
293038fd1498Szrj
293138fd1498Szrjginternal-reset-location-views
293238fd1498SzrjCommon Driver Var(debug_internal_reset_location_views) Init(2)
293338fd1498SzrjCompute locview reset points based on insn length estimates
293438fd1498Szrj
293538fd1498Szrjgno-
293638fd1498SzrjRejectNegative Joined Undocumented
293738fd1498Szrj; Catch the gno- prefix, so it doesn't backtrack to g<level>.
293838fd1498Szrj
293938fd1498Szrjgno-pubnames
294038fd1498SzrjCommon Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1)
294138fd1498SzrjDon't generate DWARF pubnames and pubtypes sections.
294238fd1498Szrj
294338fd1498Szrjgpubnames
294438fd1498SzrjCommon Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1)
294538fd1498SzrjGenerate DWARF pubnames and pubtypes sections.
294638fd1498Szrj
294738fd1498Szrjggnu-pubnames
294838fd1498SzrjCommon Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2)
294938fd1498SzrjGenerate DWARF pubnames and pubtypes sections with GNU extensions.
295038fd1498Szrj
295138fd1498Szrjgrecord-gcc-switches
295238fd1498SzrjCommon Driver Var(dwarf_record_gcc_switches) Init(1)
295338fd1498SzrjRecord gcc command line switches in DWARF DW_AT_producer.
295438fd1498Szrj
295538fd1498Szrjgsplit-dwarf
295638fd1498SzrjCommon Driver Var(dwarf_split_debug_info) Init(0)
295738fd1498SzrjGenerate debug information in separate .dwo files.
295838fd1498Szrj
295938fd1498Szrjgstabs
296038fd1498SzrjCommon Driver JoinedOrMissing Negative(gstabs+)
296138fd1498SzrjGenerate debug information in STABS format.
296238fd1498Szrj
296338fd1498Szrjgstabs+
296438fd1498SzrjCommon Driver JoinedOrMissing Negative(gvms)
296538fd1498SzrjGenerate debug information in extended STABS format.
296638fd1498Szrj
296738fd1498Szrjgstatement-frontiers
296838fd1498SzrjCommon Driver Var(debug_nonbind_markers_p) Init(2)
296938fd1498SzrjEmit progressive recommended breakpoint locations.
297038fd1498Szrj
297138fd1498Szrjgstrict-dwarf
297238fd1498SzrjCommon Driver Report Var(dwarf_strict) Init(0)
297338fd1498SzrjDon't emit DWARF additions beyond selected version.
297438fd1498Szrj
297538fd1498Szrjgtoggle
297638fd1498SzrjCommon Driver Report Var(flag_gtoggle)
297738fd1498SzrjToggle debug information generation.
297838fd1498Szrj
297938fd1498Szrjgvariable-location-views
298038fd1498SzrjCommon Driver Var(debug_variable_location_views, 1) Init(2)
298138fd1498SzrjAugment variable location lists with progressive views.
298238fd1498Szrj
298338fd1498Szrjgvariable-location-views=incompat5
298438fd1498SzrjCommon Driver RejectNegative Var(debug_variable_location_views, -1) Init(2)
298538fd1498Szrj
298638fd1498Szrjgvms
298738fd1498SzrjCommon Driver JoinedOrMissing Negative(gxcoff)
298838fd1498SzrjGenerate debug information in VMS format.
298938fd1498Szrj
299038fd1498Szrjgxcoff
299138fd1498SzrjCommon Driver JoinedOrMissing Negative(gxcoff+)
299238fd1498SzrjGenerate debug information in XCOFF format.
299338fd1498Szrj
299438fd1498Szrjgxcoff+
299538fd1498SzrjCommon Driver JoinedOrMissing Negative(gdwarf)
299638fd1498SzrjGenerate debug information in extended XCOFF format.
299738fd1498Szrj
299838fd1498SzrjEnum
299938fd1498SzrjName(compressed_debug_sections) Type(int)
300038fd1498Szrj
300138fd1498Szrj; Since -gz= is completely handled in specs, the values aren't used and we
300238fd1498Szrj; assign arbitrary constants.
300338fd1498SzrjEnumValue
300438fd1498SzrjEnum(compressed_debug_sections) String(none) Value(0)
300538fd1498Szrj
300638fd1498SzrjEnumValue
300738fd1498SzrjEnum(compressed_debug_sections) String(zlib) Value(1)
300838fd1498Szrj
300938fd1498SzrjEnumValue
301038fd1498SzrjEnum(compressed_debug_sections) String(zlib-gnu) Value(2)
301138fd1498Szrj
301238fd1498Szrjgz
301338fd1498SzrjCommon Driver
301438fd1498SzrjGenerate compressed debug sections.
301538fd1498Szrj
301638fd1498Szrjgz=
301738fd1498SzrjCommon Driver RejectNegative Joined Enum(compressed_debug_sections)
301838fd1498Szrj-gz=<format>	Generate compressed debug sections in format <format>.
301938fd1498Szrj
302038fd1498Szrjh
302138fd1498SzrjDriver Joined Separate
302238fd1498Szrj
302338fd1498Szrjiplugindir=
302438fd1498SzrjCommon Joined Var(plugindir_string) Init(0)
302538fd1498Szrj-iplugindir=<dir>	Set <dir> to be the default plugin directory.
302638fd1498Szrj
302738fd1498Szrjimultiarch
302838fd1498SzrjCommon Joined Separate RejectDriver Var(imultiarch) Init(0)
302938fd1498Szrj-imultiarch <dir>	Set <dir> to be the multiarch include subdirectory.
303038fd1498Szrj
303138fd1498Szrjl
303238fd1498SzrjDriver Joined Separate
303338fd1498Szrj
303438fd1498Szrjn
303538fd1498SzrjDriver
303638fd1498Szrj
303738fd1498Szrjno-canonical-prefixes
303838fd1498SzrjDriver
303938fd1498Szrj
304038fd1498Szrjnodefaultlibs
304138fd1498SzrjDriver
304238fd1498Szrj
304338fd1498Szrjnostartfiles
304438fd1498SzrjDriver
304538fd1498Szrj
304638fd1498Szrjnostdlib
304738fd1498SzrjDriver
304838fd1498Szrj
304938fd1498Szrjo
305038fd1498SzrjCommon Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs)
305138fd1498Szrj-o <file>	Place output into <file>.
305238fd1498Szrj
305338fd1498Szrjp
305438fd1498SzrjCommon Var(profile_flag)
305538fd1498SzrjEnable function profiling.
305638fd1498Szrj
305738fd1498Szrjpass-exit-codes
305838fd1498SzrjDriver Var(pass_exit_codes)
305938fd1498Szrj
306038fd1498Szrjpedantic
306138fd1498SzrjCommon Alias(Wpedantic)
306238fd1498Szrj
306338fd1498Szrjpedantic-errors
306438fd1498SzrjCommon Var(flag_pedantic_errors)
306538fd1498SzrjLike -pedantic but issue them as errors.
306638fd1498Szrj
306738fd1498Szrjpg
306838fd1498SzrjDriver
306938fd1498Szrj
307038fd1498Szrjpipe
307138fd1498SzrjDriver Var(use_pipes)
307238fd1498Szrj
307338fd1498Szrjprint-file-name=
307438fd1498SzrjDriver JoinedOrMissing Var(print_file_name)
307538fd1498Szrj
307638fd1498Szrjprint-libgcc-file-name
307738fd1498SzrjDriver
307838fd1498Szrj
307938fd1498Szrjprint-multi-directory
308038fd1498SzrjDriver Var(print_multi_directory)
308138fd1498Szrj
308238fd1498Szrjprint-multi-lib
308338fd1498SzrjDriver Var(print_multi_lib)
308438fd1498Szrj
308538fd1498Szrjprint-multi-os-directory
308638fd1498SzrjDriver Var(print_multi_os_directory)
308738fd1498Szrj
308838fd1498Szrjprint-multiarch
308938fd1498SzrjDriver Var(print_multiarch)
309038fd1498Szrj
309138fd1498Szrjprint-prog-name=
309238fd1498SzrjDriver JoinedOrMissing Var(print_prog_name)
309338fd1498Szrj
309438fd1498Szrjprint-search-dirs
309538fd1498SzrjDriver Var(print_search_dirs)
309638fd1498Szrj
309738fd1498Szrjprint-sysroot
309838fd1498SzrjDriver Var(print_sysroot)
309938fd1498Szrj
310038fd1498Szrjprint-sysroot-headers-suffix
310138fd1498SzrjDriver Var(print_sysroot_headers_suffix)
310238fd1498Szrj
310338fd1498Szrjquiet
310438fd1498SzrjCommon Var(quiet_flag) RejectDriver
310538fd1498SzrjDo not display functions compiled or elapsed time.
310638fd1498Szrj
310738fd1498Szrjr
310838fd1498SzrjDriver
310938fd1498Szrj
311038fd1498Szrjs
311138fd1498SzrjDriver
311238fd1498Szrj
311338fd1498Szrjsave-temps
311438fd1498SzrjDriver
311538fd1498Szrj
311638fd1498Szrjsave-temps=
311738fd1498SzrjDriver Joined
311838fd1498Szrj
311938fd1498Szrjt
312038fd1498SzrjDriver
312138fd1498Szrj
312238fd1498Szrjtime
312338fd1498SzrjDriver Var(report_times)
312438fd1498Szrj
312538fd1498Szrjtime=
312638fd1498SzrjDriver JoinedOrMissing
312738fd1498Szrj
312838fd1498Szrju
312938fd1498SzrjDriver Joined Separate
313038fd1498Szrj
313138fd1498Szrjundef
313238fd1498SzrjDriver
313338fd1498Szrj; C option, but driver must not handle as "-u ndef".
313438fd1498Szrj
313538fd1498Szrjv
313638fd1498SzrjCommon Driver Var(verbose_flag)
313738fd1498SzrjEnable verbose output.
313838fd1498Szrj
313938fd1498Szrjversion
314038fd1498SzrjCommon Var(version_flag) RejectDriver
314138fd1498SzrjDisplay the compiler's version.
314238fd1498Szrj
314338fd1498Szrjw
314438fd1498SzrjCommon Var(inhibit_warnings)
314538fd1498SzrjSuppress warnings.
314638fd1498Szrj
314738fd1498Szrjwrapper
314838fd1498SzrjDriver Separate Var(wrapper_string)
314938fd1498Szrj
315038fd1498Szrjx
315138fd1498SzrjDriver Joined Separate
315238fd1498Szrj
315338fd1498Szrjshared
315438fd1498SzrjDriver RejectNegative Negative(static-pie)
315538fd1498SzrjCreate a shared library.
315638fd1498Szrj
315738fd1498Szrjshared-libgcc
315838fd1498SzrjDriver
315938fd1498Szrj
316038fd1498Szrjspecs
316138fd1498SzrjDriver Separate Alias(specs=)
316238fd1498Szrj
316338fd1498Szrjspecs=
316438fd1498SzrjDriver Joined
316538fd1498Szrj
316638fd1498Szrjstatic
316738fd1498SzrjDriver
316838fd1498Szrj
316938fd1498Szrjstatic-libgcc
317038fd1498SzrjDriver
317138fd1498Szrj
317238fd1498Szrjstatic-libgfortran
317338fd1498SzrjDriver
317438fd1498Szrj; Documented for Fortran, but always accepted by driver.
317538fd1498Szrj
317638fd1498Szrjstatic-libstdc++
317738fd1498SzrjDriver
317838fd1498Szrj
317938fd1498Szrjstatic-libgo
318038fd1498SzrjDriver
318138fd1498Szrj; Documented for Go, but always accepted by driver.
318238fd1498Szrj
318338fd1498Szrjstatic-libasan
318438fd1498SzrjDriver
318538fd1498Szrj
318638fd1498Szrjstatic-libtsan
318738fd1498SzrjDriver
318838fd1498Szrj
318938fd1498Szrjstatic-liblsan
319038fd1498SzrjDriver
319138fd1498Szrj
319238fd1498Szrjstatic-libubsan
319338fd1498SzrjDriver
319438fd1498Szrj
319538fd1498Szrjsymbolic
319638fd1498SzrjDriver
319738fd1498Szrj
319838fd1498Szrjno-pie
319938fd1498SzrjDriver RejectNegative Negative(shared)
320038fd1498SzrjDon't create a dynamically linked position independent executable.
320138fd1498Szrj
320238fd1498Szrjpie
320338fd1498SzrjDriver RejectNegative Negative(no-pie)
320438fd1498SzrjCreate a dynamically linked position independent executable.
320538fd1498Szrj
320638fd1498Szrjstatic-pie
320738fd1498SzrjDriver RejectNegative Negative(pie)
320838fd1498SzrjCreate a static position independent executable.
320938fd1498Szrj
321038fd1498Szrjz
321138fd1498SzrjDriver Joined Separate
321238fd1498Szrj
321338fd1498Szrjfipa-ra
321438fd1498SzrjCommon Report Var(flag_ipa_ra) Optimization
321538fd1498SzrjUse caller save register across calls if possible.
321638fd1498Szrj
321738fd1498Szrj; This comment is to ensure we retain the blank line above.
3218