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