1*38fd1498Szrj; Options for the language- and target-independent parts of the compiler. 2*38fd1498Szrj 3*38fd1498Szrj; Copyright (C) 2003-2018 Free Software Foundation, Inc. 4*38fd1498Szrj; 5*38fd1498Szrj; This file is part of GCC. 6*38fd1498Szrj; 7*38fd1498Szrj; GCC is free software; you can redistribute it and/or modify it under 8*38fd1498Szrj; the terms of the GNU General Public License as published by the Free 9*38fd1498Szrj; Software Foundation; either version 3, or (at your option) any later 10*38fd1498Szrj; version. 11*38fd1498Szrj; 12*38fd1498Szrj; GCC is distributed in the hope that it will be useful, but WITHOUT ANY 13*38fd1498Szrj; WARRANTY; without even the implied warranty of MERCHANTABILITY or 14*38fd1498Szrj; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15*38fd1498Szrj; for more details. 16*38fd1498Szrj; 17*38fd1498Szrj; You should have received a copy of the GNU General Public License 18*38fd1498Szrj; along with GCC; see the file COPYING3. If not see 19*38fd1498Szrj; <http://www.gnu.org/licenses/>. 20*38fd1498Szrj 21*38fd1498Szrj; See the GCC internals manual (options.texi) for a description of this file's format. 22*38fd1498Szrj 23*38fd1498Szrj; Please try to keep this file in ASCII collating order. 24*38fd1498Szrj 25*38fd1498SzrjVariable 26*38fd1498Szrjint target_flags 27*38fd1498Szrj 28*38fd1498SzrjVariable 29*38fd1498Szrjint optimize 30*38fd1498Szrj 31*38fd1498SzrjVariable 32*38fd1498Szrjint optimize_size 33*38fd1498Szrj 34*38fd1498SzrjVariable 35*38fd1498Szrjint optimize_debug 36*38fd1498Szrj 37*38fd1498Szrj; Not used directly to control optimizations, only to save -Ofast 38*38fd1498Szrj; setting for "optimize" attributes. 39*38fd1498SzrjVariable 40*38fd1498Szrjint optimize_fast 41*38fd1498Szrj 42*38fd1498Szrj; True if this is the lto front end. This is used to disable gimple 43*38fd1498Szrj; generation and lowering passes that are normally run on the output 44*38fd1498Szrj; of a front end. These passes must be bypassed for lto since they 45*38fd1498Szrj; have already been done before the gimple was written. 46*38fd1498SzrjVariable 47*38fd1498Szrjbool in_lto_p = false 48*38fd1498Szrj 49*38fd1498Szrj; This variable is set to non-0 only by LTO front-end. 1 indicates that 50*38fd1498Szrj; the output produced will be used for incrmeental linking (thus weak symbols 51*38fd1498Szrj; can still be bound). 52*38fd1498SzrjVariable 53*38fd1498Szrjint flag_incremental_link = 0 54*38fd1498Szrj 55*38fd1498Szrj; 0 means straightforward implementation of complex divide acceptable. 56*38fd1498Szrj; 1 means wide ranges of inputs must work for complex divide. 57*38fd1498Szrj; 2 means C99-like requirements for complex multiply and divide. 58*38fd1498SzrjVariable 59*38fd1498Szrjint flag_complex_method = 1 60*38fd1498Szrj 61*38fd1498Szrj; Language specific warning pass for unused results. 62*38fd1498SzrjVariable 63*38fd1498Szrjbool flag_warn_unused_result = false 64*38fd1498Szrj 65*38fd1498SzrjVariable 66*38fd1498Szrjint *param_values 67*38fd1498Szrj 68*38fd1498Szrj; Nonzero if we should write GIMPLE bytecode for link-time optimization. 69*38fd1498SzrjVariable 70*38fd1498Szrjint flag_generate_lto 71*38fd1498Szrj 72*38fd1498Szrj; Nonzero if we should write GIMPLE bytecode for offload compilation. 73*38fd1498SzrjVariable 74*38fd1498Szrjint flag_generate_offload = 0 75*38fd1498Szrj 76*38fd1498Szrj; True to warn about any objects definitions whose size is larger 77*38fd1498Szrj; than N bytes. Also want about function definitions whose returned 78*38fd1498Szrj; values are larger than N bytes, where N is 'larger_than_size'. 79*38fd1498SzrjVariable 80*38fd1498Szrjbool warn_larger_than 81*38fd1498Szrj 82*38fd1498SzrjVariable 83*38fd1498SzrjHOST_WIDE_INT larger_than_size 84*38fd1498Szrj 85*38fd1498Szrj; True to warn about any function whose frame size is larger 86*38fd1498Szrj; than N bytes. 87*38fd1498SzrjVariable 88*38fd1498Szrjbool warn_frame_larger_than 89*38fd1498Szrj 90*38fd1498SzrjVariable 91*38fd1498SzrjHOST_WIDE_INT frame_larger_than_size 92*38fd1498Szrj 93*38fd1498Szrj; Nonzero means we should be saving declaration info into a .X file. 94*38fd1498SzrjVariable 95*38fd1498Szrjint flag_gen_aux_info = 0 96*38fd1498Szrj 97*38fd1498Szrj; Nonzero if we are compiling code for a shared library, zero for 98*38fd1498Szrj; executable. 99*38fd1498SzrjVariable 100*38fd1498Szrjint flag_shlib 101*38fd1498Szrj 102*38fd1498Szrj; These two are really VEC(char_p,heap) *. 103*38fd1498Szrj 104*38fd1498SzrjVariable 105*38fd1498Szrjvoid *flag_instrument_functions_exclude_functions 106*38fd1498Szrj 107*38fd1498SzrjVariable 108*38fd1498Szrjvoid *flag_instrument_functions_exclude_files 109*38fd1498Szrj 110*38fd1498Szrj; Generic structs (e.g. templates not explicitly specialized) 111*38fd1498Szrj; may not have a compilation unit associated with them, and so 112*38fd1498Szrj; may need to be treated differently from ordinary structs. 113*38fd1498Szrj; 114*38fd1498Szrj; Structs only handled by reference (indirectly), will also usually 115*38fd1498Szrj; not need as much debugging information. 116*38fd1498Szrj 117*38fd1498SzrjVariable 118*38fd1498Szrjenum debug_struct_file debug_struct_ordinary[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY } 119*38fd1498Szrj 120*38fd1498SzrjVariable 121*38fd1498Szrjenum debug_struct_file debug_struct_generic[DINFO_USAGE_NUM_ENUMS] = { DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY, DINFO_STRUCT_FILE_ANY } 122*38fd1498Szrj 123*38fd1498Szrj; True if we should exit after parsing options. 124*38fd1498SzrjVariable 125*38fd1498Szrjbool exit_after_options 126*38fd1498Szrj 127*38fd1498Szrj; Type(s) of debugging information we are producing (if any). See 128*38fd1498Szrj; flag-types.h for the definitions of the different possible types of 129*38fd1498Szrj; debugging information. 130*38fd1498SzrjVariable 131*38fd1498Szrjenum debug_info_type write_symbols = NO_DEBUG 132*38fd1498Szrj 133*38fd1498Szrj; Level of debugging information we are producing. See flag-types.h 134*38fd1498Szrj; for the definitions of the different possible levels. 135*38fd1498SzrjVariable 136*38fd1498Szrjenum debug_info_levels debug_info_level = DINFO_LEVEL_NONE 137*38fd1498Szrj 138*38fd1498Szrj; Nonzero means use GNU-only extensions in the generated symbolic 139*38fd1498Szrj; debugging information. Currently, this only has an effect when 140*38fd1498Szrj; write_symbols is set to DBX_DEBUG or XCOFF_DEBUG. 141*38fd1498SzrjVariable 142*38fd1498Szrjbool use_gnu_debug_info_extensions 143*38fd1498Szrj 144*38fd1498Szrj; Original value of maximum field alignment in bytes, specified via 145*38fd1498Szrj; -fpack-struct=<value>. 146*38fd1498SzrjVariable 147*38fd1498Szrjunsigned int initial_max_fld_align = TARGET_DEFAULT_PACK_STRUCT 148*38fd1498Szrj 149*38fd1498Szrj; Type of stack check. 150*38fd1498SzrjVariable 151*38fd1498Szrjenum stack_check_type flag_stack_check = NO_STACK_CHECK 152*38fd1498Szrj 153*38fd1498Szrj; True if stack usage information needs to be computed. 154*38fd1498SzrjVariable 155*38fd1498Szrjbool flag_stack_usage_info = false 156*38fd1498Szrj 157*38fd1498Szrj; -dA causes debug commentary information to be produced in 158*38fd1498Szrj; the generated assembly code (to make it more readable). This option 159*38fd1498Szrj; is generally only of use to those who actually need to read the 160*38fd1498Szrj; generated assembly code (perhaps while debugging the compiler itself). 161*38fd1498Szrj; Currently, this switch is only used by dwarf2out.c; however, it is intended 162*38fd1498Szrj; to be a catchall for printing debug information in the assembler file. 163*38fd1498SzrjVariable 164*38fd1498Szrjint flag_debug_asm 165*38fd1498Szrj 166*38fd1498Szrj; How many NOP insns to place at each function entry by default 167*38fd1498SzrjVariable 168*38fd1498SzrjHOST_WIDE_INT function_entry_patch_area_size 169*38fd1498Szrj 170*38fd1498Szrj; And how far the real asm entry point is into this area 171*38fd1498SzrjVariable 172*38fd1498SzrjHOST_WIDE_INT function_entry_patch_area_start 173*38fd1498Szrj 174*38fd1498Szrj; Balance between GNAT encodings and standard DWARF to emit. 175*38fd1498SzrjVariable 176*38fd1498Szrjenum dwarf_gnat_encodings gnat_encodings = DWARF_GNAT_ENCODINGS_DEFAULT 177*38fd1498Szrj 178*38fd1498Szrj; -dP causes the rtl to be emitted as a comment in assembly. 179*38fd1498SzrjVariable 180*38fd1498Szrjint flag_dump_rtl_in_asm 181*38fd1498Szrj 182*38fd1498Szrj; Whether -da was passed (used only in handle_common_deferred_options). 183*38fd1498SzrjVariable 184*38fd1498Szrjbool flag_dump_all_passed 185*38fd1498Szrj 186*38fd1498Szrj; Other flags saying which kinds of debugging dump have been requested. 187*38fd1498Szrj 188*38fd1498SzrjVariable 189*38fd1498Szrjint rtl_dump_and_exit 190*38fd1498Szrj 191*38fd1498SzrjVariable 192*38fd1498Szrjint flag_print_asm_name 193*38fd1498Szrj 194*38fd1498Szrj; Name of top-level original source file (what was input to cpp). 195*38fd1498Szrj; This comes from the #-command at the beginning of the actual input. 196*38fd1498Szrj; If there isn't any there, then this is the cc1 input file name. 197*38fd1498SzrjVariable 198*38fd1498Szrjconst char *main_input_filename 199*38fd1498Szrj 200*38fd1498Szrj; Pointer to base name in main_input_filename, with directories and a 201*38fd1498Szrj; single final extension removed, and the length of this base 202*38fd1498Szrj; name. 203*38fd1498Szrj 204*38fd1498SzrjVariable 205*38fd1498Szrjconst char *main_input_basename 206*38fd1498Szrj 207*38fd1498SzrjVariable 208*38fd1498Szrjint main_input_baselength 209*38fd1498Szrj 210*38fd1498Szrj; Which options have been printed by --help. 211*38fd1498SzrjVariable 212*38fd1498Szrjchar *help_printed 213*38fd1498Szrj 214*38fd1498Szrj; Which enums have been printed by --help. 0 = not printed, no 215*38fd1498Szrj; relevant options seen, 1 = relevant option seen, not yet printed, 2 216*38fd1498Szrj; = printed. 217*38fd1498SzrjVariable 218*38fd1498Szrjchar *help_enum_printed 219*38fd1498Szrj 220*38fd1498Szrj; The number of columns for --help output. 221*38fd1498SzrjVariable 222*38fd1498Szrjunsigned int help_columns 223*38fd1498Szrj 224*38fd1498Szrj; Whether this options structure has been through finish_options 225*38fd1498SzrjVariable 226*38fd1498Szrjbool flag_opts_finished 227*38fd1498Szrj 228*38fd1498Szrj; What the sanitizer should instrument 229*38fd1498SzrjVariable 230*38fd1498Szrjunsigned int flag_sanitize 231*38fd1498Szrj 232*38fd1498Szrj; What sanitizers should recover from errors 233*38fd1498SzrjVariable 234*38fd1498Szrjunsigned int flag_sanitize_recover = (SANITIZE_UNDEFINED | SANITIZE_UNDEFINED_NONDEFAULT | SANITIZE_KERNEL_ADDRESS) & ~(SANITIZE_UNREACHABLE | SANITIZE_RETURN) 235*38fd1498Szrj 236*38fd1498Szrj; What the coverage sanitizers should instrument 237*38fd1498SzrjVariable 238*38fd1498Szrjunsigned int flag_sanitize_coverage 239*38fd1498Szrj 240*38fd1498Szrj; Flag whether a prefix has been added to dump_base_name 241*38fd1498SzrjVariable 242*38fd1498Szrjbool dump_base_name_prefixed = false 243*38fd1498Szrj 244*38fd1498Szrj; Flag whether HSA generation has been explicitely disabled 245*38fd1498SzrjVariable 246*38fd1498Szrjbool flag_disable_hsa = false 247*38fd1498Szrj 248*38fd1498Szrj### 249*38fd1498SzrjDriver 250*38fd1498Szrj 251*38fd1498Szrj-assemble 252*38fd1498SzrjDriver Alias(S) 253*38fd1498Szrj 254*38fd1498Szrj-compile 255*38fd1498SzrjDriver Alias(c) 256*38fd1498Szrj 257*38fd1498Szrj-coverage 258*38fd1498SzrjDriver Alias(coverage) 259*38fd1498Szrj 260*38fd1498Szrj-debug 261*38fd1498SzrjCommon Alias(g) 262*38fd1498Szrj 263*38fd1498Szrj-dump 264*38fd1498SzrjCommon Separate Alias(d) 265*38fd1498Szrj 266*38fd1498Szrj-dump= 267*38fd1498SzrjCommon Joined Alias(d) 268*38fd1498Szrj 269*38fd1498Szrj-dumpbase 270*38fd1498SzrjCommon Separate Alias(dumpbase) 271*38fd1498Szrj 272*38fd1498Szrj-dumpdir 273*38fd1498SzrjCommon Separate Alias(dumpdir) 274*38fd1498Szrj 275*38fd1498Szrj-entry 276*38fd1498SzrjDriver Separate Alias(e) 277*38fd1498Szrj 278*38fd1498Szrj-entry= 279*38fd1498SzrjDriver Joined Alias(e) 280*38fd1498Szrj 281*38fd1498Szrj-extra-warnings 282*38fd1498SzrjCommon Warning Alias(Wextra) 283*38fd1498Szrj 284*38fd1498Szrj-for-assembler 285*38fd1498SzrjDriver Separate Alias(Xassembler) 286*38fd1498Szrj 287*38fd1498Szrj-for-assembler= 288*38fd1498SzrjDriver JoinedOrMissing Alias(Xassembler) 289*38fd1498Szrj 290*38fd1498Szrj-for-linker 291*38fd1498SzrjDriver Separate Alias(Xlinker) 292*38fd1498Szrj 293*38fd1498Szrj-for-linker= 294*38fd1498SzrjDriver JoinedOrMissing Alias(Xlinker) 295*38fd1498Szrj 296*38fd1498Szrj-force-link 297*38fd1498SzrjDriver Separate Alias(u) 298*38fd1498Szrj 299*38fd1498Szrj-force-link= 300*38fd1498SzrjDriver Joined Alias(u) 301*38fd1498Szrj 302*38fd1498Szrj-help 303*38fd1498SzrjCommon Driver Var(help_flag) 304*38fd1498SzrjDisplay this information. 305*38fd1498Szrj 306*38fd1498Szrj-help= 307*38fd1498SzrjCommon Driver Report Joined 308*38fd1498Szrj--help=<class> Display descriptions of a specific class of options. <class> is one or more of optimizers, target, warnings, undocumented, params. 309*38fd1498Szrj 310*38fd1498Szrj-language 311*38fd1498SzrjDriver Separate Alias(x) 312*38fd1498Szrj 313*38fd1498Szrj-language= 314*38fd1498SzrjDriver Joined Alias(x) 315*38fd1498Szrj 316*38fd1498Szrj-library-directory 317*38fd1498SzrjDriver Separate Alias(L) 318*38fd1498Szrj 319*38fd1498Szrj-library-directory= 320*38fd1498SzrjDriver Joined Alias(L) 321*38fd1498Szrj 322*38fd1498Szrj-no-canonical-prefixes 323*38fd1498SzrjDriver Alias(no-canonical-prefixes) 324*38fd1498Szrj 325*38fd1498Szrj-no-standard-libraries 326*38fd1498SzrjDriver Alias(nostdlib) 327*38fd1498Szrj 328*38fd1498Szrj-no-sysroot-suffix 329*38fd1498SzrjDriver Var(no_sysroot_suffix) 330*38fd1498Szrj 331*38fd1498Szrj-no-warnings 332*38fd1498SzrjCommon Alias(w) 333*38fd1498Szrj 334*38fd1498Szrj-optimize 335*38fd1498SzrjCommon Alias(O) 336*38fd1498Szrj 337*38fd1498Szrj-output 338*38fd1498SzrjCommon Driver Separate Alias(o) MissingArgError(missing filename after %qs) 339*38fd1498Szrj 340*38fd1498Szrj-output= 341*38fd1498SzrjCommon Driver Joined Alias(o) MissingArgError(missing filename after %qs) 342*38fd1498Szrj 343*38fd1498Szrj-pass-exit-codes 344*38fd1498SzrjDriver Alias(pass-exit-codes) 345*38fd1498Szrj 346*38fd1498Szrj-pedantic 347*38fd1498SzrjCommon Alias(Wpedantic) 348*38fd1498Szrj 349*38fd1498Szrj-pedantic-errors 350*38fd1498SzrjCommon Alias(pedantic-errors) 351*38fd1498Szrj 352*38fd1498Szrj-pie 353*38fd1498SzrjDriver Alias(pie) 354*38fd1498Szrj 355*38fd1498Szrj-static-pie 356*38fd1498SzrjDriver Alias(static-pie) 357*38fd1498Szrj 358*38fd1498Szrj-pipe 359*38fd1498SzrjDriver Alias(pipe) 360*38fd1498Szrj 361*38fd1498Szrj-prefix 362*38fd1498SzrjDriver Separate Alias(B) 363*38fd1498Szrj 364*38fd1498Szrj-prefix= 365*38fd1498SzrjDriver JoinedOrMissing Alias(B) 366*38fd1498Szrj 367*38fd1498Szrj-preprocess 368*38fd1498SzrjDriver Alias(E) 369*38fd1498Szrj 370*38fd1498Szrj-print-file-name 371*38fd1498SzrjDriver Separate Alias(print-file-name=) 372*38fd1498Szrj 373*38fd1498Szrj-print-file-name= 374*38fd1498SzrjDriver JoinedOrMissing Alias(print-file-name=) 375*38fd1498Szrj 376*38fd1498Szrj-print-libgcc-file-name 377*38fd1498SzrjDriver Alias(print-libgcc-file-name) 378*38fd1498Szrj 379*38fd1498Szrj-print-multi-directory 380*38fd1498SzrjDriver Alias(print-multi-directory) 381*38fd1498Szrj 382*38fd1498Szrj-print-multi-lib 383*38fd1498SzrjDriver Alias(print-multi-lib) 384*38fd1498Szrj 385*38fd1498Szrj-print-multi-os-directory 386*38fd1498SzrjDriver Alias(print-multi-os-directory) 387*38fd1498Szrj 388*38fd1498Szrj-print-multiarch 389*38fd1498SzrjDriver Alias(print-multiarch) 390*38fd1498Szrj 391*38fd1498Szrj-print-prog-name 392*38fd1498SzrjDriver Separate Alias(print-prog-name=) 393*38fd1498Szrj 394*38fd1498Szrj-print-prog-name= 395*38fd1498SzrjDriver JoinedOrMissing Alias(print-prog-name=) 396*38fd1498Szrj 397*38fd1498Szrj-print-search-dirs 398*38fd1498SzrjDriver Alias(print-search-dirs) 399*38fd1498Szrj 400*38fd1498Szrj-print-sysroot 401*38fd1498SzrjDriver Alias(print-sysroot) 402*38fd1498Szrj 403*38fd1498Szrj-print-sysroot-headers-suffix 404*38fd1498SzrjDriver Alias(print-sysroot-headers-suffix) 405*38fd1498Szrj 406*38fd1498Szrj-profile 407*38fd1498SzrjCommon Alias(p) 408*38fd1498Szrj 409*38fd1498Szrj-save-temps 410*38fd1498SzrjDriver Alias(save-temps) 411*38fd1498Szrj 412*38fd1498Szrj-shared 413*38fd1498SzrjDriver Alias(shared) 414*38fd1498Szrj 415*38fd1498Szrj-specs 416*38fd1498SzrjDriver Separate Alias(specs=) 417*38fd1498Szrj 418*38fd1498Szrj-specs= 419*38fd1498SzrjDriver Joined Alias(specs=) 420*38fd1498Szrj 421*38fd1498Szrj-static 422*38fd1498SzrjDriver Alias(static) 423*38fd1498Szrj 424*38fd1498Szrj-symbolic 425*38fd1498SzrjDriver Alias(symbolic) 426*38fd1498Szrj 427*38fd1498Szrj-target-help 428*38fd1498SzrjCommon Driver 429*38fd1498SzrjAlias for --help=target. 430*38fd1498Szrj 431*38fd1498Szrj-time 432*38fd1498SzrjDriver Alias(time) 433*38fd1498Szrj 434*38fd1498Szrj-verbose 435*38fd1498SzrjDriver Alias(v) 436*38fd1498Szrj 437*38fd1498Szrj;; The driver used to convert options such as --help into forms such 438*38fd1498Szrj;; as -fhelp; the following four entries are for compatibility with 439*38fd1498Szrj;; any direct uses of those (undocumented) -f forms 440*38fd1498Szrjfhelp 441*38fd1498SzrjCommon Driver Alias(-help) 442*38fd1498Szrj 443*38fd1498Szrjfhelp= 444*38fd1498SzrjCommon Driver Joined Alias(-help=) 445*38fd1498Szrj 446*38fd1498Szrjftarget-help 447*38fd1498SzrjCommon Driver Alias(-target-help) 448*38fd1498Szrj 449*38fd1498Szrjfversion 450*38fd1498SzrjCommon Driver Alias(-version) 451*38fd1498Szrj 452*38fd1498Szrj-param 453*38fd1498SzrjCommon Separate 454*38fd1498Szrj--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters. 455*38fd1498Szrj 456*38fd1498Szrj-param= 457*38fd1498SzrjCommon Joined Alias(-param) 458*38fd1498Szrj 459*38fd1498Szrj-sysroot 460*38fd1498SzrjDriver Separate Alias(-sysroot=) 461*38fd1498Szrj 462*38fd1498Szrj-sysroot= 463*38fd1498SzrjDriver JoinedOrMissing 464*38fd1498Szrj 465*38fd1498Szrj-version 466*38fd1498SzrjCommon Driver 467*38fd1498Szrj 468*38fd1498SzrjB 469*38fd1498SzrjDriver Joined Separate 470*38fd1498Szrj 471*38fd1498SzrjE 472*38fd1498SzrjDriver 473*38fd1498Szrj 474*38fd1498SzrjL 475*38fd1498SzrjDriver Joined Separate 476*38fd1498Szrj 477*38fd1498SzrjN 478*38fd1498SzrjDriver 479*38fd1498Szrj 480*38fd1498SzrjO 481*38fd1498SzrjCommon JoinedOrMissing Optimization 482*38fd1498Szrj-O<number> Set optimization level to <number>. 483*38fd1498Szrj 484*38fd1498SzrjOs 485*38fd1498SzrjCommon Optimization 486*38fd1498SzrjOptimize for space rather than speed. 487*38fd1498Szrj 488*38fd1498SzrjOfast 489*38fd1498SzrjCommon Optimization 490*38fd1498SzrjOptimize for speed disregarding exact standards compliance. 491*38fd1498Szrj 492*38fd1498SzrjOg 493*38fd1498SzrjCommon Optimization 494*38fd1498SzrjOptimize for debugging experience rather than speed or size. 495*38fd1498Szrj 496*38fd1498SzrjQ 497*38fd1498SzrjDriver 498*38fd1498Szrj 499*38fd1498SzrjQn 500*38fd1498SzrjDriver Negative(Qy) 501*38fd1498Szrj 502*38fd1498SzrjQy 503*38fd1498SzrjDriver Negative(Qn) 504*38fd1498Szrj 505*38fd1498SzrjR 506*38fd1498SzrjDriver Joined Separate 507*38fd1498Szrj 508*38fd1498SzrjS 509*38fd1498SzrjDriver 510*38fd1498Szrj 511*38fd1498SzrjT 512*38fd1498SzrjDriver Joined Separate 513*38fd1498Szrj 514*38fd1498SzrjTbss 515*38fd1498SzrjDriver Separate 516*38fd1498Szrj 517*38fd1498SzrjTbss= 518*38fd1498SzrjDriver Joined 519*38fd1498Szrj 520*38fd1498SzrjTdata 521*38fd1498SzrjDriver Separate 522*38fd1498Szrj 523*38fd1498SzrjTdata= 524*38fd1498SzrjDriver Joined 525*38fd1498Szrj 526*38fd1498SzrjTtext 527*38fd1498SzrjDriver Separate 528*38fd1498Szrj 529*38fd1498SzrjTtext= 530*38fd1498SzrjDriver Joined 531*38fd1498Szrj 532*38fd1498SzrjW 533*38fd1498SzrjCommon RejectNegative Warning Alias(Wextra) 534*38fd1498SzrjThis switch is deprecated; use -Wextra instead. 535*38fd1498Szrj 536*38fd1498SzrjWa, 537*38fd1498SzrjDriver JoinedOrMissing RejectNegative 538*38fd1498Szrj 539*38fd1498SzrjWl, 540*38fd1498SzrjDriver JoinedOrMissing RejectNegative 541*38fd1498Szrj 542*38fd1498SzrjWp, 543*38fd1498SzrjDriver JoinedOrMissing RejectNegative 544*38fd1498Szrj 545*38fd1498SzrjWaggregate-return 546*38fd1498SzrjCommon Var(warn_aggregate_return) Warning 547*38fd1498SzrjWarn about returning structures, unions or arrays. 548*38fd1498Szrj 549*38fd1498SzrjWaggressive-loop-optimizations 550*38fd1498SzrjCommon Var(warn_aggressive_loop_optimizations) Init(1) Warning 551*38fd1498SzrjWarn if a loop with constant number of iterations triggers undefined behavior. 552*38fd1498Szrj 553*38fd1498SzrjWarray-bounds 554*38fd1498SzrjCommon Var(warn_array_bounds) Warning 555*38fd1498SzrjWarn if an array is accessed out of bounds. 556*38fd1498Szrj 557*38fd1498SzrjWarray-bounds= 558*38fd1498SzrjCommon Joined RejectNegative UInteger Var(warn_array_bounds) Warning IntegerRange(0, 2) 559*38fd1498SzrjWarn if an array is accessed out of bounds. 560*38fd1498Szrj 561*38fd1498SzrjWattributes 562*38fd1498SzrjCommon Var(warn_attributes) Init(1) Warning 563*38fd1498SzrjWarn about inappropriate attribute usage. 564*38fd1498Szrj 565*38fd1498SzrjWattribute-alias 566*38fd1498SzrjCommon Var(warn_attributes) Init(1) Warning 567*38fd1498SzrjWarn about type safety and similar errors in attribute alias and related. 568*38fd1498Szrj 569*38fd1498SzrjWcast-align 570*38fd1498SzrjCommon Var(warn_cast_align) Warning 571*38fd1498SzrjWarn about pointer casts which increase alignment. 572*38fd1498Szrj 573*38fd1498SzrjWcast-align=strict 574*38fd1498SzrjCommon Var(warn_cast_align,2) Warning 575*38fd1498SzrjWarn about pointer casts which increase alignment. 576*38fd1498Szrj 577*38fd1498SzrjWcpp 578*38fd1498SzrjCommon Var(warn_cpp) Init(1) Warning 579*38fd1498SzrjWarn when a #warning directive is encountered. 580*38fd1498Szrj 581*38fd1498SzrjWdeprecated-declarations 582*38fd1498SzrjCommon Var(warn_deprecated_decl) Init(1) Warning 583*38fd1498SzrjWarn about uses of __attribute__((deprecated)) declarations. 584*38fd1498Szrj 585*38fd1498SzrjWdisabled-optimization 586*38fd1498SzrjCommon Var(warn_disabled_optimization) Warning 587*38fd1498SzrjWarn when an optimization pass is disabled. 588*38fd1498Szrj 589*38fd1498SzrjWerror 590*38fd1498SzrjCommon Var(warnings_are_errors) 591*38fd1498SzrjTreat all warnings as errors. 592*38fd1498Szrj 593*38fd1498SzrjWerror= 594*38fd1498SzrjCommon Joined 595*38fd1498SzrjTreat specified warning as error. 596*38fd1498Szrj 597*38fd1498SzrjWextra 598*38fd1498SzrjCommon Var(extra_warnings) Warning 599*38fd1498SzrjPrint extra (possibly unwanted) warnings. 600*38fd1498Szrj 601*38fd1498SzrjWfatal-errors 602*38fd1498SzrjCommon Var(flag_fatal_errors) 603*38fd1498SzrjExit on the first error occurred. 604*38fd1498Szrj 605*38fd1498SzrjWframe-larger-than= 606*38fd1498SzrjCommon RejectNegative Joined UInteger Warning 607*38fd1498Szrj-Wframe-larger-than=<number> Warn if a function's stack frame requires more than <number> bytes. 608*38fd1498Szrj 609*38fd1498SzrjWfree-nonheap-object 610*38fd1498SzrjCommon Var(warn_free_nonheap_object) Init(1) Warning 611*38fd1498SzrjWarn when attempting to free a non-heap object. 612*38fd1498Szrj 613*38fd1498SzrjWhsa 614*38fd1498SzrjCommon Var(warn_hsa) Init(1) Warning 615*38fd1498SzrjWarn when a function cannot be expanded to HSAIL. 616*38fd1498Szrj 617*38fd1498SzrjWimplicit-fallthrough 618*38fd1498SzrjCommon Alias(Wimplicit-fallthrough=,3,0) Warning 619*38fd1498Szrj 620*38fd1498SzrjWimplicit-fallthrough= 621*38fd1498SzrjCommon Var(warn_implicit_fallthrough) RejectNegative Joined UInteger Warning IntegerRange(0, 5) 622*38fd1498SzrjWarn when a switch case falls through. 623*38fd1498Szrj 624*38fd1498SzrjWinline 625*38fd1498SzrjCommon Var(warn_inline) Warning 626*38fd1498SzrjWarn when an inlined function cannot be inlined. 627*38fd1498Szrj 628*38fd1498SzrjWinvalid-memory-model 629*38fd1498SzrjCommon Var(warn_invalid_memory_model) Init(1) Warning 630*38fd1498SzrjWarn when an atomic memory model parameter is known to be outside the valid range. 631*38fd1498Szrj 632*38fd1498SzrjWlarger-than- 633*38fd1498SzrjCommon RejectNegative Joined Warning Undocumented Alias(Wlarger-than=) 634*38fd1498Szrj 635*38fd1498SzrjWlarger-than= 636*38fd1498SzrjCommon RejectNegative Joined UInteger Warning 637*38fd1498Szrj-Wlarger-than=<number> Warn if an object is larger than <number> bytes. 638*38fd1498Szrj 639*38fd1498SzrjWnonnull-compare 640*38fd1498SzrjVar(warn_nonnull_compare) Warning 641*38fd1498SzrjWarn if comparing pointer parameter with nonnull attribute with NULL. 642*38fd1498Szrj 643*38fd1498SzrjWnull-dereference 644*38fd1498SzrjCommon Var(warn_null_dereference) Warning 645*38fd1498SzrjWarn if dereferencing a NULL pointer may lead to erroneous or undefined behavior. 646*38fd1498Szrj 647*38fd1498SzrjWunsafe-loop-optimizations 648*38fd1498SzrjCommon Var(warn_unsafe_loop_optimizations) Warning 649*38fd1498SzrjWarn if the loop cannot be optimized due to nontrivial assumptions. 650*38fd1498Szrj 651*38fd1498SzrjWmissing-noreturn 652*38fd1498SzrjCommon Warning Alias(Wsuggest-attribute=noreturn) 653*38fd1498Szrj 654*38fd1498SzrjWodr 655*38fd1498SzrjCommon Var(warn_odr_violations) Init(1) Warning 656*38fd1498SzrjWarn about some C++ One Definition Rule violations during link time optimization. 657*38fd1498Szrj 658*38fd1498SzrjWoverflow 659*38fd1498SzrjCommon Var(warn_overflow) Init(1) Warning 660*38fd1498SzrjWarn about overflow in arithmetic expressions. 661*38fd1498Szrj 662*38fd1498SzrjWlto-type-mismatch 663*38fd1498SzrjCommon Var(warn_lto_type_mismatch) Init(1) Warning 664*38fd1498SzrjDuring link time optimization warn about mismatched types of global declarations. 665*38fd1498Szrj 666*38fd1498SzrjWpacked 667*38fd1498SzrjCommon Var(warn_packed) Warning 668*38fd1498SzrjWarn when the packed attribute has no effect on struct layout. 669*38fd1498Szrj 670*38fd1498SzrjWpadded 671*38fd1498SzrjCommon Var(warn_padded) Warning 672*38fd1498SzrjWarn when padding is required to align structure members. 673*38fd1498Szrj 674*38fd1498SzrjWpedantic 675*38fd1498SzrjCommon Var(pedantic) Init(0) Warning 676*38fd1498SzrjIssue warnings needed for strict compliance to the standard. 677*38fd1498Szrj 678*38fd1498SzrjWreturn-local-addr 679*38fd1498SzrjCommon Var(warn_return_local_addr) Init(1) Warning 680*38fd1498SzrjWarn about returning a pointer/reference to a local or temporary variable. 681*38fd1498Szrj 682*38fd1498SzrjWshadow 683*38fd1498SzrjCommon Var(warn_shadow) Warning 684*38fd1498SzrjWarn when one variable shadows another. Same as -Wshadow=global. 685*38fd1498Szrj 686*38fd1498SzrjWshadow=global 687*38fd1498SzrjCommon Warning Alias(Wshadow) 688*38fd1498SzrjWarn when one variable shadows another (globally). 689*38fd1498Szrj 690*38fd1498SzrjWshadow=local 691*38fd1498SzrjCommon Var(warn_shadow_local) Warning EnabledBy(Wshadow) 692*38fd1498SzrjWarn when one local variable shadows another local variable or parameter. 693*38fd1498Szrj 694*38fd1498SzrjWshadow-local 695*38fd1498SzrjCommon Warning Undocumented Alias(Wshadow=local) 696*38fd1498Szrj 697*38fd1498SzrjWshadow=compatible-local 698*38fd1498SzrjCommon Var(warn_shadow_compatible_local) Warning EnabledBy(Wshadow=local) 699*38fd1498SzrjWarn when one local variable shadows another local variable or parameter of compatible type. 700*38fd1498Szrj 701*38fd1498SzrjWshadow-compatible-local 702*38fd1498SzrjCommon Warning Undocumented Alias(Wshadow=compatible-local) 703*38fd1498Szrj 704*38fd1498SzrjWstack-protector 705*38fd1498SzrjCommon Var(warn_stack_protect) Warning 706*38fd1498SzrjWarn when not issuing stack smashing protection for some reason. 707*38fd1498Szrj 708*38fd1498SzrjWstack-usage= 709*38fd1498SzrjCommon Joined RejectNegative UInteger Var(warn_stack_usage) Warning 710*38fd1498Szrj-Wstack-usage=<number> Warn if stack usage might be larger than specified amount. 711*38fd1498Szrj 712*38fd1498SzrjWstrict-aliasing 713*38fd1498SzrjCommon Warning 714*38fd1498SzrjWarn about code which might break strict aliasing rules. 715*38fd1498Szrj 716*38fd1498SzrjWstrict-aliasing= 717*38fd1498SzrjCommon Joined RejectNegative UInteger Var(warn_strict_aliasing) Warning 718*38fd1498SzrjWarn about code which might break strict aliasing rules. 719*38fd1498Szrj 720*38fd1498SzrjWstrict-overflow 721*38fd1498SzrjCommon Warning 722*38fd1498SzrjWarn about optimizations that assume that signed overflow is undefined. 723*38fd1498Szrj 724*38fd1498SzrjWstrict-overflow= 725*38fd1498SzrjCommon Joined RejectNegative UInteger Var(warn_strict_overflow) Warning 726*38fd1498SzrjWarn about optimizations that assume that signed overflow is undefined. 727*38fd1498Szrj 728*38fd1498SzrjWsuggest-attribute=cold 729*38fd1498SzrjCommon Var(warn_suggest_attribute_cold) Warning 730*38fd1498SzrjWarn about functions which might be candidates for __attribute__((cold)). 731*38fd1498Szrj 732*38fd1498SzrjWsuggest-attribute=const 733*38fd1498SzrjCommon Var(warn_suggest_attribute_const) Warning 734*38fd1498SzrjWarn about functions which might be candidates for __attribute__((const)). 735*38fd1498Szrj 736*38fd1498SzrjWsuggest-attribute=pure 737*38fd1498SzrjCommon Var(warn_suggest_attribute_pure) Warning 738*38fd1498SzrjWarn about functions which might be candidates for __attribute__((pure)). 739*38fd1498Szrj 740*38fd1498SzrjWsuggest-attribute=noreturn 741*38fd1498SzrjCommon Var(warn_suggest_attribute_noreturn) Warning 742*38fd1498SzrjWarn about functions which might be candidates for __attribute__((noreturn)). 743*38fd1498Szrj 744*38fd1498SzrjWsuggest-attribute=malloc 745*38fd1498SzrjCommon Var(warn_suggest_attribute_malloc) Warning 746*38fd1498SzrjWarn about functions which might be candidates for __attribute__((malloc)). 747*38fd1498Szrj 748*38fd1498SzrjWsuggest-final-types 749*38fd1498SzrjCommon Var(warn_suggest_final_types) Warning 750*38fd1498SzrjWarn about C++ polymorphic types where adding final keyword would improve code quality. 751*38fd1498Szrj 752*38fd1498SzrjWsuggest-final-methods 753*38fd1498SzrjCommon Var(warn_suggest_final_methods) Warning 754*38fd1498SzrjWarn about C++ virtual methods where adding final keyword would improve code quality. 755*38fd1498Szrj 756*38fd1498SzrjWswitch-unreachable 757*38fd1498SzrjCommon Var(warn_switch_unreachable) Warning Init(1) 758*38fd1498SzrjWarn about statements between switch's controlling expression and the first 759*38fd1498Szrjcase. 760*38fd1498Szrj 761*38fd1498SzrjWsystem-headers 762*38fd1498SzrjCommon Var(warn_system_headers) Warning 763*38fd1498SzrjDo not suppress warnings from system headers. 764*38fd1498Szrj 765*38fd1498SzrjWtrampolines 766*38fd1498SzrjCommon Var(warn_trampolines) Warning 767*38fd1498SzrjWarn whenever a trampoline is generated. 768*38fd1498Szrj 769*38fd1498SzrjWtype-limits 770*38fd1498SzrjCommon Var(warn_type_limits) Warning EnabledBy(Wextra) 771*38fd1498SzrjWarn if a comparison is always true or always false due to the limited range of the data type. 772*38fd1498Szrj 773*38fd1498SzrjWuninitialized 774*38fd1498SzrjCommon Var(warn_uninitialized) Warning EnabledBy(Wextra) 775*38fd1498SzrjWarn about uninitialized automatic variables. 776*38fd1498Szrj 777*38fd1498SzrjWmaybe-uninitialized 778*38fd1498SzrjCommon Var(warn_maybe_uninitialized) Warning EnabledBy(Wuninitialized) 779*38fd1498SzrjWarn about maybe uninitialized automatic variables. 780*38fd1498Szrj 781*38fd1498SzrjWunreachable-code 782*38fd1498SzrjCommon Ignore Warning 783*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 784*38fd1498Szrj 785*38fd1498SzrjWunused 786*38fd1498SzrjCommon Var(warn_unused) Init(0) Warning 787*38fd1498SzrjEnable all -Wunused- warnings. 788*38fd1498Szrj 789*38fd1498SzrjWunused-but-set-parameter 790*38fd1498SzrjCommon Var(warn_unused_but_set_parameter) Warning EnabledBy(Wunused && Wextra) 791*38fd1498SzrjWarn when a function parameter is only set, otherwise unused. 792*38fd1498Szrj 793*38fd1498SzrjWunused-but-set-variable 794*38fd1498SzrjCommon Var(warn_unused_but_set_variable) Warning EnabledBy(Wunused) 795*38fd1498SzrjWarn when a variable is only set, otherwise unused. 796*38fd1498Szrj 797*38fd1498SzrjWunused-function 798*38fd1498SzrjCommon Var(warn_unused_function) Warning EnabledBy(Wunused) 799*38fd1498SzrjWarn when a function is unused. 800*38fd1498Szrj 801*38fd1498SzrjWunused-label 802*38fd1498SzrjCommon Var(warn_unused_label) Warning EnabledBy(Wunused) 803*38fd1498SzrjWarn when a label is unused. 804*38fd1498Szrj 805*38fd1498SzrjWunused-parameter 806*38fd1498SzrjCommon Var(warn_unused_parameter) Warning EnabledBy(Wunused && Wextra) 807*38fd1498SzrjWarn when a function parameter is unused. 808*38fd1498Szrj 809*38fd1498SzrjWunused-value 810*38fd1498SzrjCommon Var(warn_unused_value) Warning EnabledBy(Wunused) 811*38fd1498SzrjWarn when an expression value is unused. 812*38fd1498Szrj 813*38fd1498SzrjWunused-variable 814*38fd1498SzrjCommon Var(warn_unused_variable) Warning EnabledBy(Wunused) 815*38fd1498SzrjWarn when a variable is unused. 816*38fd1498Szrj 817*38fd1498SzrjWcoverage-mismatch 818*38fd1498SzrjCommon Var(warn_coverage_mismatch) Init(1) Warning 819*38fd1498SzrjWarn in case profiles in -fprofile-use do not match. 820*38fd1498Szrj 821*38fd1498SzrjWvector-operation-performance 822*38fd1498SzrjCommon Var(warn_vector_operation_performance) Warning 823*38fd1498SzrjWarn when a vector operation is compiled outside the SIMD. 824*38fd1498Szrj 825*38fd1498SzrjXassembler 826*38fd1498SzrjDriver Separate 827*38fd1498Szrj 828*38fd1498SzrjXlinker 829*38fd1498SzrjDriver Separate 830*38fd1498Szrj 831*38fd1498SzrjXpreprocessor 832*38fd1498SzrjDriver Separate 833*38fd1498Szrj 834*38fd1498SzrjZ 835*38fd1498SzrjDriver 836*38fd1498Szrj 837*38fd1498Szrjaux-info 838*38fd1498SzrjCommon Separate Var(aux_info_file_name) 839*38fd1498Szrj-aux-info <file> Emit declaration information into <file>. 840*38fd1498Szrj 841*38fd1498Szrjaux-info= 842*38fd1498SzrjCommon Joined Alias(aux-info) 843*38fd1498Szrj 844*38fd1498Szrjauxbase 845*38fd1498SzrjCommon Separate RejectDriver Var(aux_base_name) 846*38fd1498Szrj 847*38fd1498Szrjauxbase-strip 848*38fd1498SzrjCommon Separate RejectDriver 849*38fd1498Szrj 850*38fd1498Szrjcoverage 851*38fd1498SzrjDriver 852*38fd1498Szrj 853*38fd1498Szrjc 854*38fd1498SzrjDriver 855*38fd1498Szrj 856*38fd1498Szrjd 857*38fd1498SzrjCommon Joined 858*38fd1498Szrj-d<letters> Enable dumps from specific passes of the compiler. 859*38fd1498Szrj 860*38fd1498Szrjdumpbase 861*38fd1498SzrjCommon Separate Var(dump_base_name) 862*38fd1498Szrj-dumpbase <file> Set the file basename to be used for dumps. 863*38fd1498Szrj 864*38fd1498Szrjdumpdir 865*38fd1498SzrjCommon Separate Var(dump_dir_name) 866*38fd1498Szrj-dumpdir <dir> Set the directory name to be used for dumps. 867*38fd1498Szrj 868*38fd1498Szrjdumpmachine 869*38fd1498SzrjDriver 870*38fd1498Szrj 871*38fd1498Szrjdumpspecs 872*38fd1498SzrjDriver 873*38fd1498Szrj 874*38fd1498Szrjdumpversion 875*38fd1498SzrjDriver 876*38fd1498Szrj 877*38fd1498Szrjdumpfullversion 878*38fd1498SzrjDriver 879*38fd1498Szrj 880*38fd1498Szrje 881*38fd1498SzrjDriver Joined Separate 882*38fd1498Szrj 883*38fd1498Szrj; This option has historically been passed down to the linker by an 884*38fd1498Szrj; accident of a %{e*} spec, so ensure it continues to be passed down 885*38fd1498Szrj; as a single option. The supported option for this purpose is 886*38fd1498Szrj; -rdynamic. See PR 47390. 887*38fd1498Szrjexport-dynamic 888*38fd1498SzrjDriver Undocumented 889*38fd1498Szrj 890*38fd1498Szrj; The version of the C++ ABI in use. The following values are allowed: 891*38fd1498Szrj; 892*38fd1498Szrj; 0: The version of the ABI believed most conformant with the C++ ABI 893*38fd1498Szrj; specification. This ABI may change as bugs are discovered and fixed. 894*38fd1498Szrj; Therefore, 0 will not necessarily indicate the same ABI in different 895*38fd1498Szrj; versions of G++. 896*38fd1498Szrj; 897*38fd1498Szrj; 1: The version of the ABI first used in G++ 3.2. No longer selectable. 898*38fd1498Szrj; 899*38fd1498Szrj; 2: The version of the ABI first used in G++ 3.4, and the default 900*38fd1498Szrj; until GCC 4.9. 901*38fd1498Szrj; 902*38fd1498Szrj; 3: The version of the ABI that fixes the missing underscore 903*38fd1498Szrj; in template non-type arguments of pointer type. 904*38fd1498Szrj; 905*38fd1498Szrj; 4: The version of the ABI that introduces unambiguous mangling of 906*38fd1498Szrj; vector types. First selectable in G++ 4.5. 907*38fd1498Szrj; 908*38fd1498Szrj; 5: The version of the ABI that ignores attribute const/noreturn 909*38fd1498Szrj; in function pointer mangling, and corrects mangling of decltype and 910*38fd1498Szrj; function parameters used in other parameters and the return type. 911*38fd1498Szrj; First selectable in G++ 4.6. 912*38fd1498Szrj; 913*38fd1498Szrj; 6: The version of the ABI that doesn't promote scoped enums to int and 914*38fd1498Szrj; changes the mangling of template argument packs, const/static_cast, 915*38fd1498Szrj; prefix ++ and --, and a class scope function used as a template 916*38fd1498Szrj; argument. 917*38fd1498Szrj; First selectable in G++ 4.7. 918*38fd1498Szrj; 919*38fd1498Szrj; 7: The version of the ABI that treats nullptr_t as a builtin type and 920*38fd1498Szrj; corrects the mangling of lambdas in default argument scope. 921*38fd1498Szrj; First selectable in G++ 4.8. 922*38fd1498Szrj; 923*38fd1498Szrj; 8: The version of the ABI that corrects the substitution behavior of 924*38fd1498Szrj; function types with function-cv-qualifiers. 925*38fd1498Szrj; First selectable in G++ 4.9 and default in G++ 5. 926*38fd1498Szrj; 927*38fd1498Szrj; 9: The version of the ABI that corrects the alignment of nullptr_t. 928*38fd1498Szrj; First selectable and default in G++ 5.2. 929*38fd1498Szrj; 930*38fd1498Szrj; 10: The version of the ABI that mangles attributes that affect type 931*38fd1498Szrj; identity, such as ia32 calling convention attributes (stdcall, etc.) 932*38fd1498Szrj; Default in G++ 6 (set in c_common_post_options). 933*38fd1498Szrj; 934*38fd1498Szrj; 11: The version of the ABI that corrects mangling of sizeof... expressions 935*38fd1498Szrj; and introduces new inheriting constructor handling. 936*38fd1498Szrj; Default in G++ 7. 937*38fd1498Szrj; 938*38fd1498Szrj; 12: Corrects the calling convention for classes with only deleted copy/move 939*38fd1498Szrj; constructors and changes passing/returning of empty records. 940*38fd1498Szrj; Default in G++ 8. 941*38fd1498Szrj; 942*38fd1498Szrj; Additional positive integers will be assigned as new versions of 943*38fd1498Szrj; the ABI become the default version of the ABI. 944*38fd1498Szrjfabi-version= 945*38fd1498SzrjCommon Joined RejectNegative UInteger Var(flag_abi_version) Init(0) 946*38fd1498SzrjThe version of the C++ ABI in use. 947*38fd1498Szrj 948*38fd1498Szrjfaggressive-loop-optimizations 949*38fd1498SzrjCommon Report Var(flag_aggressive_loop_optimizations) Optimization Init(1) 950*38fd1498SzrjAggressively optimize loops using language constraints. 951*38fd1498Szrj 952*38fd1498Szrjfalign-functions 953*38fd1498SzrjCommon Report Var(align_functions,0) Optimization UInteger 954*38fd1498SzrjAlign the start of functions. 955*38fd1498Szrj 956*38fd1498Szrjfalign-functions= 957*38fd1498SzrjCommon RejectNegative Joined UInteger Var(align_functions) Optimization 958*38fd1498Szrj 959*38fd1498Szrjflimit-function-alignment 960*38fd1498SzrjCommon Report Var(flag_limit_function_alignment) Optimization Init(0) 961*38fd1498Szrj 962*38fd1498Szrjfalign-jumps 963*38fd1498SzrjCommon Report Var(align_jumps,0) Optimization UInteger 964*38fd1498SzrjAlign labels which are only reached by jumping. 965*38fd1498Szrj 966*38fd1498Szrjfalign-jumps= 967*38fd1498SzrjCommon RejectNegative Joined UInteger Var(align_jumps) Optimization 968*38fd1498Szrj 969*38fd1498Szrjfalign-labels 970*38fd1498SzrjCommon Report Var(align_labels,0) Optimization UInteger 971*38fd1498SzrjAlign all labels. 972*38fd1498Szrj 973*38fd1498Szrjfalign-labels= 974*38fd1498SzrjCommon RejectNegative Joined UInteger Var(align_labels) Optimization 975*38fd1498Szrj 976*38fd1498Szrjfalign-loops 977*38fd1498SzrjCommon Report Var(align_loops,0) Optimization UInteger 978*38fd1498SzrjAlign the start of loops. 979*38fd1498Szrj 980*38fd1498Szrjfalign-loops= 981*38fd1498SzrjCommon RejectNegative Joined UInteger Var(align_loops) Optimization 982*38fd1498Szrj 983*38fd1498Szrjfargument-alias 984*38fd1498SzrjCommon Ignore 985*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 986*38fd1498Szrj 987*38fd1498Szrjfargument-noalias 988*38fd1498SzrjCommon Ignore 989*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 990*38fd1498Szrj 991*38fd1498Szrjfargument-noalias-global 992*38fd1498SzrjCommon Ignore 993*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 994*38fd1498Szrj 995*38fd1498Szrjfargument-noalias-anything 996*38fd1498SzrjCommon Ignore 997*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 998*38fd1498Szrj 999*38fd1498Szrjfsanitize= 1000*38fd1498SzrjCommon Driver Report Joined 1001*38fd1498SzrjSelect what to sanitize. 1002*38fd1498Szrj 1003*38fd1498Szrjfsanitize-coverage= 1004*38fd1498SzrjCommon Report Joined 1005*38fd1498SzrjSelect type of coverage sanitization. 1006*38fd1498Szrj 1007*38fd1498Szrjfasan-shadow-offset= 1008*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 1009*38fd1498Szrj-fasan-shadow-offset=<number> Use custom shadow memory offset. 1010*38fd1498Szrj 1011*38fd1498Szrjfsanitize-sections= 1012*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 1013*38fd1498Szrj-fsanitize-sections=<sec1,sec2,...> Sanitize global variables 1014*38fd1498Szrjin user-defined sections. 1015*38fd1498Szrj 1016*38fd1498Szrjfsanitize-recover= 1017*38fd1498SzrjCommon Report Joined 1018*38fd1498SzrjAfter diagnosing undefined behavior attempt to continue execution. 1019*38fd1498Szrj 1020*38fd1498Szrjfsanitize-recover 1021*38fd1498SzrjCommon Report 1022*38fd1498SzrjThis switch is deprecated; use -fsanitize-recover= instead. 1023*38fd1498Szrj 1024*38fd1498Szrjfsanitize-address-use-after-scope 1025*38fd1498SzrjCommon Driver Report Var(flag_sanitize_address_use_after_scope) Init(0) 1026*38fd1498Szrj 1027*38fd1498Szrjfsanitize-undefined-trap-on-error 1028*38fd1498SzrjCommon Driver Report Var(flag_sanitize_undefined_trap_on_error) Init(0) 1029*38fd1498SzrjUse trap instead of a library function for undefined behavior sanitization. 1030*38fd1498Szrj 1031*38fd1498Szrjfasynchronous-unwind-tables 1032*38fd1498SzrjCommon Report Var(flag_asynchronous_unwind_tables) Optimization 1033*38fd1498SzrjGenerate unwind tables that are exact at each instruction boundary. 1034*38fd1498Szrj 1035*38fd1498Szrjfauto-inc-dec 1036*38fd1498SzrjCommon Report Var(flag_auto_inc_dec) Init(1) Optimization 1037*38fd1498SzrjGenerate auto-inc/dec instructions. 1038*38fd1498Szrj 1039*38fd1498Szrjfauto-profile 1040*38fd1498SzrjCommon Report Var(flag_auto_profile) 1041*38fd1498SzrjUse sample profile information for call graph node weights. The default 1042*38fd1498Szrjprofile file is fbdata.afdo in 'pwd'. 1043*38fd1498Szrj 1044*38fd1498Szrjfauto-profile= 1045*38fd1498SzrjCommon Joined RejectNegative Var(auto_profile_file) 1046*38fd1498SzrjUse sample profile information for call graph node weights. The profile 1047*38fd1498Szrjfile is specified in the argument. 1048*38fd1498Szrj 1049*38fd1498Szrj; -fcheck-bounds causes gcc to generate array bounds checks. 1050*38fd1498Szrj; For C, C++ and ObjC: defaults off. 1051*38fd1498Szrj; For Java: defaults to on. 1052*38fd1498Szrj; For Fortran: defaults to off. 1053*38fd1498Szrjfbounds-check 1054*38fd1498SzrjCommon Report Var(flag_bounds_check) 1055*38fd1498SzrjGenerate code to check bounds before indexing arrays. 1056*38fd1498Szrj 1057*38fd1498Szrjfbranch-count-reg 1058*38fd1498SzrjCommon Report Var(flag_branch_on_count_reg) Optimization 1059*38fd1498SzrjReplace add, compare, branch with branch on count register. 1060*38fd1498Szrj 1061*38fd1498Szrjfbranch-probabilities 1062*38fd1498SzrjCommon Report Var(flag_branch_probabilities) Optimization 1063*38fd1498SzrjUse profiling information for branch probabilities. 1064*38fd1498Szrj 1065*38fd1498Szrjfbranch-target-load-optimize 1066*38fd1498SzrjCommon Report Var(flag_branch_target_load_optimize) Optimization 1067*38fd1498SzrjPerform branch target load optimization before prologue / epilogue threading. 1068*38fd1498Szrj 1069*38fd1498Szrjfbranch-target-load-optimize2 1070*38fd1498SzrjCommon Report Var(flag_branch_target_load_optimize2) Optimization 1071*38fd1498SzrjPerform branch target load optimization after prologue / epilogue threading. 1072*38fd1498Szrj 1073*38fd1498Szrjfbtr-bb-exclusive 1074*38fd1498SzrjCommon Report Var(flag_btr_bb_exclusive) Optimization 1075*38fd1498SzrjRestrict target load migration not to re-use registers in any basic block. 1076*38fd1498Szrj 1077*38fd1498Szrjfcall-saved- 1078*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 1079*38fd1498Szrj-fcall-saved-<register> Mark <register> as being preserved across functions. 1080*38fd1498Szrj 1081*38fd1498Szrjfcall-used- 1082*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 1083*38fd1498Szrj-fcall-used-<register> Mark <register> as being corrupted by function calls. 1084*38fd1498Szrj 1085*38fd1498Szrj; Nonzero for -fcaller-saves: allocate values in regs that need to 1086*38fd1498Szrj; be saved across function calls, if that produces overall better code. 1087*38fd1498Szrj; Optional now, so people can test it. 1088*38fd1498Szrjfcaller-saves 1089*38fd1498SzrjCommon Report Var(flag_caller_saves) Optimization 1090*38fd1498SzrjSave registers around function calls. 1091*38fd1498Szrj 1092*38fd1498Szrjfcheck-data-deps 1093*38fd1498SzrjCommon Report Var(flag_check_data_deps) 1094*38fd1498SzrjThis switch is deprecated; do not use. 1095*38fd1498Szrj 1096*38fd1498Szrjfcheck-new 1097*38fd1498SzrjCommon Var(flag_check_new) 1098*38fd1498SzrjCheck the return value of new in C++. 1099*38fd1498Szrj 1100*38fd1498Szrjfchecking 1101*38fd1498SzrjCommon Var(flag_checking) Init(CHECKING_P ? ENABLE_EXTRA_CHECKING ? 2 : 1 : 0) 1102*38fd1498SzrjPerform internal consistency checkings. 1103*38fd1498Szrj 1104*38fd1498Szrjfchecking= 1105*38fd1498SzrjCommon Joined RejectNegative UInteger Var(flag_checking) 1106*38fd1498SzrjPerform internal consistency checkings. 1107*38fd1498Szrj 1108*38fd1498Szrjfcode-hoisting 1109*38fd1498SzrjCommon Report Var(flag_code_hoisting) Optimization 1110*38fd1498SzrjEnable code hoisting. 1111*38fd1498Szrj 1112*38fd1498Szrjfcombine-stack-adjustments 1113*38fd1498SzrjCommon Report Var(flag_combine_stack_adjustments) Optimization 1114*38fd1498SzrjLooks for opportunities to reduce stack adjustments and stack references. 1115*38fd1498Szrj 1116*38fd1498Szrjfcommon 1117*38fd1498SzrjCommon Report Var(flag_no_common,0) 1118*38fd1498SzrjDo not put uninitialized globals in the common section. 1119*38fd1498Szrj 1120*38fd1498Szrjfcompare-debug 1121*38fd1498SzrjDriver 1122*38fd1498Szrj; Converted by the driver to -fcompare-debug= options. 1123*38fd1498Szrj 1124*38fd1498Szrjfcompare-debug= 1125*38fd1498SzrjCommon Driver JoinedOrMissing RejectNegative Var(flag_compare_debug_opt) 1126*38fd1498Szrj-fcompare-debug[=<opts>] Compile with and without e.g. -gtoggle, and compare the final-insns dump. 1127*38fd1498Szrj 1128*38fd1498Szrjfcompare-debug-second 1129*38fd1498SzrjCommon Driver RejectNegative Var(flag_compare_debug) 1130*38fd1498SzrjRun only the second compilation of -fcompare-debug. 1131*38fd1498Szrj 1132*38fd1498Szrjfcompare-elim 1133*38fd1498SzrjCommon Report Var(flag_compare_elim_after_reload) Optimization 1134*38fd1498SzrjPerform comparison elimination after register allocation has finished. 1135*38fd1498Szrj 1136*38fd1498Szrjfconserve-stack 1137*38fd1498SzrjCommon Var(flag_conserve_stack) Optimization 1138*38fd1498SzrjDo not perform optimizations increasing noticeably stack usage. 1139*38fd1498Szrj 1140*38fd1498Szrjfcprop-registers 1141*38fd1498SzrjCommon Report Var(flag_cprop_registers) Optimization 1142*38fd1498SzrjPerform a register copy-propagation optimization pass. 1143*38fd1498Szrj 1144*38fd1498Szrjfcrossjumping 1145*38fd1498SzrjCommon Report Var(flag_crossjumping) Optimization 1146*38fd1498SzrjPerform cross-jumping optimization. 1147*38fd1498Szrj 1148*38fd1498Szrjfcse-follow-jumps 1149*38fd1498SzrjCommon Report Var(flag_cse_follow_jumps) Optimization 1150*38fd1498SzrjWhen running CSE, follow jumps to their targets. 1151*38fd1498Szrj 1152*38fd1498Szrjfcse-skip-blocks 1153*38fd1498SzrjCommon Ignore 1154*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 1155*38fd1498Szrj 1156*38fd1498Szrjfcx-limited-range 1157*38fd1498SzrjCommon Report Var(flag_cx_limited_range) Optimization SetByCombined 1158*38fd1498SzrjOmit range reduction step when performing complex division. 1159*38fd1498Szrj 1160*38fd1498Szrjfcx-fortran-rules 1161*38fd1498SzrjCommon Report Var(flag_cx_fortran_rules) Optimization 1162*38fd1498SzrjComplex multiplication and division follow Fortran rules. 1163*38fd1498Szrj 1164*38fd1498Szrjfdata-sections 1165*38fd1498SzrjCommon Report Var(flag_data_sections) 1166*38fd1498SzrjPlace data items into their own section. 1167*38fd1498Szrj 1168*38fd1498Szrjfdbg-cnt-list 1169*38fd1498SzrjCommon Report Var(common_deferred_options) Defer 1170*38fd1498SzrjList all available debugging counters with their limits and counts. 1171*38fd1498Szrj 1172*38fd1498Szrjfdbg-cnt= 1173*38fd1498SzrjCommon RejectNegative Joined Var(common_deferred_options) Defer 1174*38fd1498Szrj-fdbg-cnt=<counter>:<limit>[,<counter>:<limit>,...] Set the debug counter limit. 1175*38fd1498Szrj 1176*38fd1498Szrjfdebug-prefix-map= 1177*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 1178*38fd1498Szrj-fdebug-prefix-map=<old>=<new> Map one directory name to another in debug information. 1179*38fd1498Szrj 1180*38fd1498Szrjffile-prefix-map= 1181*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 1182*38fd1498Szrj-ffile-prefix-map=<old>=<new> Map one directory name to another in compilation result. 1183*38fd1498Szrj 1184*38fd1498Szrjfdebug-types-section 1185*38fd1498SzrjCommon Report Var(flag_debug_types_section) Init(0) 1186*38fd1498SzrjOutput .debug_types section when using DWARF v4 debuginfo. 1187*38fd1498Szrj 1188*38fd1498Szrj; Nonzero for -fdefer-pop: don't pop args after each function call 1189*38fd1498Szrj; instead save them up to pop many calls' args with one insns. 1190*38fd1498Szrjfdefer-pop 1191*38fd1498SzrjCommon Report Var(flag_defer_pop) Optimization 1192*38fd1498SzrjDefer popping functions args from stack until later. 1193*38fd1498Szrj 1194*38fd1498Szrjfdelayed-branch 1195*38fd1498SzrjCommon Report Var(flag_delayed_branch) Optimization 1196*38fd1498SzrjAttempt to fill delay slots of branch instructions. 1197*38fd1498Szrj 1198*38fd1498Szrjfdelete-dead-exceptions 1199*38fd1498SzrjCommon Report Var(flag_delete_dead_exceptions) Init(0) Optimization 1200*38fd1498SzrjDelete dead instructions that may throw exceptions. 1201*38fd1498Szrj 1202*38fd1498Szrjfdelete-null-pointer-checks 1203*38fd1498SzrjCommon Report Var(flag_delete_null_pointer_checks) Init(-1) Optimization 1204*38fd1498SzrjDelete useless null pointer checks. 1205*38fd1498Szrj 1206*38fd1498Szrjfdevirtualize-at-ltrans 1207*38fd1498SzrjCommon Report Var(flag_ltrans_devirtualize) 1208*38fd1498SzrjStream extra data to support more aggressive devirtualization in LTO local transformation mode. 1209*38fd1498Szrj 1210*38fd1498Szrjfdevirtualize-speculatively 1211*38fd1498SzrjCommon Report Var(flag_devirtualize_speculatively) Optimization 1212*38fd1498SzrjPerform speculative devirtualization. 1213*38fd1498Szrj 1214*38fd1498Szrjfdevirtualize 1215*38fd1498SzrjCommon Report Var(flag_devirtualize) Optimization 1216*38fd1498SzrjTry to convert virtual calls to direct ones. 1217*38fd1498Szrj 1218*38fd1498Szrjfdiagnostics-show-location= 1219*38fd1498SzrjCommon Joined RejectNegative Enum(diagnostic_prefixing_rule) 1220*38fd1498Szrj-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics. 1221*38fd1498Szrj 1222*38fd1498Szrj; Required for these enum values. 1223*38fd1498SzrjSourceInclude 1224*38fd1498Szrjpretty-print.h 1225*38fd1498Szrj 1226*38fd1498SzrjEnum 1227*38fd1498SzrjName(diagnostic_prefixing_rule) Type(int) 1228*38fd1498Szrj 1229*38fd1498SzrjEnumValue 1230*38fd1498SzrjEnum(diagnostic_prefixing_rule) String(once) Value(DIAGNOSTICS_SHOW_PREFIX_ONCE) 1231*38fd1498Szrj 1232*38fd1498SzrjEnumValue 1233*38fd1498SzrjEnum(diagnostic_prefixing_rule) String(every-line) Value(DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE) 1234*38fd1498Szrj 1235*38fd1498Szrjfdiagnostics-show-caret 1236*38fd1498SzrjCommon Var(flag_diagnostics_show_caret) Init(1) 1237*38fd1498SzrjShow the source line with a caret indicating the column. 1238*38fd1498Szrj 1239*38fd1498Szrjfdiagnostics-color 1240*38fd1498SzrjCommon Alias(fdiagnostics-color=,always,never) 1241*38fd1498Szrj; 1242*38fd1498Szrj 1243*38fd1498Szrjfdiagnostics-color= 1244*38fd1498SzrjDriver Common Joined RejectNegative Var(flag_diagnostics_show_color) Enum(diagnostic_color_rule) Init(DIAGNOSTICS_COLOR_NO) 1245*38fd1498Szrj-fdiagnostics-color=[never|always|auto] Colorize diagnostics. 1246*38fd1498Szrj 1247*38fd1498Szrj; Required for these enum values. 1248*38fd1498SzrjSourceInclude 1249*38fd1498Szrjdiagnostic-color.h 1250*38fd1498Szrj 1251*38fd1498SzrjEnum 1252*38fd1498SzrjName(diagnostic_color_rule) Type(int) 1253*38fd1498Szrj 1254*38fd1498SzrjEnumValue 1255*38fd1498SzrjEnum(diagnostic_color_rule) String(never) Value(DIAGNOSTICS_COLOR_NO) 1256*38fd1498Szrj 1257*38fd1498SzrjEnumValue 1258*38fd1498SzrjEnum(diagnostic_color_rule) String(always) Value(DIAGNOSTICS_COLOR_YES) 1259*38fd1498Szrj 1260*38fd1498SzrjEnumValue 1261*38fd1498SzrjEnum(diagnostic_color_rule) String(auto) Value(DIAGNOSTICS_COLOR_AUTO) 1262*38fd1498Szrj 1263*38fd1498Szrjfdiagnostics-parseable-fixits 1264*38fd1498SzrjCommon Var(flag_diagnostics_parseable_fixits) 1265*38fd1498SzrjPrint fix-it hints in machine-readable form. 1266*38fd1498Szrj 1267*38fd1498Szrjfdiagnostics-generate-patch 1268*38fd1498SzrjCommon Var(flag_diagnostics_generate_patch) 1269*38fd1498SzrjPrint fix-it hints to stderr in unified diff format. 1270*38fd1498Szrj 1271*38fd1498Szrjfdiagnostics-show-option 1272*38fd1498SzrjCommon Var(flag_diagnostics_show_option) Init(1) 1273*38fd1498SzrjAmend appropriate diagnostic messages with the command line option that controls them. 1274*38fd1498Szrj 1275*38fd1498Szrjfdisable- 1276*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 1277*38fd1498Szrj-fdisable-[tree|rtl|ipa]-<pass>=range1+range2 disables an optimization pass. 1278*38fd1498Szrj 1279*38fd1498Szrjfenable- 1280*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 1281*38fd1498Szrj-fenable-[tree|rtl|ipa]-<pass>=range1+range2 enables an optimization pass. 1282*38fd1498Szrj 1283*38fd1498Szrjfdump- 1284*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 1285*38fd1498Szrj-fdump-<type> Dump various compiler internals to a file. 1286*38fd1498Szrj 1287*38fd1498Szrjfdump-final-insns 1288*38fd1498SzrjDriver RejectNegative 1289*38fd1498Szrj 1290*38fd1498Szrjfdump-final-insns= 1291*38fd1498SzrjCommon RejectNegative Joined Var(flag_dump_final_insns) 1292*38fd1498Szrj-fdump-final-insns=filename Dump to filename the insns at the end of translation. 1293*38fd1498Szrj 1294*38fd1498Szrjfdump-go-spec= 1295*38fd1498SzrjCommon RejectNegative Joined Var(flag_dump_go_spec) 1296*38fd1498Szrj-fdump-go-spec=filename Write all declarations to file as Go code. 1297*38fd1498Szrj 1298*38fd1498Szrjfdump-noaddr 1299*38fd1498SzrjCommon Report Var(flag_dump_noaddr) 1300*38fd1498SzrjSuppress output of addresses in debugging dumps. 1301*38fd1498Szrj 1302*38fd1498Szrjfreport-bug 1303*38fd1498SzrjCommon Driver Var(flag_report_bug) 1304*38fd1498SzrjCollect and dump debug information into temporary file if ICE in C/C++ 1305*38fd1498Szrjcompiler occurred. 1306*38fd1498Szrj 1307*38fd1498Szrjfdump-internal-locations 1308*38fd1498SzrjCommon Var(flag_dump_locations) Init(0) 1309*38fd1498SzrjDump detailed information on GCC's internal representation of source code locations. 1310*38fd1498Szrj 1311*38fd1498Szrjfdump-passes 1312*38fd1498SzrjCommon Var(flag_dump_passes) Init(0) 1313*38fd1498SzrjDump optimization passes. 1314*38fd1498Szrj 1315*38fd1498Szrjfdump-unnumbered 1316*38fd1498SzrjCommon Report Var(flag_dump_unnumbered) 1317*38fd1498SzrjSuppress output of instruction numbers, line number notes and addresses in debugging dumps. 1318*38fd1498Szrj 1319*38fd1498Szrjfdump-unnumbered-links 1320*38fd1498SzrjCommon Report Var(flag_dump_unnumbered_links) 1321*38fd1498SzrjSuppress output of previous and next insn numbers in debugging dumps. 1322*38fd1498Szrj 1323*38fd1498Szrjfdwarf2-cfi-asm 1324*38fd1498SzrjCommon Report Var(flag_dwarf2_cfi_asm) Init(HAVE_GAS_CFI_DIRECTIVE) 1325*38fd1498SzrjEnable CFI tables via GAS assembler directives. 1326*38fd1498Szrj 1327*38fd1498Szrjfearly-inlining 1328*38fd1498SzrjCommon Report Var(flag_early_inlining) Init(1) Optimization 1329*38fd1498SzrjPerform early inlining. 1330*38fd1498Szrj 1331*38fd1498Szrjfeliminate-dwarf2-dups 1332*38fd1498SzrjCommon Ignore 1333*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 1334*38fd1498Szrj 1335*38fd1498Szrjfipa-sra 1336*38fd1498SzrjCommon Report Var(flag_ipa_sra) Init(0) Optimization 1337*38fd1498SzrjPerform interprocedural reduction of aggregates. 1338*38fd1498Szrj 1339*38fd1498Szrjfeliminate-unused-debug-symbols 1340*38fd1498SzrjCommon Report Var(flag_debug_only_used_symbols) 1341*38fd1498SzrjPerform unused symbol elimination in debug info. 1342*38fd1498Szrj 1343*38fd1498Szrjfeliminate-unused-debug-types 1344*38fd1498SzrjCommon Report Var(flag_eliminate_unused_debug_types) Init(1) 1345*38fd1498SzrjPerform unused type elimination in debug info. 1346*38fd1498Szrj 1347*38fd1498Szrjfemit-class-debug-always 1348*38fd1498SzrjCommon Report Var(flag_emit_class_debug_always) Init(0) 1349*38fd1498SzrjDo not suppress C++ class debug information. 1350*38fd1498Szrj 1351*38fd1498Szrjfexceptions 1352*38fd1498SzrjCommon Report Var(flag_exceptions) Optimization 1353*38fd1498SzrjEnable exception handling. 1354*38fd1498Szrj 1355*38fd1498Szrjfexpensive-optimizations 1356*38fd1498SzrjCommon Report Var(flag_expensive_optimizations) Optimization 1357*38fd1498SzrjPerform a number of minor, expensive optimizations. 1358*38fd1498Szrj 1359*38fd1498Szrjfexcess-precision= 1360*38fd1498SzrjCommon Joined RejectNegative Enum(excess_precision) Var(flag_excess_precision_cmdline) Init(EXCESS_PRECISION_DEFAULT) SetByCombined 1361*38fd1498Szrj-fexcess-precision=[fast|standard] Specify handling of excess floating-point precision. 1362*38fd1498Szrj 1363*38fd1498SzrjEnum 1364*38fd1498SzrjName(excess_precision) Type(enum excess_precision) UnknownError(unknown excess precision style %qs) 1365*38fd1498Szrj 1366*38fd1498SzrjEnumValue 1367*38fd1498SzrjEnum(excess_precision) String(fast) Value(EXCESS_PRECISION_FAST) 1368*38fd1498Szrj 1369*38fd1498SzrjEnumValue 1370*38fd1498SzrjEnum(excess_precision) String(standard) Value(EXCESS_PRECISION_STANDARD) 1371*38fd1498Szrj 1372*38fd1498Szrj; Whether we permit the extended set of values for FLT_EVAL_METHOD 1373*38fd1498Szrj; introduced in ISO/IEC TS 18661-3, or limit ourselves to those in C99/C11. 1374*38fd1498Szrjfpermitted-flt-eval-methods= 1375*38fd1498SzrjCommon Joined RejectNegative Enum(permitted_flt_eval_methods) Var(flag_permitted_flt_eval_methods) Init(PERMITTED_FLT_EVAL_METHODS_DEFAULT) 1376*38fd1498Szrj-fpermitted-flt-eval-methods=[c11|ts-18661] Specify which values of FLT_EVAL_METHOD are permitted. 1377*38fd1498Szrj 1378*38fd1498SzrjEnum 1379*38fd1498SzrjName(permitted_flt_eval_methods) Type(enum permitted_flt_eval_methods) UnknownError(unknown specification for the set of FLT_EVAL_METHOD values to permit %qs) 1380*38fd1498Szrj 1381*38fd1498SzrjEnumValue 1382*38fd1498SzrjEnum(permitted_flt_eval_methods) String(c11) Value(PERMITTED_FLT_EVAL_METHODS_C11) 1383*38fd1498Szrj 1384*38fd1498SzrjEnumValue 1385*38fd1498SzrjEnum(permitted_flt_eval_methods) String(ts-18661-3) Value(PERMITTED_FLT_EVAL_METHODS_TS_18661) 1386*38fd1498Szrj 1387*38fd1498Szrjffast-math 1388*38fd1498SzrjCommon Optimization 1389*38fd1498Szrj 1390*38fd1498Szrjffat-lto-objects 1391*38fd1498SzrjCommon Var(flag_fat_lto_objects) 1392*38fd1498SzrjOutput lto objects containing both the intermediate language and binary output. 1393*38fd1498Szrj 1394*38fd1498Szrjffinite-math-only 1395*38fd1498SzrjCommon Report Var(flag_finite_math_only) Optimization SetByCombined 1396*38fd1498SzrjAssume no NaNs or infinities are generated. 1397*38fd1498Szrj 1398*38fd1498Szrjffixed- 1399*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 1400*38fd1498Szrj-ffixed-<register> Mark <register> as being unavailable to the compiler. 1401*38fd1498Szrj 1402*38fd1498Szrjffloat-store 1403*38fd1498SzrjCommon Report Var(flag_float_store) Optimization 1404*38fd1498SzrjDon't allocate floats and doubles in extended-precision registers. 1405*38fd1498Szrj 1406*38fd1498Szrjfforce-addr 1407*38fd1498SzrjCommon Ignore 1408*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 1409*38fd1498Szrj 1410*38fd1498Szrjfforward-propagate 1411*38fd1498SzrjCommon Report Var(flag_forward_propagate) Optimization 1412*38fd1498SzrjPerform a forward propagation pass on RTL. 1413*38fd1498Szrj 1414*38fd1498Szrjffp-contract= 1415*38fd1498SzrjCommon Joined RejectNegative Enum(fp_contract_mode) Var(flag_fp_contract_mode) Init(FP_CONTRACT_FAST) Optimization 1416*38fd1498Szrj-ffp-contract=[off|on|fast] Perform floating-point expression contraction. 1417*38fd1498Szrj 1418*38fd1498SzrjEnum 1419*38fd1498SzrjName(fp_contract_mode) Type(enum fp_contract_mode) UnknownError(unknown floating point contraction style %qs) 1420*38fd1498Szrj 1421*38fd1498SzrjEnumValue 1422*38fd1498SzrjEnum(fp_contract_mode) String(off) Value(FP_CONTRACT_OFF) 1423*38fd1498Szrj 1424*38fd1498Szrj; Not implemented, fall back to conservative FP_CONTRACT_OFF. 1425*38fd1498SzrjEnumValue 1426*38fd1498SzrjEnum(fp_contract_mode) String(on) Value(FP_CONTRACT_OFF) 1427*38fd1498Szrj 1428*38fd1498SzrjEnumValue 1429*38fd1498SzrjEnum(fp_contract_mode) String(fast) Value(FP_CONTRACT_FAST) 1430*38fd1498Szrj 1431*38fd1498Szrjffp-int-builtin-inexact 1432*38fd1498SzrjCommon Report Var(flag_fp_int_builtin_inexact) Init(1) Optimization 1433*38fd1498SzrjAllow built-in functions ceil, floor, round, trunc to raise \"inexact\" exceptions. 1434*38fd1498Szrj 1435*38fd1498Szrj; Nonzero means don't put addresses of constant functions in registers. 1436*38fd1498Szrj; Used for compiling the Unix kernel, where strange substitutions are 1437*38fd1498Szrj; done on the assembly output. 1438*38fd1498Szrjffunction-cse 1439*38fd1498SzrjCommon Report Var(flag_no_function_cse,0) Optimization 1440*38fd1498SzrjAllow function addresses to be held in registers. 1441*38fd1498Szrj 1442*38fd1498Szrjffunction-sections 1443*38fd1498SzrjCommon Report Var(flag_function_sections) 1444*38fd1498SzrjPlace each function into its own section. 1445*38fd1498Szrj 1446*38fd1498Szrjfgcse 1447*38fd1498SzrjCommon Report Var(flag_gcse) Optimization 1448*38fd1498SzrjPerform global common subexpression elimination. 1449*38fd1498Szrj 1450*38fd1498Szrjfgcse-lm 1451*38fd1498SzrjCommon Report Var(flag_gcse_lm) Init(1) Optimization 1452*38fd1498SzrjPerform enhanced load motion during global common subexpression elimination. 1453*38fd1498Szrj 1454*38fd1498Szrjfgcse-sm 1455*38fd1498SzrjCommon Report Var(flag_gcse_sm) Init(0) Optimization 1456*38fd1498SzrjPerform store motion after global common subexpression elimination. 1457*38fd1498Szrj 1458*38fd1498Szrjfgcse-las 1459*38fd1498SzrjCommon Report Var(flag_gcse_las) Init(0) Optimization 1460*38fd1498SzrjPerform redundant load after store elimination in global common subexpression 1461*38fd1498Szrjelimination. 1462*38fd1498Szrj 1463*38fd1498Szrjfgcse-after-reload 1464*38fd1498SzrjCommon Report Var(flag_gcse_after_reload) Optimization 1465*38fd1498SzrjPerform global common subexpression elimination after register allocation has 1466*38fd1498Szrjfinished. 1467*38fd1498Szrj 1468*38fd1498SzrjEnum 1469*38fd1498SzrjName(dwarf_gnat_encodings) Type(int) 1470*38fd1498Szrj 1471*38fd1498SzrjEnumValue 1472*38fd1498SzrjEnum(dwarf_gnat_encodings) String(all) Value(DWARF_GNAT_ENCODINGS_ALL) 1473*38fd1498Szrj 1474*38fd1498SzrjEnumValue 1475*38fd1498SzrjEnum(dwarf_gnat_encodings) String(gdb) Value(DWARF_GNAT_ENCODINGS_GDB) 1476*38fd1498Szrj 1477*38fd1498SzrjEnumValue 1478*38fd1498SzrjEnum(dwarf_gnat_encodings) String(minimal) Value(DWARF_GNAT_ENCODINGS_MINIMAL) 1479*38fd1498Szrj 1480*38fd1498Szrjfgnat-encodings= 1481*38fd1498SzrjCommon Enum(dwarf_gnat_encodings) Joined RejectNegative Report Undocumented Var(gnat_encodings) 1482*38fd1498Szrj-fgnat-encodings=[all|gdb|minimal] Select the balance between GNAT encodings and standard DWARF emitted in the debug information 1483*38fd1498Szrj 1484*38fd1498Szrj; This option is not documented yet as its semantics will change. 1485*38fd1498Szrjfgraphite 1486*38fd1498SzrjCommon Report Var(flag_graphite) Optimization 1487*38fd1498SzrjEnable in and out of Graphite representation. 1488*38fd1498Szrj 1489*38fd1498Szrjfgraphite-identity 1490*38fd1498SzrjCommon Report Var(flag_graphite_identity) Optimization 1491*38fd1498SzrjEnable Graphite Identity transformation. 1492*38fd1498Szrj 1493*38fd1498Szrjfhoist-adjacent-loads 1494*38fd1498SzrjCommon Report Var(flag_hoist_adjacent_loads) Optimization 1495*38fd1498SzrjEnable hoisting adjacent loads to encourage generating conditional move 1496*38fd1498Szrjinstructions. 1497*38fd1498Szrj 1498*38fd1498Szrjfkeep-gc-roots-live 1499*38fd1498SzrjCommon Undocumented Report Var(flag_keep_gc_roots_live) Optimization 1500*38fd1498Szrj; Always keep a pointer to a live memory block 1501*38fd1498Szrj 1502*38fd1498Szrjfloop-parallelize-all 1503*38fd1498SzrjCommon Report Var(flag_loop_parallelize_all) Optimization 1504*38fd1498SzrjMark all loops as parallel. 1505*38fd1498Szrj 1506*38fd1498Szrjfloop-strip-mine 1507*38fd1498SzrjCommon Alias(floop-nest-optimize) 1508*38fd1498SzrjEnable loop nest transforms. Same as -floop-nest-optimize. 1509*38fd1498Szrj 1510*38fd1498Szrjfloop-interchange 1511*38fd1498SzrjCommon Report Var(flag_loop_interchange) Optimization 1512*38fd1498SzrjEnable loop interchange on trees. 1513*38fd1498Szrj 1514*38fd1498Szrjfloop-block 1515*38fd1498SzrjCommon Alias(floop-nest-optimize) 1516*38fd1498SzrjEnable loop nest transforms. Same as -floop-nest-optimize. 1517*38fd1498Szrj 1518*38fd1498Szrjfloop-unroll-and-jam 1519*38fd1498SzrjCommon Report Var(flag_unroll_jam) Optimization 1520*38fd1498SzrjPerform unroll-and-jam on loops. 1521*38fd1498Szrj 1522*38fd1498Szrjfgnu-tm 1523*38fd1498SzrjCommon Report Var(flag_tm) 1524*38fd1498SzrjEnable support for GNU transactional memory. 1525*38fd1498Szrj 1526*38fd1498Szrjfgnu-unique 1527*38fd1498SzrjCommon Report Var(flag_gnu_unique) Init(1) 1528*38fd1498SzrjUse STB_GNU_UNIQUE if supported by the assembler. 1529*38fd1498Szrj 1530*38fd1498Szrjfloop-flatten 1531*38fd1498SzrjCommon Ignore 1532*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 1533*38fd1498Szrj 1534*38fd1498Szrjfloop-nest-optimize 1535*38fd1498SzrjCommon Report Var(flag_loop_nest_optimize) Optimization 1536*38fd1498SzrjEnable the loop nest optimizer. 1537*38fd1498Szrj 1538*38fd1498Szrjfstrict-volatile-bitfields 1539*38fd1498SzrjCommon Report Var(flag_strict_volatile_bitfields) Init(-1) Optimization 1540*38fd1498SzrjForce bitfield accesses to match their type width. 1541*38fd1498Szrj 1542*38fd1498Szrjfstore-merging 1543*38fd1498SzrjCommon Report Var(flag_store_merging) Optimization 1544*38fd1498SzrjMerge adjacent stores. 1545*38fd1498Szrj 1546*38fd1498Szrjfguess-branch-probability 1547*38fd1498SzrjCommon Report Var(flag_guess_branch_prob) Optimization 1548*38fd1498SzrjEnable guessing of branch probabilities. 1549*38fd1498Szrj 1550*38fd1498Szrj; Nonzero means ignore `#ident' directives. 0 means handle them. 1551*38fd1498Szrj; Generate position-independent code for executables if possible 1552*38fd1498Szrj; On SVR4 targets, it also controls whether or not to emit a 1553*38fd1498Szrj; string identifying the compiler. 1554*38fd1498Szrjfident 1555*38fd1498SzrjCommon Report Var(flag_no_ident,0) 1556*38fd1498SzrjProcess #ident directives. 1557*38fd1498Szrj 1558*38fd1498Szrjfif-conversion 1559*38fd1498SzrjCommon Report Var(flag_if_conversion) Optimization 1560*38fd1498SzrjPerform conversion of conditional jumps to branchless equivalents. 1561*38fd1498Szrj 1562*38fd1498Szrjfif-conversion2 1563*38fd1498SzrjCommon Report Var(flag_if_conversion2) Optimization 1564*38fd1498SzrjPerform conversion of conditional jumps to conditional execution. 1565*38fd1498Szrj 1566*38fd1498Szrjfstack-reuse= 1567*38fd1498SzrjCommon Joined RejectNegative Enum(stack_reuse_level) Var(flag_stack_reuse) Init(SR_ALL) Optimization 1568*38fd1498Szrj-fstack-reuse=[all|named_vars|none] Set stack reuse level for local variables. 1569*38fd1498Szrj 1570*38fd1498SzrjEnum 1571*38fd1498SzrjName(stack_reuse_level) Type(enum stack_reuse_level) UnknownError(unknown Stack Reuse Level %qs) 1572*38fd1498Szrj 1573*38fd1498SzrjEnumValue 1574*38fd1498SzrjEnum(stack_reuse_level) String(all) Value(SR_ALL) 1575*38fd1498Szrj 1576*38fd1498SzrjEnumValue 1577*38fd1498SzrjEnum(stack_reuse_level) String(named_vars) Value(SR_NAMED_VARS) 1578*38fd1498Szrj 1579*38fd1498SzrjEnumValue 1580*38fd1498SzrjEnum(stack_reuse_level) String(none) Value(SR_NONE) 1581*38fd1498Szrj 1582*38fd1498Szrjftree-loop-if-convert 1583*38fd1498SzrjCommon Report Var(flag_tree_loop_if_convert) Init(-1) Optimization 1584*38fd1498SzrjConvert conditional jumps in innermost loops to branchless equivalents. 1585*38fd1498Szrj 1586*38fd1498Szrjftree-loop-if-convert-stores 1587*38fd1498SzrjCommon Ignore 1588*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 1589*38fd1498Szrj 1590*38fd1498Szrj; -finhibit-size-directive inhibits output of .size for ELF. 1591*38fd1498Szrj; This is used only for compiling crtstuff.c, 1592*38fd1498Szrj; and it may be extended to other effects 1593*38fd1498Szrj; needed for crtstuff.c on other systems. 1594*38fd1498Szrjfinhibit-size-directive 1595*38fd1498SzrjCommon Report Var(flag_inhibit_size_directive) 1596*38fd1498SzrjDo not generate .size directives. 1597*38fd1498Szrj 1598*38fd1498Szrjfindirect-inlining 1599*38fd1498SzrjCommon Report Var(flag_indirect_inlining) Optimization 1600*38fd1498SzrjPerform indirect inlining. 1601*38fd1498Szrj 1602*38fd1498Szrj; General flag to enable inlining. Specifying -fno-inline will disable 1603*38fd1498Szrj; all inlining apart from always-inline functions. 1604*38fd1498Szrjfinline 1605*38fd1498SzrjCommon Report Var(flag_no_inline,0) Init(0) Optimization 1606*38fd1498SzrjEnable inlining of function declared \"inline\", disabling disables all inlining. 1607*38fd1498Szrj 1608*38fd1498Szrjfinline-small-functions 1609*38fd1498SzrjCommon Report Var(flag_inline_small_functions) Optimization 1610*38fd1498SzrjIntegrate functions into their callers when code size is known not to grow. 1611*38fd1498Szrj 1612*38fd1498Szrjfinline-functions 1613*38fd1498SzrjCommon Report Var(flag_inline_functions) Optimization 1614*38fd1498SzrjIntegrate functions not declared \"inline\" into their callers when profitable. 1615*38fd1498Szrj 1616*38fd1498Szrjfinline-functions-called-once 1617*38fd1498SzrjCommon Report Var(flag_inline_functions_called_once) Optimization 1618*38fd1498SzrjIntegrate functions only required by their single caller. 1619*38fd1498Szrj 1620*38fd1498Szrjfinline-limit- 1621*38fd1498SzrjCommon RejectNegative Joined Alias(finline-limit=) 1622*38fd1498Szrj 1623*38fd1498Szrjfinline-limit= 1624*38fd1498SzrjCommon RejectNegative Joined UInteger 1625*38fd1498Szrj-finline-limit=<number> Limit the size of inlined functions to <number>. 1626*38fd1498Szrj 1627*38fd1498Szrjfinline-atomics 1628*38fd1498SzrjCommon Report Var(flag_inline_atomics) Init(1) Optimization 1629*38fd1498SzrjInline __atomic operations when a lock free instruction sequence is available. 1630*38fd1498Szrj 1631*38fd1498Szrjfcf-protection 1632*38fd1498SzrjCommon RejectNegative Alias(fcf-protection=,full) 1633*38fd1498Szrj 1634*38fd1498Szrjfcf-protection= 1635*38fd1498SzrjCommon Report Joined RejectNegative Enum(cf_protection_level) Var(flag_cf_protection) Init(CF_NONE) 1636*38fd1498Szrj-fcf-protection=[full|branch|return|none] Instrument functions with checks to verify jump/call/return control-flow transfer 1637*38fd1498Szrjinstructions have valid targets. 1638*38fd1498Szrj 1639*38fd1498SzrjEnum 1640*38fd1498SzrjName(cf_protection_level) Type(enum cf_protection_level) UnknownError(unknown Control-Flow Protection Level %qs) 1641*38fd1498Szrj 1642*38fd1498SzrjEnumValue 1643*38fd1498SzrjEnum(cf_protection_level) String(full) Value(CF_FULL) 1644*38fd1498Szrj 1645*38fd1498SzrjEnumValue 1646*38fd1498SzrjEnum(cf_protection_level) String(branch) Value(CF_BRANCH) 1647*38fd1498Szrj 1648*38fd1498SzrjEnumValue 1649*38fd1498SzrjEnum(cf_protection_level) String(return) Value(CF_RETURN) 1650*38fd1498Szrj 1651*38fd1498SzrjEnumValue 1652*38fd1498SzrjEnum(cf_protection_level) String(none) Value(CF_NONE) 1653*38fd1498Szrj 1654*38fd1498Szrjfinstrument-functions 1655*38fd1498SzrjCommon Report Var(flag_instrument_function_entry_exit) 1656*38fd1498SzrjInstrument function entry and exit with profiling calls. 1657*38fd1498Szrj 1658*38fd1498Szrjfinstrument-functions-exclude-function-list= 1659*38fd1498SzrjCommon RejectNegative Joined 1660*38fd1498Szrj-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions. 1661*38fd1498Szrj 1662*38fd1498Szrjfinstrument-functions-exclude-file-list= 1663*38fd1498SzrjCommon RejectNegative Joined 1664*38fd1498Szrj-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files. 1665*38fd1498Szrj 1666*38fd1498Szrjfipa-cp 1667*38fd1498SzrjCommon Report Var(flag_ipa_cp) Optimization 1668*38fd1498SzrjPerform interprocedural constant propagation. 1669*38fd1498Szrj 1670*38fd1498Szrjfipa-cp-clone 1671*38fd1498SzrjCommon Report Var(flag_ipa_cp_clone) Optimization 1672*38fd1498SzrjPerform cloning to make Interprocedural constant propagation stronger. 1673*38fd1498Szrj 1674*38fd1498Szrjfipa-cp-alignment 1675*38fd1498SzrjCommon Ignore 1676*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 1677*38fd1498Szrj 1678*38fd1498Szrjfipa-bit-cp 1679*38fd1498SzrjCommon Report Var(flag_ipa_bit_cp) Optimization 1680*38fd1498SzrjPerform interprocedural bitwise constant propagation. 1681*38fd1498Szrj 1682*38fd1498Szrjfipa-profile 1683*38fd1498SzrjCommon Report Var(flag_ipa_profile) Init(0) Optimization 1684*38fd1498SzrjPerform interprocedural profile propagation. 1685*38fd1498Szrj 1686*38fd1498Szrjfipa-pta 1687*38fd1498SzrjCommon Report Var(flag_ipa_pta) Init(0) Optimization 1688*38fd1498SzrjPerform interprocedural points-to analysis. 1689*38fd1498Szrj 1690*38fd1498Szrjfipa-pure-const 1691*38fd1498SzrjCommon Report Var(flag_ipa_pure_const) Init(0) Optimization 1692*38fd1498SzrjDiscover pure and const functions. 1693*38fd1498Szrj 1694*38fd1498Szrjfipa-icf 1695*38fd1498SzrjCommon Report Var(flag_ipa_icf) Optimization 1696*38fd1498SzrjPerform Identical Code Folding for functions and read-only variables. 1697*38fd1498Szrj 1698*38fd1498Szrjfipa-icf-functions 1699*38fd1498SzrjCommon Report Var(flag_ipa_icf_functions) Optimization 1700*38fd1498SzrjPerform Identical Code Folding for functions. 1701*38fd1498Szrj 1702*38fd1498Szrjfipa-icf-variables 1703*38fd1498SzrjCommon Report Var(flag_ipa_icf_variables) Optimization 1704*38fd1498SzrjPerform Identical Code Folding for variables. 1705*38fd1498Szrj 1706*38fd1498Szrjfipa-reference 1707*38fd1498SzrjCommon Report Var(flag_ipa_reference) Init(0) Optimization 1708*38fd1498SzrjDiscover readonly and non addressable static variables. 1709*38fd1498Szrj 1710*38fd1498Szrjfipa-matrix-reorg 1711*38fd1498SzrjCommon Ignore 1712*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 1713*38fd1498Szrj 1714*38fd1498Szrjfipa-struct-reorg 1715*38fd1498SzrjCommon Ignore 1716*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 1717*38fd1498Szrj 1718*38fd1498Szrjfipa-vrp 1719*38fd1498SzrjCommon Report Var(flag_ipa_vrp) Optimization 1720*38fd1498SzrjPerform IPA Value Range Propagation. 1721*38fd1498Szrj 1722*38fd1498Szrjfira-algorithm= 1723*38fd1498SzrjCommon Joined RejectNegative Enum(ira_algorithm) Var(flag_ira_algorithm) Init(IRA_ALGORITHM_CB) Optimization 1724*38fd1498Szrj-fira-algorithm=[CB|priority] Set the used IRA algorithm. 1725*38fd1498Szrj 1726*38fd1498SzrjEnum 1727*38fd1498SzrjName(ira_algorithm) Type(enum ira_algorithm) UnknownError(unknown IRA algorithm %qs) 1728*38fd1498Szrj 1729*38fd1498SzrjEnumValue 1730*38fd1498SzrjEnum(ira_algorithm) String(CB) Value(IRA_ALGORITHM_CB) 1731*38fd1498Szrj 1732*38fd1498SzrjEnumValue 1733*38fd1498SzrjEnum(ira_algorithm) String(priority) Value(IRA_ALGORITHM_PRIORITY) 1734*38fd1498Szrj 1735*38fd1498Szrjfira-region= 1736*38fd1498SzrjCommon Joined RejectNegative Enum(ira_region) Var(flag_ira_region) Init(IRA_REGION_AUTODETECT) Optimization 1737*38fd1498Szrj-fira-region=[one|all|mixed] Set regions for IRA. 1738*38fd1498Szrj 1739*38fd1498SzrjEnum 1740*38fd1498SzrjName(ira_region) Type(enum ira_region) UnknownError(unknown IRA region %qs) 1741*38fd1498Szrj 1742*38fd1498SzrjEnumValue 1743*38fd1498SzrjEnum(ira_region) String(one) Value(IRA_REGION_ONE) 1744*38fd1498Szrj 1745*38fd1498SzrjEnumValue 1746*38fd1498SzrjEnum(ira_region) String(all) Value(IRA_REGION_ALL) 1747*38fd1498Szrj 1748*38fd1498SzrjEnumValue 1749*38fd1498SzrjEnum(ira_region) String(mixed) Value(IRA_REGION_MIXED) 1750*38fd1498Szrj 1751*38fd1498Szrjfira-hoist-pressure 1752*38fd1498SzrjCommon Report Var(flag_ira_hoist_pressure) Init(1) Optimization 1753*38fd1498SzrjUse IRA based register pressure calculation 1754*38fd1498Szrjin RTL hoist optimizations. 1755*38fd1498Szrj 1756*38fd1498Szrjfira-loop-pressure 1757*38fd1498SzrjCommon Report Var(flag_ira_loop_pressure) Optimization 1758*38fd1498SzrjUse IRA based register pressure calculation 1759*38fd1498Szrjin RTL loop optimizations. 1760*38fd1498Szrj 1761*38fd1498Szrjfira-share-save-slots 1762*38fd1498SzrjCommon Report Var(flag_ira_share_save_slots) Init(1) Optimization 1763*38fd1498SzrjShare slots for saving different hard registers. 1764*38fd1498Szrj 1765*38fd1498Szrjfira-share-spill-slots 1766*38fd1498SzrjCommon Report Var(flag_ira_share_spill_slots) Init(1) Optimization 1767*38fd1498SzrjShare stack slots for spilled pseudo-registers. 1768*38fd1498Szrj 1769*38fd1498Szrjfira-verbose= 1770*38fd1498SzrjCommon RejectNegative Joined UInteger Var(flag_ira_verbose) Init(5) 1771*38fd1498Szrj-fira-verbose=<number> Control IRA's level of diagnostic messages. 1772*38fd1498Szrj 1773*38fd1498Szrjfivopts 1774*38fd1498SzrjCommon Report Var(flag_ivopts) Init(1) Optimization 1775*38fd1498SzrjOptimize induction variables on trees. 1776*38fd1498Szrj 1777*38fd1498Szrjfjump-tables 1778*38fd1498SzrjCommon Var(flag_jump_tables) Init(1) Optimization 1779*38fd1498SzrjUse jump tables for sufficiently large switch statements. 1780*38fd1498Szrj 1781*38fd1498Szrjfkeep-inline-functions 1782*38fd1498SzrjCommon Report Var(flag_keep_inline_functions) 1783*38fd1498SzrjGenerate code for functions even if they are fully inlined. 1784*38fd1498Szrj 1785*38fd1498Szrjfkeep-static-functions 1786*38fd1498SzrjCommon Report Var(flag_keep_static_functions) 1787*38fd1498SzrjGenerate code for static functions even if they are never called. 1788*38fd1498Szrj 1789*38fd1498Szrjfkeep-static-consts 1790*38fd1498SzrjCommon Report Var(flag_keep_static_consts) Init(1) 1791*38fd1498SzrjEmit static const variables even if they are not used. 1792*38fd1498Szrj 1793*38fd1498Szrjfleading-underscore 1794*38fd1498SzrjCommon Report Var(flag_leading_underscore) Init(-1) 1795*38fd1498SzrjGive external symbols a leading underscore. 1796*38fd1498Szrj 1797*38fd1498Szrjfloop-optimize 1798*38fd1498SzrjCommon Ignore 1799*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 1800*38fd1498Szrj 1801*38fd1498Szrjflra-remat 1802*38fd1498SzrjCommon Report Var(flag_lra_remat) Optimization 1803*38fd1498SzrjDo CFG-sensitive rematerialization in LRA. 1804*38fd1498Szrj 1805*38fd1498Szrjflto 1806*38fd1498SzrjCommon 1807*38fd1498SzrjEnable link-time optimization. 1808*38fd1498Szrj 1809*38fd1498Szrjflto= 1810*38fd1498SzrjCommon RejectNegative Joined Var(flag_lto) 1811*38fd1498SzrjLink-time optimization with number of parallel jobs or jobserver. 1812*38fd1498Szrj 1813*38fd1498SzrjEnum 1814*38fd1498SzrjName(lto_partition_model) Type(enum lto_partition_model) UnknownError(unknown LTO partitioning model %qs) 1815*38fd1498Szrj 1816*38fd1498SzrjEnumValue 1817*38fd1498SzrjEnum(lto_partition_model) String(none) Value(LTO_PARTITION_NONE) 1818*38fd1498Szrj 1819*38fd1498SzrjEnumValue 1820*38fd1498SzrjEnum(lto_partition_model) String(one) Value(LTO_PARTITION_ONE) 1821*38fd1498Szrj 1822*38fd1498SzrjEnumValue 1823*38fd1498SzrjEnum(lto_partition_model) String(balanced) Value(LTO_PARTITION_BALANCED) 1824*38fd1498Szrj 1825*38fd1498SzrjEnumValue 1826*38fd1498SzrjEnum(lto_partition_model) String(1to1) Value(LTO_PARTITION_1TO1) 1827*38fd1498Szrj 1828*38fd1498SzrjEnumValue 1829*38fd1498SzrjEnum(lto_partition_model) String(max) Value(LTO_PARTITION_MAX) 1830*38fd1498Szrj 1831*38fd1498Szrjflto-partition= 1832*38fd1498SzrjCommon Joined RejectNegative Enum(lto_partition_model) Var(flag_lto_partition) Init(LTO_PARTITION_BALANCED) 1833*38fd1498SzrjSpecify the algorithm to partition symbols and vars at linktime. 1834*38fd1498Szrj 1835*38fd1498Szrj; The initial value of -1 comes from Z_DEFAULT_COMPRESSION in zlib.h. 1836*38fd1498Szrjflto-compression-level= 1837*38fd1498SzrjCommon Joined RejectNegative UInteger Var(flag_lto_compression_level) Init(-1) IntegerRange(0, 9) 1838*38fd1498Szrj-flto-compression-level=<number> Use zlib compression level <number> for IL. 1839*38fd1498Szrj 1840*38fd1498Szrjflto-odr-type-merging 1841*38fd1498SzrjCommon Report Var(flag_lto_odr_type_mering) Init(1) 1842*38fd1498SzrjMerge C++ types using One Definition Rule. 1843*38fd1498Szrj 1844*38fd1498Szrjflto-report 1845*38fd1498SzrjCommon Report Var(flag_lto_report) Init(0) 1846*38fd1498SzrjReport various link-time optimization statistics. 1847*38fd1498Szrj 1848*38fd1498Szrjflto-report-wpa 1849*38fd1498SzrjCommon Report Var(flag_lto_report_wpa) Init(0) 1850*38fd1498SzrjReport various link-time optimization statistics for WPA only. 1851*38fd1498Szrj 1852*38fd1498Szrjfmath-errno 1853*38fd1498SzrjCommon Report Var(flag_errno_math) Init(1) Optimization SetByCombined 1854*38fd1498SzrjSet errno after built-in math functions. 1855*38fd1498Szrj 1856*38fd1498Szrjfmax-errors= 1857*38fd1498SzrjCommon Joined RejectNegative UInteger Var(flag_max_errors) 1858*38fd1498Szrj-fmax-errors=<number> Maximum number of errors to report. 1859*38fd1498Szrj 1860*38fd1498Szrjfmem-report 1861*38fd1498SzrjCommon Report Var(mem_report) 1862*38fd1498SzrjReport on permanent memory allocation. 1863*38fd1498Szrj 1864*38fd1498Szrjfmem-report-wpa 1865*38fd1498SzrjCommon Report Var(mem_report_wpa) 1866*38fd1498SzrjReport on permanent memory allocation in WPA only. 1867*38fd1498Szrj 1868*38fd1498Szrj; This will attempt to merge constant section constants, if 1 only 1869*38fd1498Szrj; string constants and constants from constant pool, if 2 also constant 1870*38fd1498Szrj; variables. 1871*38fd1498Szrjfmerge-all-constants 1872*38fd1498SzrjCommon Report Var(flag_merge_constants,2) Init(1) 1873*38fd1498SzrjAttempt to merge identical constants and constant variables. 1874*38fd1498Szrj 1875*38fd1498Szrjfmerge-constants 1876*38fd1498SzrjCommon Report Var(flag_merge_constants,1) 1877*38fd1498SzrjAttempt to merge identical constants across compilation units. 1878*38fd1498Szrj 1879*38fd1498Szrjfmerge-debug-strings 1880*38fd1498SzrjCommon Report Var(flag_merge_debug_strings) Init(1) 1881*38fd1498SzrjAttempt to merge identical debug strings across compilation units. 1882*38fd1498Szrj 1883*38fd1498Szrjfmessage-length= 1884*38fd1498SzrjCommon RejectNegative Joined UInteger 1885*38fd1498Szrj-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping. 1886*38fd1498Szrj 1887*38fd1498Szrjfmodulo-sched 1888*38fd1498SzrjCommon Report Var(flag_modulo_sched) Optimization 1889*38fd1498SzrjPerform SMS based modulo scheduling before the first scheduling pass. 1890*38fd1498Szrj 1891*38fd1498Szrjfmodulo-sched-allow-regmoves 1892*38fd1498SzrjCommon Report Var(flag_modulo_sched_allow_regmoves) Optimization 1893*38fd1498SzrjPerform SMS based modulo scheduling with register moves allowed. 1894*38fd1498Szrj 1895*38fd1498Szrjfmove-loop-invariants 1896*38fd1498SzrjCommon Report Var(flag_move_loop_invariants) Optimization 1897*38fd1498SzrjMove loop invariant computations out of loops. 1898*38fd1498Szrj 1899*38fd1498Szrjfdce 1900*38fd1498SzrjCommon Var(flag_dce) Init(1) Optimization 1901*38fd1498SzrjUse the RTL dead code elimination pass. 1902*38fd1498Szrj 1903*38fd1498Szrjfdse 1904*38fd1498SzrjCommon Var(flag_dse) Init(1) Optimization 1905*38fd1498SzrjUse the RTL dead store elimination pass. 1906*38fd1498Szrj 1907*38fd1498Szrjfreschedule-modulo-scheduled-loops 1908*38fd1498SzrjCommon Report Var(flag_resched_modulo_sched) Optimization 1909*38fd1498SzrjEnable/Disable the traditional scheduling in loops that already passed modulo scheduling. 1910*38fd1498Szrj 1911*38fd1498Szrjfnon-call-exceptions 1912*38fd1498SzrjCommon Report Var(flag_non_call_exceptions) Optimization 1913*38fd1498SzrjSupport synchronous non-call exceptions. 1914*38fd1498Szrj 1915*38fd1498Szrjfoffload= 1916*38fd1498SzrjCommon Driver Joined MissingArgError(options or targets missing after %qs) 1917*38fd1498Szrj-foffload=<targets>=<options> Specify offloading targets and options for them. 1918*38fd1498Szrj 1919*38fd1498Szrjfoffload-abi= 1920*38fd1498SzrjCommon Joined RejectNegative Enum(offload_abi) Var(flag_offload_abi) Init(OFFLOAD_ABI_UNSET) 1921*38fd1498Szrj-foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler. 1922*38fd1498Szrj 1923*38fd1498SzrjEnum 1924*38fd1498SzrjName(offload_abi) Type(enum offload_abi) UnknownError(unknown offload ABI %qs) 1925*38fd1498Szrj 1926*38fd1498SzrjEnumValue 1927*38fd1498SzrjEnum(offload_abi) String(ilp32) Value(OFFLOAD_ABI_ILP32) 1928*38fd1498Szrj 1929*38fd1498SzrjEnumValue 1930*38fd1498SzrjEnum(offload_abi) String(lp64) Value(OFFLOAD_ABI_LP64) 1931*38fd1498Szrj 1932*38fd1498Szrjfomit-frame-pointer 1933*38fd1498SzrjCommon Report Var(flag_omit_frame_pointer) Optimization 1934*38fd1498SzrjWhen possible do not generate stack frames. 1935*38fd1498Szrj 1936*38fd1498Szrjfopt-info 1937*38fd1498SzrjCommon Report Var(flag_opt_info) Optimization 1938*38fd1498SzrjEnable all optimization info dumps on stderr. 1939*38fd1498Szrj 1940*38fd1498Szrjfopt-info- 1941*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 1942*38fd1498Szrj-fopt-info[-<type>=filename] Dump compiler optimization details. 1943*38fd1498Szrj 1944*38fd1498Szrjfoptimize-register-move 1945*38fd1498SzrjCommon Ignore 1946*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 1947*38fd1498Szrj 1948*38fd1498Szrjfoptimize-sibling-calls 1949*38fd1498SzrjCommon Report Var(flag_optimize_sibling_calls) Optimization 1950*38fd1498SzrjOptimize sibling and tail recursive calls. 1951*38fd1498Szrj 1952*38fd1498Szrjfpartial-inlining 1953*38fd1498SzrjCommon Report Var(flag_partial_inlining) Optimization 1954*38fd1498SzrjPerform partial inlining. 1955*38fd1498Szrj 1956*38fd1498Szrjfpre-ipa-mem-report 1957*38fd1498SzrjCommon Report Var(pre_ipa_mem_report) 1958*38fd1498SzrjReport on memory allocation before interprocedural optimization. 1959*38fd1498Szrj 1960*38fd1498Szrjfpost-ipa-mem-report 1961*38fd1498SzrjCommon Report Var(post_ipa_mem_report) 1962*38fd1498SzrjReport on memory allocation before interprocedural optimization. 1963*38fd1498Szrj 1964*38fd1498Szrjfpack-struct 1965*38fd1498SzrjCommon Report Var(flag_pack_struct) Optimization 1966*38fd1498SzrjPack structure members together without holes. 1967*38fd1498Szrj 1968*38fd1498Szrjfpack-struct= 1969*38fd1498SzrjCommon RejectNegative Joined UInteger Optimization 1970*38fd1498Szrj-fpack-struct=<number> Set initial maximum structure member alignment. 1971*38fd1498Szrj 1972*38fd1498Szrjfpcc-struct-return 1973*38fd1498SzrjCommon Report Var(flag_pcc_struct_return,1) Init(DEFAULT_PCC_STRUCT_RETURN) 1974*38fd1498SzrjReturn small aggregates in memory, not registers. 1975*38fd1498Szrj 1976*38fd1498Szrjfpeel-loops 1977*38fd1498SzrjCommon Report Var(flag_peel_loops) Optimization 1978*38fd1498SzrjPerform loop peeling. 1979*38fd1498Szrj 1980*38fd1498Szrjfpeephole 1981*38fd1498SzrjCommon Report Var(flag_no_peephole,0) Optimization 1982*38fd1498SzrjEnable machine specific peephole optimizations. 1983*38fd1498Szrj 1984*38fd1498Szrjfpeephole2 1985*38fd1498SzrjCommon Report Var(flag_peephole2) Optimization 1986*38fd1498SzrjEnable an RTL peephole pass before sched2. 1987*38fd1498Szrj 1988*38fd1498SzrjfPIC 1989*38fd1498SzrjCommon Report Var(flag_pic,2) Negative(fPIE) Init(-1) 1990*38fd1498SzrjGenerate position-independent code if possible (large mode). 1991*38fd1498Szrj 1992*38fd1498SzrjfPIE 1993*38fd1498SzrjCommon Report Var(flag_pie,2) Negative(fpic) Init(-1) 1994*38fd1498SzrjGenerate position-independent code for executables if possible (large mode). 1995*38fd1498Szrj 1996*38fd1498Szrjfpic 1997*38fd1498SzrjCommon Report Var(flag_pic,1) Negative(fpie) Init(-1) 1998*38fd1498SzrjGenerate position-independent code if possible (small mode). 1999*38fd1498Szrj 2000*38fd1498Szrjfpie 2001*38fd1498SzrjCommon Report Var(flag_pie,1) Negative(fPIC) Init(-1) 2002*38fd1498SzrjGenerate position-independent code for executables if possible (small mode). 2003*38fd1498Szrj 2004*38fd1498Szrjfplt 2005*38fd1498SzrjCommon Report Var(flag_plt) Init(1) Optimization 2006*38fd1498SzrjUse PLT for PIC calls (-fno-plt: load the address from GOT at call site). 2007*38fd1498Szrj 2008*38fd1498Szrjfplugin= 2009*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 2010*38fd1498SzrjSpecify a plugin to load. 2011*38fd1498Szrj 2012*38fd1498Szrjfplugin-arg- 2013*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 2014*38fd1498Szrj-fplugin-arg-<name>-<key>[=<value>] Specify argument <key>=<value> for plugin <name>. 2015*38fd1498Szrj 2016*38fd1498Szrjfpredictive-commoning 2017*38fd1498SzrjCommon Report Var(flag_predictive_commoning) Optimization 2018*38fd1498SzrjRun predictive commoning optimization. 2019*38fd1498Szrj 2020*38fd1498Szrjfprefetch-loop-arrays 2021*38fd1498SzrjCommon Report Var(flag_prefetch_loop_arrays) Init(-1) Optimization 2022*38fd1498SzrjGenerate prefetch instructions, if available, for arrays in loops. 2023*38fd1498Szrj 2024*38fd1498Szrjfprofile 2025*38fd1498SzrjCommon Report Var(profile_flag) 2026*38fd1498SzrjEnable basic program profiling code. 2027*38fd1498Szrj 2028*38fd1498Szrjfprofile-abs-path 2029*38fd1498SzrjCommon Report Var(profile_abs_path_flag) 2030*38fd1498SzrjGenerate absolute source path names for gcov. 2031*38fd1498Szrj 2032*38fd1498Szrjfprofile-arcs 2033*38fd1498SzrjCommon Report Var(profile_arc_flag) 2034*38fd1498SzrjInsert arc-based program profiling code. 2035*38fd1498Szrj 2036*38fd1498Szrjfprofile-dir= 2037*38fd1498SzrjCommon Joined RejectNegative Var(profile_data_prefix) 2038*38fd1498SzrjSet the top-level directory for storing the profile data. 2039*38fd1498SzrjThe default is 'pwd'. 2040*38fd1498Szrj 2041*38fd1498Szrjfprofile-correction 2042*38fd1498SzrjCommon Report Var(flag_profile_correction) 2043*38fd1498SzrjEnable correction of flow inconsistent profile data input. 2044*38fd1498Szrj 2045*38fd1498Szrjfprofile-update= 2046*38fd1498SzrjCommon Joined RejectNegative Enum(profile_update) Var(flag_profile_update) Init(PROFILE_UPDATE_SINGLE) 2047*38fd1498Szrj-fprofile-update=[single|atomic|prefer-atomic] Set the profile update method. 2048*38fd1498Szrj 2049*38fd1498SzrjEnum 2050*38fd1498SzrjName(profile_update) Type(enum profile_update) UnknownError(unknown profile update method %qs) 2051*38fd1498Szrj 2052*38fd1498SzrjEnumValue 2053*38fd1498SzrjEnum(profile_update) String(single) Value(PROFILE_UPDATE_SINGLE) 2054*38fd1498Szrj 2055*38fd1498SzrjEnumValue 2056*38fd1498SzrjEnum(profile_update) String(atomic) Value(PROFILE_UPDATE_ATOMIC) 2057*38fd1498Szrj 2058*38fd1498SzrjEnumValue 2059*38fd1498SzrjEnum(profile_update) String(prefer-atomic) Value(PROFILE_UPDATE_PREFER_ATOMIC) 2060*38fd1498Szrj 2061*38fd1498Szrjfprofile-generate 2062*38fd1498SzrjCommon 2063*38fd1498SzrjEnable common options for generating profile info for profile feedback directed optimizations. 2064*38fd1498Szrj 2065*38fd1498Szrjfprofile-generate= 2066*38fd1498SzrjCommon Joined RejectNegative 2067*38fd1498SzrjEnable common options for generating profile info for profile feedback directed optimizations, and set -fprofile-dir=. 2068*38fd1498Szrj 2069*38fd1498Szrjfprofile-use 2070*38fd1498SzrjCommon Var(flag_profile_use) 2071*38fd1498SzrjEnable common options for performing profile feedback directed optimizations. 2072*38fd1498Szrj 2073*38fd1498Szrjfprofile-use= 2074*38fd1498SzrjCommon Joined RejectNegative 2075*38fd1498SzrjEnable common options for performing profile feedback directed optimizations, and set -fprofile-dir=. 2076*38fd1498Szrj 2077*38fd1498Szrjfprofile-values 2078*38fd1498SzrjCommon Report Var(flag_profile_values) 2079*38fd1498SzrjInsert code to profile values of expressions. 2080*38fd1498Szrj 2081*38fd1498Szrjfprofile-report 2082*38fd1498SzrjCommon Report Var(profile_report) 2083*38fd1498SzrjReport on consistency of profile. 2084*38fd1498Szrj 2085*38fd1498Szrjfprofile-reorder-functions 2086*38fd1498SzrjCommon Report Var(flag_profile_reorder_functions) 2087*38fd1498SzrjEnable function reordering that improves code placement. 2088*38fd1498Szrj 2089*38fd1498Szrjfpatchable-function-entry= 2090*38fd1498SzrjCommon Joined Optimization 2091*38fd1498SzrjInsert NOP instructions at each function entry. 2092*38fd1498Szrj 2093*38fd1498Szrjfrandom-seed 2094*38fd1498SzrjCommon Var(common_deferred_options) Defer 2095*38fd1498Szrj 2096*38fd1498Szrjfrandom-seed= 2097*38fd1498SzrjCommon Joined RejectNegative Var(common_deferred_options) Defer 2098*38fd1498Szrj-frandom-seed=<string> Make compile reproducible using <string>. 2099*38fd1498Szrj 2100*38fd1498Szrj; This switch causes the command line that was used to create an 2101*38fd1498Szrj; object file to be recorded into the object file. The exact format 2102*38fd1498Szrj; of this recording is target and binary file format dependent. 2103*38fd1498Szrj; It is related to the -fverbose-asm switch, but that switch only 2104*38fd1498Szrj; records information in the assembler output file as comments, so 2105*38fd1498Szrj; they never reach the object file. 2106*38fd1498Szrjfrecord-gcc-switches 2107*38fd1498SzrjCommon Report Var(flag_record_gcc_switches) 2108*38fd1498SzrjRecord gcc command line switches in the object file. 2109*38fd1498Szrj 2110*38fd1498Szrjfreg-struct-return 2111*38fd1498SzrjCommon Report Var(flag_pcc_struct_return,0) Optimization 2112*38fd1498SzrjReturn small aggregates in registers. 2113*38fd1498Szrj 2114*38fd1498Szrjfregmove 2115*38fd1498SzrjCommon Ignore 2116*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2117*38fd1498Szrj 2118*38fd1498Szrjflifetime-dse 2119*38fd1498SzrjCommon Report Var(flag_lifetime_dse,2) Init(2) Optimization 2120*38fd1498SzrjTell DSE that the storage for a C++ object is dead when the constructor 2121*38fd1498Szrjstarts and when the destructor finishes. 2122*38fd1498Szrj 2123*38fd1498Szrjflifetime-dse= 2124*38fd1498SzrjCommon Joined RejectNegative UInteger Var(flag_lifetime_dse) Optimization IntegerRange(0, 2) 2125*38fd1498Szrj 2126*38fd1498Szrjflive-range-shrinkage 2127*38fd1498SzrjCommon Report Var(flag_live_range_shrinkage) Init(0) Optimization 2128*38fd1498SzrjRelief of register pressure through live range shrinkage. 2129*38fd1498Szrj 2130*38fd1498Szrjfrename-registers 2131*38fd1498SzrjCommon Report Var(flag_rename_registers) Init(2) Optimization 2132*38fd1498SzrjPerform a register renaming optimization pass. 2133*38fd1498Szrj 2134*38fd1498Szrjfschedule-fusion 2135*38fd1498SzrjCommon Report Var(flag_schedule_fusion) Init(2) Optimization 2136*38fd1498SzrjPerform a target dependent instruction fusion optimization pass. 2137*38fd1498Szrj 2138*38fd1498Szrjfreorder-blocks 2139*38fd1498SzrjCommon Report Var(flag_reorder_blocks) Optimization 2140*38fd1498SzrjReorder basic blocks to improve code placement. 2141*38fd1498Szrj 2142*38fd1498Szrjfreorder-blocks-algorithm= 2143*38fd1498SzrjCommon Joined RejectNegative Enum(reorder_blocks_algorithm) Var(flag_reorder_blocks_algorithm) Init(REORDER_BLOCKS_ALGORITHM_SIMPLE) Optimization 2144*38fd1498Szrj-freorder-blocks-algorithm=[simple|stc] Set the used basic block reordering algorithm. 2145*38fd1498Szrj 2146*38fd1498SzrjEnum 2147*38fd1498SzrjName(reorder_blocks_algorithm) Type(enum reorder_blocks_algorithm) UnknownError(unknown basic block reordering algorithm %qs) 2148*38fd1498Szrj 2149*38fd1498SzrjEnumValue 2150*38fd1498SzrjEnum(reorder_blocks_algorithm) String(simple) Value(REORDER_BLOCKS_ALGORITHM_SIMPLE) 2151*38fd1498Szrj 2152*38fd1498SzrjEnumValue 2153*38fd1498SzrjEnum(reorder_blocks_algorithm) String(stc) Value(REORDER_BLOCKS_ALGORITHM_STC) 2154*38fd1498Szrj 2155*38fd1498Szrjfreorder-blocks-and-partition 2156*38fd1498SzrjCommon Report Var(flag_reorder_blocks_and_partition) Optimization 2157*38fd1498SzrjReorder basic blocks and partition into hot and cold sections. 2158*38fd1498Szrj 2159*38fd1498Szrjfreorder-functions 2160*38fd1498SzrjCommon Report Var(flag_reorder_functions) Optimization 2161*38fd1498SzrjReorder functions to improve code placement. 2162*38fd1498Szrj 2163*38fd1498Szrjfrerun-cse-after-loop 2164*38fd1498SzrjCommon Report Var(flag_rerun_cse_after_loop) Optimization 2165*38fd1498SzrjAdd a common subexpression elimination pass after loop optimizations. 2166*38fd1498Szrj 2167*38fd1498Szrjfrerun-loop-opt 2168*38fd1498SzrjCommon Ignore 2169*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2170*38fd1498Szrj 2171*38fd1498Szrjfrounding-math 2172*38fd1498SzrjCommon Report Var(flag_rounding_math) Optimization SetByCombined 2173*38fd1498SzrjDisable optimizations that assume default FP rounding behavior. 2174*38fd1498Szrj 2175*38fd1498Szrjfsched-interblock 2176*38fd1498SzrjCommon Report Var(flag_schedule_interblock) Init(1) Optimization 2177*38fd1498SzrjEnable scheduling across basic blocks. 2178*38fd1498Szrj 2179*38fd1498Szrjfsched-pressure 2180*38fd1498SzrjCommon Report Var(flag_sched_pressure) Init(0) Optimization 2181*38fd1498SzrjEnable register pressure sensitive insn scheduling. 2182*38fd1498Szrj 2183*38fd1498Szrjfsched-spec 2184*38fd1498SzrjCommon Report Var(flag_schedule_speculative) Init(1) Optimization 2185*38fd1498SzrjAllow speculative motion of non-loads. 2186*38fd1498Szrj 2187*38fd1498Szrjfsched-spec-load 2188*38fd1498SzrjCommon Report Var(flag_schedule_speculative_load) Optimization 2189*38fd1498SzrjAllow speculative motion of some loads. 2190*38fd1498Szrj 2191*38fd1498Szrjfsched-spec-load-dangerous 2192*38fd1498SzrjCommon Report Var(flag_schedule_speculative_load_dangerous) Optimization 2193*38fd1498SzrjAllow speculative motion of more loads. 2194*38fd1498Szrj 2195*38fd1498Szrjfsched-verbose= 2196*38fd1498SzrjCommon RejectNegative Joined UInteger Var(sched_verbose_param) Init(1) 2197*38fd1498Szrj-fsched-verbose=<number> Set the verbosity level of the scheduler. 2198*38fd1498Szrj 2199*38fd1498Szrjfsched2-use-superblocks 2200*38fd1498SzrjCommon Report Var(flag_sched2_use_superblocks) Optimization 2201*38fd1498SzrjIf scheduling post reload, do superblock scheduling. 2202*38fd1498Szrj 2203*38fd1498Szrjfsched2-use-traces 2204*38fd1498SzrjCommon Ignore 2205*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2206*38fd1498Szrj 2207*38fd1498Szrjfschedule-insns 2208*38fd1498SzrjCommon Report Var(flag_schedule_insns) Optimization 2209*38fd1498SzrjReschedule instructions before register allocation. 2210*38fd1498Szrj 2211*38fd1498Szrjfschedule-insns2 2212*38fd1498SzrjCommon Report Var(flag_schedule_insns_after_reload) Optimization 2213*38fd1498SzrjReschedule instructions after register allocation. 2214*38fd1498Szrj 2215*38fd1498Szrj; This flag should be on when a target implements non-trivial 2216*38fd1498Szrj; scheduling hooks, maybe saving some information for its own sake. 2217*38fd1498Szrj; On IA64, for example, this is used for correct bundling. 2218*38fd1498Szrjfselective-scheduling 2219*38fd1498SzrjCommon Report Var(flag_selective_scheduling) Optimization 2220*38fd1498SzrjSchedule instructions using selective scheduling algorithm. 2221*38fd1498Szrj 2222*38fd1498Szrjfselective-scheduling2 2223*38fd1498SzrjCommon Report Var(flag_selective_scheduling2) Optimization 2224*38fd1498SzrjRun selective scheduling after reload. 2225*38fd1498Szrj 2226*38fd1498Szrjfself-test= 2227*38fd1498SzrjCommon Undocumented Joined Var(flag_self_test) 2228*38fd1498SzrjRun self-tests, using the given path to locate test files. 2229*38fd1498Szrj 2230*38fd1498Szrjfsel-sched-pipelining 2231*38fd1498SzrjCommon Report Var(flag_sel_sched_pipelining) Init(0) Optimization 2232*38fd1498SzrjPerform software pipelining of inner loops during selective scheduling. 2233*38fd1498Szrj 2234*38fd1498Szrjfsel-sched-pipelining-outer-loops 2235*38fd1498SzrjCommon Report Var(flag_sel_sched_pipelining_outer_loops) Init(0) Optimization 2236*38fd1498SzrjPerform software pipelining of outer loops during selective scheduling. 2237*38fd1498Szrj 2238*38fd1498Szrjfsel-sched-reschedule-pipelined 2239*38fd1498SzrjCommon Report Var(flag_sel_sched_reschedule_pipelined) Init(0) Optimization 2240*38fd1498SzrjReschedule pipelined regions without pipelining. 2241*38fd1498Szrj 2242*38fd1498Szrjfsemantic-interposition 2243*38fd1498SzrjCommon Report Var(flag_semantic_interposition) Init(1) 2244*38fd1498SzrjAllow interposing function (or variables) by ones with different semantics (or initializer) respectively by dynamic linker. 2245*38fd1498Szrj 2246*38fd1498Szrj; sched_stalled_insns means that insns can be moved prematurely from the queue 2247*38fd1498Szrj; of stalled insns into the ready list. 2248*38fd1498Szrjfsched-stalled-insns 2249*38fd1498SzrjCommon Report Var(flag_sched_stalled_insns) Optimization UInteger 2250*38fd1498SzrjAllow premature scheduling of queued insns. 2251*38fd1498Szrj 2252*38fd1498Szrjfsched-stalled-insns= 2253*38fd1498SzrjCommon RejectNegative Joined UInteger Optimization 2254*38fd1498Szrj-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled. 2255*38fd1498Szrj 2256*38fd1498Szrj; sched_stalled_insns_dep controls how many recently scheduled cycles will 2257*38fd1498Szrj; be examined for a dependency on a stalled insn that is candidate for 2258*38fd1498Szrj; premature removal from the queue of stalled insns into the ready list (has 2259*38fd1498Szrj; an effect only if the flag 'sched_stalled_insns' is set). 2260*38fd1498Szrjfsched-stalled-insns-dep 2261*38fd1498SzrjCommon Report Var(flag_sched_stalled_insns_dep,1) Init(1) Optimization UInteger 2262*38fd1498SzrjSet dependence distance checking in premature scheduling of queued insns. 2263*38fd1498Szrj 2264*38fd1498Szrjfsched-stalled-insns-dep= 2265*38fd1498SzrjCommon RejectNegative Joined UInteger Optimization 2266*38fd1498Szrj-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns. 2267*38fd1498Szrj 2268*38fd1498Szrjfsched-group-heuristic 2269*38fd1498SzrjCommon Report Var(flag_sched_group_heuristic) Init(1) Optimization 2270*38fd1498SzrjEnable the group heuristic in the scheduler. 2271*38fd1498Szrj 2272*38fd1498Szrjfsched-critical-path-heuristic 2273*38fd1498SzrjCommon Report Var(flag_sched_critical_path_heuristic) Init(1) Optimization 2274*38fd1498SzrjEnable the critical path heuristic in the scheduler. 2275*38fd1498Szrj 2276*38fd1498Szrjfsched-spec-insn-heuristic 2277*38fd1498SzrjCommon Report Var(flag_sched_spec_insn_heuristic) Init(1) Optimization 2278*38fd1498SzrjEnable the speculative instruction heuristic in the scheduler. 2279*38fd1498Szrj 2280*38fd1498Szrjfsched-rank-heuristic 2281*38fd1498SzrjCommon Report Var(flag_sched_rank_heuristic) Init(1) Optimization 2282*38fd1498SzrjEnable the rank heuristic in the scheduler. 2283*38fd1498Szrj 2284*38fd1498Szrjfsched-last-insn-heuristic 2285*38fd1498SzrjCommon Report Var(flag_sched_last_insn_heuristic) Init(1) Optimization 2286*38fd1498SzrjEnable the last instruction heuristic in the scheduler. 2287*38fd1498Szrj 2288*38fd1498Szrjfsched-dep-count-heuristic 2289*38fd1498SzrjCommon Report Var(flag_sched_dep_count_heuristic) Init(1) Optimization 2290*38fd1498SzrjEnable the dependent count heuristic in the scheduler. 2291*38fd1498Szrj 2292*38fd1498Szrjfsection-anchors 2293*38fd1498SzrjCommon Report Var(flag_section_anchors) Optimization 2294*38fd1498SzrjAccess data in the same section from shared anchor points. 2295*38fd1498Szrj 2296*38fd1498Szrjfsee 2297*38fd1498SzrjCommon Ignore 2298*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2299*38fd1498Szrj 2300*38fd1498Szrjfzee 2301*38fd1498SzrjCommon Ignore 2302*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2303*38fd1498Szrj 2304*38fd1498Szrjfree 2305*38fd1498SzrjCommon Report Var(flag_ree) Init(0) 2306*38fd1498SzrjTurn on Redundant Extensions Elimination pass. 2307*38fd1498Szrj 2308*38fd1498Szrjfshow-column 2309*38fd1498SzrjCommon Report Var(flag_show_column) Init(1) 2310*38fd1498SzrjShow column numbers in diagnostics, when available. Default on. 2311*38fd1498Szrj 2312*38fd1498Szrjfshrink-wrap 2313*38fd1498SzrjCommon Report Var(flag_shrink_wrap) Optimization 2314*38fd1498SzrjEmit function prologues only before parts of the function that need it, 2315*38fd1498Szrjrather than at the top of the function. 2316*38fd1498Szrj 2317*38fd1498Szrjfshrink-wrap-separate 2318*38fd1498SzrjCommon Report Var(flag_shrink_wrap_separate) Init(1) Optimization 2319*38fd1498SzrjShrink-wrap parts of the prologue and epilogue separately. 2320*38fd1498Szrj 2321*38fd1498Szrjfsignaling-nans 2322*38fd1498SzrjCommon Report Var(flag_signaling_nans) Optimization SetByCombined 2323*38fd1498SzrjDisable optimizations observable by IEEE signaling NaNs. 2324*38fd1498Szrj 2325*38fd1498Szrjfsigned-zeros 2326*38fd1498SzrjCommon Report Var(flag_signed_zeros) Init(1) Optimization SetByCombined 2327*38fd1498SzrjDisable floating point optimizations that ignore the IEEE signedness of zero. 2328*38fd1498Szrj 2329*38fd1498Szrjfsingle-precision-constant 2330*38fd1498SzrjCommon Report Var(flag_single_precision_constant) Optimization 2331*38fd1498SzrjConvert floating point constants to single precision constants. 2332*38fd1498Szrj 2333*38fd1498Szrjfsplit-ivs-in-unroller 2334*38fd1498SzrjCommon Report Var(flag_split_ivs_in_unroller) Init(1) Optimization 2335*38fd1498SzrjSplit lifetimes of induction variables when loops are unrolled. 2336*38fd1498Szrj 2337*38fd1498Szrjfsplit-stack 2338*38fd1498SzrjCommon Report Var(flag_split_stack) Init(-1) 2339*38fd1498SzrjGenerate discontiguous stack frames. 2340*38fd1498Szrj 2341*38fd1498Szrjfsplit-wide-types 2342*38fd1498SzrjCommon Report Var(flag_split_wide_types) Optimization 2343*38fd1498SzrjSplit wide types into independent registers. 2344*38fd1498Szrj 2345*38fd1498Szrjfssa-backprop 2346*38fd1498SzrjCommon Report Var(flag_ssa_backprop) Init(1) Optimization 2347*38fd1498SzrjEnable backward propagation of use properties at the SSA level. 2348*38fd1498Szrj 2349*38fd1498Szrjfssa-phiopt 2350*38fd1498SzrjCommon Report Var(flag_ssa_phiopt) Optimization 2351*38fd1498SzrjOptimize conditional patterns using SSA PHI nodes. 2352*38fd1498Szrj 2353*38fd1498Szrjfstdarg-opt 2354*38fd1498SzrjCommon Report Var(flag_stdarg_opt) Init(1) Optimization 2355*38fd1498SzrjOptimize amount of stdarg registers saved to stack at start of function. 2356*38fd1498Szrj 2357*38fd1498Szrjfvariable-expansion-in-unroller 2358*38fd1498SzrjCommon Report Var(flag_variable_expansion_in_unroller) Optimization 2359*38fd1498SzrjApply variable expansion when loops are unrolled. 2360*38fd1498Szrj 2361*38fd1498Szrjfstack-check= 2362*38fd1498SzrjCommon Report RejectNegative Joined Optimization 2363*38fd1498Szrj-fstack-check=[no|generic|specific] Insert stack checking code into the program. 2364*38fd1498Szrj 2365*38fd1498Szrjfstack-check 2366*38fd1498SzrjCommon Alias(fstack-check=, specific, no) 2367*38fd1498SzrjInsert stack checking code into the program. Same as -fstack-check=specific. 2368*38fd1498Szrj 2369*38fd1498Szrjfstack-clash-protection 2370*38fd1498SzrjCommon Report Var(flag_stack_clash_protection) Optimization 2371*38fd1498SzrjInsert code to probe each page of stack space as it is allocated to protect 2372*38fd1498Szrjfrom stack-clash style attacks. 2373*38fd1498Szrj 2374*38fd1498Szrjfstack-limit 2375*38fd1498SzrjCommon Var(common_deferred_options) Defer 2376*38fd1498Szrj 2377*38fd1498Szrjfstack-limit-register= 2378*38fd1498SzrjCommon RejectNegative Joined Var(common_deferred_options) Defer 2379*38fd1498Szrj-fstack-limit-register=<register> Trap if the stack goes past <register>. 2380*38fd1498Szrj 2381*38fd1498Szrjfstack-limit-symbol= 2382*38fd1498SzrjCommon RejectNegative Joined Var(common_deferred_options) Defer 2383*38fd1498Szrj-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name>. 2384*38fd1498Szrj 2385*38fd1498Szrjfstack-protector 2386*38fd1498SzrjCommon Report Var(flag_stack_protect, 1) Init(-1) Optimization 2387*38fd1498SzrjUse propolice as a stack protection method. 2388*38fd1498Szrj 2389*38fd1498Szrjfstack-protector-all 2390*38fd1498SzrjCommon Report RejectNegative Var(flag_stack_protect, 2) Init(-1) Optimization 2391*38fd1498SzrjUse a stack protection method for every function. 2392*38fd1498Szrj 2393*38fd1498Szrjfstack-protector-strong 2394*38fd1498SzrjCommon Report RejectNegative Var(flag_stack_protect, 3) Init(-1) Optimization 2395*38fd1498SzrjUse a smart stack protection method for certain functions. 2396*38fd1498Szrj 2397*38fd1498Szrjfstack-protector-explicit 2398*38fd1498SzrjCommon Report RejectNegative Var(flag_stack_protect, 4) Optimization 2399*38fd1498SzrjUse stack protection method only for functions with the stack_protect attribute. 2400*38fd1498Szrj 2401*38fd1498Szrjfstack-usage 2402*38fd1498SzrjCommon RejectNegative Var(flag_stack_usage) 2403*38fd1498SzrjOutput stack usage information on a per-function basis. 2404*38fd1498Szrj 2405*38fd1498Szrjfstrength-reduce 2406*38fd1498SzrjCommon Ignore 2407*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2408*38fd1498Szrj 2409*38fd1498Szrj; Nonzero if we should do (language-dependent) alias analysis. 2410*38fd1498Szrj; Typically, this analysis will assume that expressions of certain 2411*38fd1498Szrj; types do not alias expressions of certain other types. Only used 2412*38fd1498Szrj; if alias analysis (in general) is enabled. 2413*38fd1498Szrjfstrict-aliasing 2414*38fd1498SzrjCommon Report Var(flag_strict_aliasing) Optimization 2415*38fd1498SzrjAssume strict aliasing rules apply. 2416*38fd1498Szrj 2417*38fd1498Szrjfstrict-overflow 2418*38fd1498SzrjCommon Report 2419*38fd1498SzrjTreat signed overflow as undefined. Negated as -fwrapv -fwrapv-pointer. 2420*38fd1498Szrj 2421*38fd1498Szrjfsync-libcalls 2422*38fd1498SzrjCommon Report Var(flag_sync_libcalls) Init(1) 2423*38fd1498SzrjImplement __atomic operations via libcalls to legacy __sync functions. 2424*38fd1498Szrj 2425*38fd1498Szrjfsyntax-only 2426*38fd1498SzrjCommon Report Var(flag_syntax_only) 2427*38fd1498SzrjCheck for syntax errors, then stop. 2428*38fd1498Szrj 2429*38fd1498Szrjftest-coverage 2430*38fd1498SzrjCommon Report Var(flag_test_coverage) 2431*38fd1498SzrjCreate data files needed by \"gcov\". 2432*38fd1498Szrj 2433*38fd1498Szrjfthread-jumps 2434*38fd1498SzrjCommon Report Var(flag_thread_jumps) Optimization 2435*38fd1498SzrjPerform jump threading optimizations. 2436*38fd1498Szrj 2437*38fd1498Szrjftime-report 2438*38fd1498SzrjCommon Report Var(time_report) 2439*38fd1498SzrjReport the time taken by each compiler pass. 2440*38fd1498Szrj 2441*38fd1498Szrjftime-report-details 2442*38fd1498SzrjCommon Report Var(time_report_details) 2443*38fd1498SzrjRecord times taken by sub-phases separately. 2444*38fd1498Szrj 2445*38fd1498Szrjftls-model= 2446*38fd1498SzrjCommon Joined RejectNegative Enum(tls_model) Var(flag_tls_default) Init(TLS_MODEL_GLOBAL_DYNAMIC) 2447*38fd1498Szrj-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model. 2448*38fd1498Szrj 2449*38fd1498SzrjEnum 2450*38fd1498SzrjName(tls_model) Type(enum tls_model) UnknownError(unknown TLS model %qs) 2451*38fd1498Szrj 2452*38fd1498SzrjEnumValue 2453*38fd1498SzrjEnum(tls_model) String(global-dynamic) Value(TLS_MODEL_GLOBAL_DYNAMIC) 2454*38fd1498Szrj 2455*38fd1498SzrjEnumValue 2456*38fd1498SzrjEnum(tls_model) String(local-dynamic) Value(TLS_MODEL_LOCAL_DYNAMIC) 2457*38fd1498Szrj 2458*38fd1498SzrjEnumValue 2459*38fd1498SzrjEnum(tls_model) String(initial-exec) Value(TLS_MODEL_INITIAL_EXEC) 2460*38fd1498Szrj 2461*38fd1498SzrjEnumValue 2462*38fd1498SzrjEnum(tls_model) String(local-exec) Value(TLS_MODEL_LOCAL_EXEC) 2463*38fd1498Szrj 2464*38fd1498Szrjftoplevel-reorder 2465*38fd1498SzrjCommon Report Var(flag_toplevel_reorder) Init(2) 2466*38fd1498SzrjReorder top level functions, variables, and asms. 2467*38fd1498Szrj 2468*38fd1498Szrjftracer 2469*38fd1498SzrjCommon Report Var(flag_tracer) Optimization 2470*38fd1498SzrjPerform superblock formation via tail duplication. 2471*38fd1498Szrj 2472*38fd1498Szrjftrampolines 2473*38fd1498SzrjCommon Report Var(flag_trampolines) Init(0) 2474*38fd1498SzrjFor targets that normally need trampolines for nested functions, always 2475*38fd1498Szrjgenerate them instead of using descriptors. 2476*38fd1498Szrj 2477*38fd1498Szrj; Zero means that floating-point math operations cannot generate a 2478*38fd1498Szrj; (user-visible) trap. This is the case, for example, in nonstop 2479*38fd1498Szrj; IEEE 754 arithmetic. 2480*38fd1498Szrjftrapping-math 2481*38fd1498SzrjCommon Report Var(flag_trapping_math) Init(1) Optimization SetByCombined 2482*38fd1498SzrjAssume floating-point operations can trap. 2483*38fd1498Szrj 2484*38fd1498Szrjftrapv 2485*38fd1498SzrjCommon Report Var(flag_trapv) Optimization 2486*38fd1498SzrjTrap for signed overflow in addition, subtraction and multiplication. 2487*38fd1498Szrj 2488*38fd1498Szrjftree-ccp 2489*38fd1498SzrjCommon Report Var(flag_tree_ccp) Optimization 2490*38fd1498SzrjEnable SSA-CCP optimization on trees. 2491*38fd1498Szrj 2492*38fd1498Szrjftree-bit-ccp 2493*38fd1498SzrjCommon Report Var(flag_tree_bit_ccp) Optimization 2494*38fd1498SzrjEnable SSA-BIT-CCP optimization on trees. 2495*38fd1498Szrj 2496*38fd1498Szrjftree-store-ccp 2497*38fd1498SzrjCommon Ignore 2498*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2499*38fd1498Szrj 2500*38fd1498Szrjftree-ch 2501*38fd1498SzrjCommon Report Var(flag_tree_ch) Optimization 2502*38fd1498SzrjEnable loop header copying on trees. 2503*38fd1498Szrj 2504*38fd1498Szrjftree-coalesce-inlined-vars 2505*38fd1498SzrjCommon Ignore RejectNegative 2506*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2507*38fd1498Szrj 2508*38fd1498Szrjftree-coalesce-vars 2509*38fd1498SzrjCommon Report Var(flag_tree_coalesce_vars) Optimization 2510*38fd1498SzrjEnable SSA coalescing of user variables. 2511*38fd1498Szrj 2512*38fd1498Szrjftree-copyrename 2513*38fd1498SzrjCommon Ignore 2514*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2515*38fd1498Szrj 2516*38fd1498Szrjftree-copy-prop 2517*38fd1498SzrjCommon Report Var(flag_tree_copy_prop) Optimization 2518*38fd1498SzrjEnable copy propagation on trees. 2519*38fd1498Szrj 2520*38fd1498Szrjftree-store-copy-prop 2521*38fd1498SzrjCommon Ignore 2522*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2523*38fd1498Szrj 2524*38fd1498Szrjftree-cselim 2525*38fd1498SzrjCommon Report Var(flag_tree_cselim) Init(2) Optimization 2526*38fd1498SzrjTransform condition stores into unconditional ones. 2527*38fd1498Szrj 2528*38fd1498Szrjftree-switch-conversion 2529*38fd1498SzrjCommon Report Var(flag_tree_switch_conversion) Optimization 2530*38fd1498SzrjPerform conversions of switch initializations. 2531*38fd1498Szrj 2532*38fd1498Szrjftree-dce 2533*38fd1498SzrjCommon Report Var(flag_tree_dce) Optimization 2534*38fd1498SzrjEnable SSA dead code elimination optimization on trees. 2535*38fd1498Szrj 2536*38fd1498Szrjftree-dominator-opts 2537*38fd1498SzrjCommon Report Var(flag_tree_dom) Optimization 2538*38fd1498SzrjEnable dominator optimizations. 2539*38fd1498Szrj 2540*38fd1498Szrjftree-tail-merge 2541*38fd1498SzrjCommon Report Var(flag_tree_tail_merge) Optimization 2542*38fd1498SzrjEnable tail merging on trees. 2543*38fd1498Szrj 2544*38fd1498Szrjftree-dse 2545*38fd1498SzrjCommon Report Var(flag_tree_dse) Optimization 2546*38fd1498SzrjEnable dead store elimination. 2547*38fd1498Szrj 2548*38fd1498Szrjftree-forwprop 2549*38fd1498SzrjCommon Report Var(flag_tree_forwprop) Init(1) Optimization 2550*38fd1498SzrjEnable forward propagation on trees. 2551*38fd1498Szrj 2552*38fd1498Szrjftree-fre 2553*38fd1498SzrjCommon Report Var(flag_tree_fre) Optimization 2554*38fd1498SzrjEnable Full Redundancy Elimination (FRE) on trees. 2555*38fd1498Szrj 2556*38fd1498Szrjfoptimize-strlen 2557*38fd1498SzrjCommon Report Var(flag_optimize_strlen) Optimization 2558*38fd1498SzrjEnable string length optimizations on trees. 2559*38fd1498Szrj 2560*38fd1498Szrjfisolate-erroneous-paths-dereference 2561*38fd1498SzrjCommon Report Var(flag_isolate_erroneous_paths_dereference) Optimization 2562*38fd1498SzrjDetect paths that trigger erroneous or undefined behavior due to 2563*38fd1498Szrjdereferencing a null pointer. Isolate those paths from the main control 2564*38fd1498Szrjflow and turn the statement with erroneous or undefined behavior into a trap. 2565*38fd1498Szrj 2566*38fd1498Szrjfisolate-erroneous-paths-attribute 2567*38fd1498SzrjCommon Report Var(flag_isolate_erroneous_paths_attribute) Optimization 2568*38fd1498SzrjDetect paths that trigger erroneous or undefined behavior due to a null value 2569*38fd1498Szrjbeing used in a way forbidden by a returns_nonnull or nonnull 2570*38fd1498Szrjattribute. Isolate those paths from the main control flow and turn the 2571*38fd1498Szrjstatement with erroneous or undefined behavior into a trap. 2572*38fd1498Szrj 2573*38fd1498Szrjftree-loop-distribution 2574*38fd1498SzrjCommon Report Var(flag_tree_loop_distribution) Optimization 2575*38fd1498SzrjEnable loop distribution on trees. 2576*38fd1498Szrj 2577*38fd1498Szrjftree-loop-distribute-patterns 2578*38fd1498SzrjCommon Report Var(flag_tree_loop_distribute_patterns) Optimization 2579*38fd1498SzrjEnable loop distribution for patterns transformed into a library call. 2580*38fd1498Szrj 2581*38fd1498Szrjftree-loop-im 2582*38fd1498SzrjCommon Report Var(flag_tree_loop_im) Init(1) Optimization 2583*38fd1498SzrjEnable loop invariant motion on trees. 2584*38fd1498Szrj 2585*38fd1498Szrjftree-loop-linear 2586*38fd1498SzrjCommon Alias(floop-nest-optimize) 2587*38fd1498SzrjEnable loop nest transforms. Same as -floop-nest-optimize. 2588*38fd1498Szrj 2589*38fd1498Szrjftree-loop-ivcanon 2590*38fd1498SzrjCommon Report Var(flag_tree_loop_ivcanon) Init(1) Optimization 2591*38fd1498SzrjCreate canonical induction variables in loops. 2592*38fd1498Szrj 2593*38fd1498Szrjftree-loop-optimize 2594*38fd1498SzrjCommon Report Var(flag_tree_loop_optimize) Init(1) Optimization 2595*38fd1498SzrjEnable loop optimizations on tree level. 2596*38fd1498Szrj 2597*38fd1498Szrjftree-parallelize-loops= 2598*38fd1498SzrjCommon Report Joined RejectNegative UInteger Var(flag_tree_parallelize_loops) Init(1) Optimization 2599*38fd1498Szrj-ftree-parallelize-loops=<number> Enable automatic parallelization of loops. 2600*38fd1498Szrj 2601*38fd1498Szrjftree-phiprop 2602*38fd1498SzrjCommon Report Var(flag_tree_phiprop) Init(1) Optimization 2603*38fd1498SzrjEnable hoisting loads from conditional pointers. 2604*38fd1498Szrj 2605*38fd1498Szrjftree-pre 2606*38fd1498SzrjCommon Report Var(flag_tree_pre) Optimization 2607*38fd1498SzrjEnable SSA-PRE optimization on trees. 2608*38fd1498Szrj 2609*38fd1498Szrjftree-partial-pre 2610*38fd1498SzrjCommon Report Var(flag_tree_partial_pre) Optimization 2611*38fd1498SzrjIn SSA-PRE optimization on trees, enable partial-partial redundancy elimination. 2612*38fd1498Szrj 2613*38fd1498Szrjftree-pta 2614*38fd1498SzrjCommon Report Var(flag_tree_pta) Optimization 2615*38fd1498SzrjPerform function-local points-to analysis on trees. 2616*38fd1498Szrj 2617*38fd1498Szrjftree-reassoc 2618*38fd1498SzrjCommon Report Var(flag_tree_reassoc) Init(1) Optimization 2619*38fd1498SzrjEnable reassociation on tree level. 2620*38fd1498Szrj 2621*38fd1498Szrjftree-salias 2622*38fd1498SzrjCommon Ignore 2623*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2624*38fd1498Szrj 2625*38fd1498Szrjftree-sink 2626*38fd1498SzrjCommon Report Var(flag_tree_sink) Optimization 2627*38fd1498SzrjEnable SSA code sinking on trees. 2628*38fd1498Szrj 2629*38fd1498Szrjftree-slsr 2630*38fd1498SzrjCommon Report Var(flag_tree_slsr) Optimization 2631*38fd1498SzrjPerform straight-line strength reduction. 2632*38fd1498Szrj 2633*38fd1498Szrjftree-sra 2634*38fd1498SzrjCommon Report Var(flag_tree_sra) Optimization 2635*38fd1498SzrjPerform scalar replacement of aggregates. 2636*38fd1498Szrj 2637*38fd1498Szrjftree-ter 2638*38fd1498SzrjCommon Report Var(flag_tree_ter) Optimization 2639*38fd1498SzrjReplace temporary expressions in the SSA->normal pass. 2640*38fd1498Szrj 2641*38fd1498Szrjftree-lrs 2642*38fd1498SzrjCommon Report Var(flag_tree_live_range_split) Optimization 2643*38fd1498SzrjPerform live range splitting during the SSA->normal pass. 2644*38fd1498Szrj 2645*38fd1498Szrjftree-vrp 2646*38fd1498SzrjCommon Report Var(flag_tree_vrp) Init(0) Optimization 2647*38fd1498SzrjPerform Value Range Propagation on trees. 2648*38fd1498Szrj 2649*38fd1498Szrjfsplit-paths 2650*38fd1498SzrjCommon Report Var(flag_split_paths) Init(0) Optimization 2651*38fd1498SzrjSplit paths leading to loop backedges. 2652*38fd1498Szrj 2653*38fd1498Szrjfunconstrained-commons 2654*38fd1498SzrjCommon Var(flag_unconstrained_commons) Optimization 2655*38fd1498SzrjAssume common declarations may be overridden with ones with a larger 2656*38fd1498Szrjtrailing array. 2657*38fd1498Szrj 2658*38fd1498Szrjfunit-at-a-time 2659*38fd1498SzrjCommon Report Var(flag_unit_at_a_time) Init(1) 2660*38fd1498SzrjCompile whole compilation unit at a time. 2661*38fd1498Szrj 2662*38fd1498Szrjfunroll-loops 2663*38fd1498SzrjCommon Report Var(flag_unroll_loops) Optimization 2664*38fd1498SzrjPerform loop unrolling when iteration count is known. 2665*38fd1498Szrj 2666*38fd1498Szrjfunroll-all-loops 2667*38fd1498SzrjCommon Report Var(flag_unroll_all_loops) Optimization 2668*38fd1498SzrjPerform loop unrolling for all loops. 2669*38fd1498Szrj 2670*38fd1498Szrj; Nonzero means that loop optimizer may assume that the induction variables 2671*38fd1498Szrj; that control loops do not overflow and that the loops with nontrivial 2672*38fd1498Szrj; exit condition are not infinite 2673*38fd1498Szrjfunsafe-loop-optimizations 2674*38fd1498SzrjCommon Ignore 2675*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2676*38fd1498Szrj 2677*38fd1498Szrjfassociative-math 2678*38fd1498SzrjCommon Report Var(flag_associative_math) SetByCombined Optimization 2679*38fd1498SzrjAllow optimization for floating-point arithmetic which may change the 2680*38fd1498Szrjresult of the operation due to rounding. 2681*38fd1498Szrj 2682*38fd1498Szrjfreciprocal-math 2683*38fd1498SzrjCommon Report Var(flag_reciprocal_math) SetByCombined Optimization 2684*38fd1498SzrjSame as -fassociative-math for expressions which include division. 2685*38fd1498Szrj 2686*38fd1498Szrj; Nonzero means that unsafe floating-point math optimizations are allowed 2687*38fd1498Szrj; for the sake of speed. IEEE compliance is not guaranteed, and operations 2688*38fd1498Szrj; are allowed to assume that their arguments and results are "normal" 2689*38fd1498Szrj; (e.g., nonnegative for SQRT). 2690*38fd1498Szrjfunsafe-math-optimizations 2691*38fd1498SzrjCommon Report Var(flag_unsafe_math_optimizations) Optimization SetByCombined 2692*38fd1498SzrjAllow math optimizations that may violate IEEE or ISO standards. 2693*38fd1498Szrj 2694*38fd1498Szrjfunswitch-loops 2695*38fd1498SzrjCommon Report Var(flag_unswitch_loops) Optimization 2696*38fd1498SzrjPerform loop unswitching. 2697*38fd1498Szrj 2698*38fd1498Szrjfsplit-loops 2699*38fd1498SzrjCommon Report Var(flag_split_loops) Optimization 2700*38fd1498SzrjPerform loop splitting. 2701*38fd1498Szrj 2702*38fd1498Szrjfunwind-tables 2703*38fd1498SzrjCommon Report Var(flag_unwind_tables) Optimization 2704*38fd1498SzrjJust generate unwind tables for exception handling. 2705*38fd1498Szrj 2706*38fd1498Szrjfuse-ld=bfd 2707*38fd1498SzrjCommon Driver Negative(fuse-ld=gold) 2708*38fd1498SzrjUse the bfd linker instead of the default linker. 2709*38fd1498Szrj 2710*38fd1498Szrjfuse-ld=gold 2711*38fd1498SzrjCommon Driver Negative(fuse-ld=bfd) 2712*38fd1498SzrjUse the gold linker instead of the default linker. 2713*38fd1498Szrj 2714*38fd1498Szrjfuse-linker-plugin 2715*38fd1498SzrjCommon Undocumented Var(flag_use_linker_plugin) 2716*38fd1498Szrj 2717*38fd1498Szrj; Positive if we should track variables, negative if we should run 2718*38fd1498Szrj; the var-tracking pass only to discard debug annotations, zero if 2719*38fd1498Szrj; we're not to run it. When flag_var_tracking == 2 (AUTODETECT_VALUE) it 2720*38fd1498Szrj; will be set according to optimize, debug_info_level and debug_hooks 2721*38fd1498Szrj; in process_options (). 2722*38fd1498Szrjfvar-tracking 2723*38fd1498SzrjCommon Report Var(flag_var_tracking) Init(2) PerFunction 2724*38fd1498SzrjPerform variable tracking. 2725*38fd1498Szrj 2726*38fd1498Szrj; Positive if we should track variables at assignments, negative if 2727*38fd1498Szrj; we should run the var-tracking pass only to discard debug 2728*38fd1498Szrj; annotations. When flag_var_tracking_assignments == 2729*38fd1498Szrj; AUTODETECT_VALUE it will be set according to flag_var_tracking. 2730*38fd1498Szrjfvar-tracking-assignments 2731*38fd1498SzrjCommon Report Var(flag_var_tracking_assignments) Init(2) PerFunction 2732*38fd1498SzrjPerform variable tracking by annotating assignments. 2733*38fd1498Szrj 2734*38fd1498Szrj; Nonzero if we should toggle flag_var_tracking_assignments after 2735*38fd1498Szrj; processing options and computing its default. */ 2736*38fd1498Szrjfvar-tracking-assignments-toggle 2737*38fd1498SzrjCommon Report Var(flag_var_tracking_assignments_toggle) PerFunction 2738*38fd1498SzrjToggle -fvar-tracking-assignments. 2739*38fd1498Szrj 2740*38fd1498Szrj; Positive if we should track uninitialized variables, negative if 2741*38fd1498Szrj; we should run the var-tracking pass only to discard debug 2742*38fd1498Szrj; annotations. When flag_var_tracking_uninit == AUTODETECT_VALUE it 2743*38fd1498Szrj; will be set according to flag_var_tracking. 2744*38fd1498Szrjfvar-tracking-uninit 2745*38fd1498SzrjCommon Report Var(flag_var_tracking_uninit) PerFunction 2746*38fd1498SzrjPerform variable tracking and also tag variables that are uninitialized. 2747*38fd1498Szrj 2748*38fd1498Szrj; Alias to enable both -ftree-loop-vectorize and -ftree-slp-vectorize. 2749*38fd1498Szrjftree-vectorize 2750*38fd1498SzrjCommon Report Optimization 2751*38fd1498SzrjEnable vectorization on trees. 2752*38fd1498Szrj 2753*38fd1498Szrjftree-vectorizer-verbose= 2754*38fd1498SzrjCommon Joined RejectNegative Ignore 2755*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2756*38fd1498Szrj 2757*38fd1498Szrjftree-loop-vectorize 2758*38fd1498SzrjCommon Report Var(flag_tree_loop_vectorize) Optimization EnabledBy(ftree-vectorize) 2759*38fd1498SzrjEnable loop vectorization on trees. 2760*38fd1498Szrj 2761*38fd1498Szrjftree-slp-vectorize 2762*38fd1498SzrjCommon Report Var(flag_tree_slp_vectorize) Optimization EnabledBy(ftree-vectorize) 2763*38fd1498SzrjEnable basic block vectorization (SLP) on trees. 2764*38fd1498Szrj 2765*38fd1498Szrjfvect-cost-model= 2766*38fd1498SzrjCommon Joined RejectNegative Enum(vect_cost_model) Var(flag_vect_cost_model) Init(VECT_COST_MODEL_DEFAULT) Optimization 2767*38fd1498SzrjSpecifies the cost model for vectorization. 2768*38fd1498Szrj-fvect-cost-model=[unlimited|dynamic|cheap] Specifies the cost model for vectorization. 2769*38fd1498Szrj 2770*38fd1498Szrjfsimd-cost-model= 2771*38fd1498SzrjCommon Joined RejectNegative Enum(vect_cost_model) Var(flag_simd_cost_model) Init(VECT_COST_MODEL_UNLIMITED) Optimization 2772*38fd1498Szrj-fsimd-cost-model=[unlimited|dynamic|cheap] Specifies the vectorization cost model for code marked with a simd directive. 2773*38fd1498Szrj 2774*38fd1498SzrjEnum 2775*38fd1498SzrjName(vect_cost_model) Type(enum vect_cost_model) UnknownError(unknown vectorizer cost model %qs) 2776*38fd1498Szrj 2777*38fd1498SzrjEnumValue 2778*38fd1498SzrjEnum(vect_cost_model) String(unlimited) Value(VECT_COST_MODEL_UNLIMITED) 2779*38fd1498Szrj 2780*38fd1498SzrjEnumValue 2781*38fd1498SzrjEnum(vect_cost_model) String(dynamic) Value(VECT_COST_MODEL_DYNAMIC) 2782*38fd1498Szrj 2783*38fd1498SzrjEnumValue 2784*38fd1498SzrjEnum(vect_cost_model) String(cheap) Value(VECT_COST_MODEL_CHEAP) 2785*38fd1498Szrj 2786*38fd1498Szrjfvect-cost-model 2787*38fd1498SzrjCommon Alias(fvect-cost-model=,dynamic,unlimited) 2788*38fd1498SzrjEnables the dynamic vectorizer cost model. Preserved for backward compatibility. 2789*38fd1498Szrj 2790*38fd1498Szrjftree-vect-loop-version 2791*38fd1498SzrjCommon Ignore 2792*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2793*38fd1498Szrj 2794*38fd1498Szrjftree-scev-cprop 2795*38fd1498SzrjCommon Report Var(flag_tree_scev_cprop) Init(1) Optimization 2796*38fd1498SzrjEnable copy propagation of scalar-evolution information. 2797*38fd1498Szrj 2798*38fd1498Szrj; -fverbose-asm causes extra commentary information to be produced in 2799*38fd1498Szrj; the generated assembly code (to make it more readable). This option 2800*38fd1498Szrj; is generally only of use to those who actually need to read the 2801*38fd1498Szrj; generated assembly code (perhaps while debugging the compiler itself). 2802*38fd1498Szrj; -fno-verbose-asm, the default, causes the extra information 2803*38fd1498Szrj; to not be added and is useful when comparing two assembler files. 2804*38fd1498Szrjfverbose-asm 2805*38fd1498SzrjCommon Report Var(flag_verbose_asm) 2806*38fd1498SzrjAdd extra commentary to assembler output. 2807*38fd1498Szrj 2808*38fd1498Szrjfvisibility= 2809*38fd1498SzrjCommon Joined RejectNegative Enum(symbol_visibility) Var(default_visibility) Init(VISIBILITY_DEFAULT) 2810*38fd1498Szrj-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility. 2811*38fd1498Szrj 2812*38fd1498SzrjEnum 2813*38fd1498SzrjName(symbol_visibility) Type(enum symbol_visibility) UnknownError(unrecognized visibility value %qs) 2814*38fd1498Szrj 2815*38fd1498SzrjEnumValue 2816*38fd1498SzrjEnum(symbol_visibility) String(default) Value(VISIBILITY_DEFAULT) 2817*38fd1498Szrj 2818*38fd1498SzrjEnumValue 2819*38fd1498SzrjEnum(symbol_visibility) String(internal) Value(VISIBILITY_INTERNAL) 2820*38fd1498Szrj 2821*38fd1498SzrjEnumValue 2822*38fd1498SzrjEnum(symbol_visibility) String(hidden) Value(VISIBILITY_HIDDEN) 2823*38fd1498Szrj 2824*38fd1498SzrjEnumValue 2825*38fd1498SzrjEnum(symbol_visibility) String(protected) Value(VISIBILITY_PROTECTED) 2826*38fd1498Szrj 2827*38fd1498Szrjfvtable-verify= 2828*38fd1498SzrjCommon Joined RejectNegative Enum(vtv_priority) Var(flag_vtable_verify) Init(VTV_NO_PRIORITY) 2829*38fd1498SzrjValidate vtable pointers before using them. 2830*38fd1498Szrj 2831*38fd1498SzrjEnum 2832*38fd1498SzrjName(vtv_priority) Type(enum vtv_priority) UnknownError(unknown vtable verify initialization priority %qs) 2833*38fd1498Szrj 2834*38fd1498SzrjEnumValue 2835*38fd1498SzrjEnum(vtv_priority) String(none) Value(VTV_NO_PRIORITY) 2836*38fd1498Szrj 2837*38fd1498SzrjEnumValue 2838*38fd1498SzrjEnum(vtv_priority) String(std) Value(VTV_STANDARD_PRIORITY) 2839*38fd1498Szrj 2840*38fd1498SzrjEnumValue 2841*38fd1498SzrjEnum(vtv_priority) String(preinit) Value(VTV_PREINIT_PRIORITY) 2842*38fd1498Szrj 2843*38fd1498Szrjfvtv-counts 2844*38fd1498SzrjCommon Var(flag_vtv_counts) 2845*38fd1498SzrjOutput vtable verification counters. 2846*38fd1498Szrj 2847*38fd1498Szrjfvtv-debug 2848*38fd1498SzrjCommon Var(flag_vtv_debug) 2849*38fd1498SzrjOutput vtable verification pointer sets information. 2850*38fd1498Szrj 2851*38fd1498Szrjfvpt 2852*38fd1498SzrjCommon Report Var(flag_value_profile_transformations) Optimization 2853*38fd1498SzrjUse expression value profiles in optimizations. 2854*38fd1498Szrj 2855*38fd1498Szrjfweb 2856*38fd1498SzrjCommon Report Var(flag_web) Init(2) Optimization 2857*38fd1498SzrjConstruct webs and split unrelated uses of single variable. 2858*38fd1498Szrj 2859*38fd1498Szrjftree-builtin-call-dce 2860*38fd1498SzrjCommon Report Var(flag_tree_builtin_call_dce) Init(0) Optimization 2861*38fd1498SzrjEnable conditional dead code elimination for builtin calls. 2862*38fd1498Szrj 2863*38fd1498Szrjfwhole-program 2864*38fd1498SzrjCommon Report Var(flag_whole_program) Init(0) 2865*38fd1498SzrjPerform whole program optimizations. 2866*38fd1498Szrj 2867*38fd1498Szrjfwrapv-pointer 2868*38fd1498SzrjCommon Report Var(flag_wrapv_pointer) Optimization 2869*38fd1498SzrjAssume pointer overflow wraps around. 2870*38fd1498Szrj 2871*38fd1498Szrjfwrapv 2872*38fd1498SzrjCommon Report Var(flag_wrapv) Optimization 2873*38fd1498SzrjAssume signed arithmetic overflow wraps around. 2874*38fd1498Szrj 2875*38fd1498Szrjfzero-initialized-in-bss 2876*38fd1498SzrjCommon Report Var(flag_zero_initialized_in_bss) Init(1) 2877*38fd1498SzrjPut zero initialized data in the bss section. 2878*38fd1498Szrj 2879*38fd1498Szrjg 2880*38fd1498SzrjCommon Driver RejectNegative JoinedOrMissing 2881*38fd1498SzrjGenerate debug information in default format. 2882*38fd1498Szrj 2883*38fd1498Szrjgas-loc-support 2884*38fd1498SzrjCommon Driver Var(dwarf2out_as_loc_support) Init(2) 2885*38fd1498SzrjAssume assembler support for (DWARF2+) .loc directives 2886*38fd1498Szrj 2887*38fd1498Szrjgas-locview-support 2888*38fd1498SzrjCommon Driver Var(dwarf2out_as_locview_support) Init(2) 2889*38fd1498SzrjAssume assembler support for view in (DWARF2+) .loc directives 2890*38fd1498Szrj 2891*38fd1498Szrjgcoff 2892*38fd1498SzrjCommon Driver Ignore Warn(switch %qs no longer supported) 2893*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2894*38fd1498Szrj 2895*38fd1498Szrjgcoff1 2896*38fd1498SzrjCommon Driver Ignore Warn(switch %qs no longer supported) 2897*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2898*38fd1498Szrj 2899*38fd1498Szrjgcoff2 2900*38fd1498SzrjCommon Driver Ignore Warn(switch %qs no longer supported) 2901*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2902*38fd1498Szrj 2903*38fd1498Szrjgcoff3 2904*38fd1498SzrjCommon Driver Ignore Warn(switch %qs no longer supported) 2905*38fd1498SzrjDoes nothing. Preserved for backward compatibility. 2906*38fd1498Szrj 2907*38fd1498Szrjgcolumn-info 2908*38fd1498SzrjCommon Driver Var(debug_column_info,1) Init(1) 2909*38fd1498SzrjRecord DW_AT_decl_column and DW_AT_call_column in DWARF. 2910*38fd1498Szrj 2911*38fd1498Szrjgdwarf 2912*38fd1498SzrjCommon Driver JoinedOrMissing Negative(gdwarf-) 2913*38fd1498SzrjGenerate debug information in default version of DWARF format. 2914*38fd1498Szrj 2915*38fd1498Szrjgdwarf- 2916*38fd1498SzrjCommon Driver Joined UInteger Var(dwarf_version) Init(4) Negative(gstabs) 2917*38fd1498SzrjGenerate debug information in DWARF v2 (or later) format. 2918*38fd1498Szrj 2919*38fd1498Szrjggdb 2920*38fd1498SzrjCommon Driver JoinedOrMissing 2921*38fd1498SzrjGenerate debug information in default extended format. 2922*38fd1498Szrj 2923*38fd1498Szrjginline-points 2924*38fd1498SzrjCommon Driver Var(debug_inline_points) Init(2) 2925*38fd1498SzrjGenerate extended entry point information for inlined functions 2926*38fd1498Szrj 2927*38fd1498Szrjginternal-reset-location-views 2928*38fd1498SzrjCommon Driver Var(debug_internal_reset_location_views) Init(2) 2929*38fd1498SzrjCompute locview reset points based on insn length estimates 2930*38fd1498Szrj 2931*38fd1498Szrjgno- 2932*38fd1498SzrjRejectNegative Joined Undocumented 2933*38fd1498Szrj; Catch the gno- prefix, so it doesn't backtrack to g<level>. 2934*38fd1498Szrj 2935*38fd1498Szrjgno-pubnames 2936*38fd1498SzrjCommon Driver Negative(gpubnames) Var(debug_generate_pub_sections, 0) Init(-1) 2937*38fd1498SzrjDon't generate DWARF pubnames and pubtypes sections. 2938*38fd1498Szrj 2939*38fd1498Szrjgpubnames 2940*38fd1498SzrjCommon Driver Negative(ggnu-pubnames) Var(debug_generate_pub_sections, 1) 2941*38fd1498SzrjGenerate DWARF pubnames and pubtypes sections. 2942*38fd1498Szrj 2943*38fd1498Szrjggnu-pubnames 2944*38fd1498SzrjCommon Driver Negative(gno-pubnames) Var(debug_generate_pub_sections, 2) 2945*38fd1498SzrjGenerate DWARF pubnames and pubtypes sections with GNU extensions. 2946*38fd1498Szrj 2947*38fd1498Szrjgrecord-gcc-switches 2948*38fd1498SzrjCommon Driver Var(dwarf_record_gcc_switches) Init(1) 2949*38fd1498SzrjRecord gcc command line switches in DWARF DW_AT_producer. 2950*38fd1498Szrj 2951*38fd1498Szrjgsplit-dwarf 2952*38fd1498SzrjCommon Driver Var(dwarf_split_debug_info) Init(0) 2953*38fd1498SzrjGenerate debug information in separate .dwo files. 2954*38fd1498Szrj 2955*38fd1498Szrjgstabs 2956*38fd1498SzrjCommon Driver JoinedOrMissing Negative(gstabs+) 2957*38fd1498SzrjGenerate debug information in STABS format. 2958*38fd1498Szrj 2959*38fd1498Szrjgstabs+ 2960*38fd1498SzrjCommon Driver JoinedOrMissing Negative(gvms) 2961*38fd1498SzrjGenerate debug information in extended STABS format. 2962*38fd1498Szrj 2963*38fd1498Szrjgstatement-frontiers 2964*38fd1498SzrjCommon Driver Var(debug_nonbind_markers_p) Init(2) 2965*38fd1498SzrjEmit progressive recommended breakpoint locations. 2966*38fd1498Szrj 2967*38fd1498Szrjgstrict-dwarf 2968*38fd1498SzrjCommon Driver Report Var(dwarf_strict) Init(0) 2969*38fd1498SzrjDon't emit DWARF additions beyond selected version. 2970*38fd1498Szrj 2971*38fd1498Szrjgtoggle 2972*38fd1498SzrjCommon Driver Report Var(flag_gtoggle) 2973*38fd1498SzrjToggle debug information generation. 2974*38fd1498Szrj 2975*38fd1498Szrjgvariable-location-views 2976*38fd1498SzrjCommon Driver Var(debug_variable_location_views, 1) Init(2) 2977*38fd1498SzrjAugment variable location lists with progressive views. 2978*38fd1498Szrj 2979*38fd1498Szrjgvariable-location-views=incompat5 2980*38fd1498SzrjCommon Driver RejectNegative Var(debug_variable_location_views, -1) Init(2) 2981*38fd1498Szrj 2982*38fd1498Szrjgvms 2983*38fd1498SzrjCommon Driver JoinedOrMissing Negative(gxcoff) 2984*38fd1498SzrjGenerate debug information in VMS format. 2985*38fd1498Szrj 2986*38fd1498Szrjgxcoff 2987*38fd1498SzrjCommon Driver JoinedOrMissing Negative(gxcoff+) 2988*38fd1498SzrjGenerate debug information in XCOFF format. 2989*38fd1498Szrj 2990*38fd1498Szrjgxcoff+ 2991*38fd1498SzrjCommon Driver JoinedOrMissing Negative(gdwarf) 2992*38fd1498SzrjGenerate debug information in extended XCOFF format. 2993*38fd1498Szrj 2994*38fd1498SzrjEnum 2995*38fd1498SzrjName(compressed_debug_sections) Type(int) 2996*38fd1498Szrj 2997*38fd1498Szrj; Since -gz= is completely handled in specs, the values aren't used and we 2998*38fd1498Szrj; assign arbitrary constants. 2999*38fd1498SzrjEnumValue 3000*38fd1498SzrjEnum(compressed_debug_sections) String(none) Value(0) 3001*38fd1498Szrj 3002*38fd1498SzrjEnumValue 3003*38fd1498SzrjEnum(compressed_debug_sections) String(zlib) Value(1) 3004*38fd1498Szrj 3005*38fd1498SzrjEnumValue 3006*38fd1498SzrjEnum(compressed_debug_sections) String(zlib-gnu) Value(2) 3007*38fd1498Szrj 3008*38fd1498Szrjgz 3009*38fd1498SzrjCommon Driver 3010*38fd1498SzrjGenerate compressed debug sections. 3011*38fd1498Szrj 3012*38fd1498Szrjgz= 3013*38fd1498SzrjCommon Driver RejectNegative Joined Enum(compressed_debug_sections) 3014*38fd1498Szrj-gz=<format> Generate compressed debug sections in format <format>. 3015*38fd1498Szrj 3016*38fd1498Szrjh 3017*38fd1498SzrjDriver Joined Separate 3018*38fd1498Szrj 3019*38fd1498Szrjiplugindir= 3020*38fd1498SzrjCommon Joined Var(plugindir_string) Init(0) 3021*38fd1498Szrj-iplugindir=<dir> Set <dir> to be the default plugin directory. 3022*38fd1498Szrj 3023*38fd1498Szrjimultiarch 3024*38fd1498SzrjCommon Joined Separate RejectDriver Var(imultiarch) Init(0) 3025*38fd1498Szrj-imultiarch <dir> Set <dir> to be the multiarch include subdirectory. 3026*38fd1498Szrj 3027*38fd1498Szrjl 3028*38fd1498SzrjDriver Joined Separate 3029*38fd1498Szrj 3030*38fd1498Szrjn 3031*38fd1498SzrjDriver 3032*38fd1498Szrj 3033*38fd1498Szrjno-canonical-prefixes 3034*38fd1498SzrjDriver 3035*38fd1498Szrj 3036*38fd1498Szrjnodefaultlibs 3037*38fd1498SzrjDriver 3038*38fd1498Szrj 3039*38fd1498Szrjnostartfiles 3040*38fd1498SzrjDriver 3041*38fd1498Szrj 3042*38fd1498Szrjnostdlib 3043*38fd1498SzrjDriver 3044*38fd1498Szrj 3045*38fd1498Szrjo 3046*38fd1498SzrjCommon Driver Joined Separate Var(asm_file_name) MissingArgError(missing filename after %qs) 3047*38fd1498Szrj-o <file> Place output into <file>. 3048*38fd1498Szrj 3049*38fd1498Szrjp 3050*38fd1498SzrjCommon Var(profile_flag) 3051*38fd1498SzrjEnable function profiling. 3052*38fd1498Szrj 3053*38fd1498Szrjpass-exit-codes 3054*38fd1498SzrjDriver Var(pass_exit_codes) 3055*38fd1498Szrj 3056*38fd1498Szrjpedantic 3057*38fd1498SzrjCommon Alias(Wpedantic) 3058*38fd1498Szrj 3059*38fd1498Szrjpedantic-errors 3060*38fd1498SzrjCommon Var(flag_pedantic_errors) 3061*38fd1498SzrjLike -pedantic but issue them as errors. 3062*38fd1498Szrj 3063*38fd1498Szrjpg 3064*38fd1498SzrjDriver 3065*38fd1498Szrj 3066*38fd1498Szrjpipe 3067*38fd1498SzrjDriver Var(use_pipes) 3068*38fd1498Szrj 3069*38fd1498Szrjprint-file-name= 3070*38fd1498SzrjDriver JoinedOrMissing Var(print_file_name) 3071*38fd1498Szrj 3072*38fd1498Szrjprint-libgcc-file-name 3073*38fd1498SzrjDriver 3074*38fd1498Szrj 3075*38fd1498Szrjprint-multi-directory 3076*38fd1498SzrjDriver Var(print_multi_directory) 3077*38fd1498Szrj 3078*38fd1498Szrjprint-multi-lib 3079*38fd1498SzrjDriver Var(print_multi_lib) 3080*38fd1498Szrj 3081*38fd1498Szrjprint-multi-os-directory 3082*38fd1498SzrjDriver Var(print_multi_os_directory) 3083*38fd1498Szrj 3084*38fd1498Szrjprint-multiarch 3085*38fd1498SzrjDriver Var(print_multiarch) 3086*38fd1498Szrj 3087*38fd1498Szrjprint-prog-name= 3088*38fd1498SzrjDriver JoinedOrMissing Var(print_prog_name) 3089*38fd1498Szrj 3090*38fd1498Szrjprint-search-dirs 3091*38fd1498SzrjDriver Var(print_search_dirs) 3092*38fd1498Szrj 3093*38fd1498Szrjprint-sysroot 3094*38fd1498SzrjDriver Var(print_sysroot) 3095*38fd1498Szrj 3096*38fd1498Szrjprint-sysroot-headers-suffix 3097*38fd1498SzrjDriver Var(print_sysroot_headers_suffix) 3098*38fd1498Szrj 3099*38fd1498Szrjquiet 3100*38fd1498SzrjCommon Var(quiet_flag) RejectDriver 3101*38fd1498SzrjDo not display functions compiled or elapsed time. 3102*38fd1498Szrj 3103*38fd1498Szrjr 3104*38fd1498SzrjDriver 3105*38fd1498Szrj 3106*38fd1498Szrjs 3107*38fd1498SzrjDriver 3108*38fd1498Szrj 3109*38fd1498Szrjsave-temps 3110*38fd1498SzrjDriver 3111*38fd1498Szrj 3112*38fd1498Szrjsave-temps= 3113*38fd1498SzrjDriver Joined 3114*38fd1498Szrj 3115*38fd1498Szrjt 3116*38fd1498SzrjDriver 3117*38fd1498Szrj 3118*38fd1498Szrjtime 3119*38fd1498SzrjDriver Var(report_times) 3120*38fd1498Szrj 3121*38fd1498Szrjtime= 3122*38fd1498SzrjDriver JoinedOrMissing 3123*38fd1498Szrj 3124*38fd1498Szrju 3125*38fd1498SzrjDriver Joined Separate 3126*38fd1498Szrj 3127*38fd1498Szrjundef 3128*38fd1498SzrjDriver 3129*38fd1498Szrj; C option, but driver must not handle as "-u ndef". 3130*38fd1498Szrj 3131*38fd1498Szrjv 3132*38fd1498SzrjCommon Driver Var(verbose_flag) 3133*38fd1498SzrjEnable verbose output. 3134*38fd1498Szrj 3135*38fd1498Szrjversion 3136*38fd1498SzrjCommon Var(version_flag) RejectDriver 3137*38fd1498SzrjDisplay the compiler's version. 3138*38fd1498Szrj 3139*38fd1498Szrjw 3140*38fd1498SzrjCommon Var(inhibit_warnings) 3141*38fd1498SzrjSuppress warnings. 3142*38fd1498Szrj 3143*38fd1498Szrjwrapper 3144*38fd1498SzrjDriver Separate Var(wrapper_string) 3145*38fd1498Szrj 3146*38fd1498Szrjx 3147*38fd1498SzrjDriver Joined Separate 3148*38fd1498Szrj 3149*38fd1498Szrjshared 3150*38fd1498SzrjDriver RejectNegative Negative(static-pie) 3151*38fd1498SzrjCreate a shared library. 3152*38fd1498Szrj 3153*38fd1498Szrjshared-libgcc 3154*38fd1498SzrjDriver 3155*38fd1498Szrj 3156*38fd1498Szrjspecs 3157*38fd1498SzrjDriver Separate Alias(specs=) 3158*38fd1498Szrj 3159*38fd1498Szrjspecs= 3160*38fd1498SzrjDriver Joined 3161*38fd1498Szrj 3162*38fd1498Szrjstatic 3163*38fd1498SzrjDriver 3164*38fd1498Szrj 3165*38fd1498Szrjstatic-libgcc 3166*38fd1498SzrjDriver 3167*38fd1498Szrj 3168*38fd1498Szrjstatic-libgfortran 3169*38fd1498SzrjDriver 3170*38fd1498Szrj; Documented for Fortran, but always accepted by driver. 3171*38fd1498Szrj 3172*38fd1498Szrjstatic-libstdc++ 3173*38fd1498SzrjDriver 3174*38fd1498Szrj 3175*38fd1498Szrjstatic-libgo 3176*38fd1498SzrjDriver 3177*38fd1498Szrj; Documented for Go, but always accepted by driver. 3178*38fd1498Szrj 3179*38fd1498Szrjstatic-libasan 3180*38fd1498SzrjDriver 3181*38fd1498Szrj 3182*38fd1498Szrjstatic-libtsan 3183*38fd1498SzrjDriver 3184*38fd1498Szrj 3185*38fd1498Szrjstatic-liblsan 3186*38fd1498SzrjDriver 3187*38fd1498Szrj 3188*38fd1498Szrjstatic-libubsan 3189*38fd1498SzrjDriver 3190*38fd1498Szrj 3191*38fd1498Szrjsymbolic 3192*38fd1498SzrjDriver 3193*38fd1498Szrj 3194*38fd1498Szrjno-pie 3195*38fd1498SzrjDriver RejectNegative Negative(shared) 3196*38fd1498SzrjDon't create a dynamically linked position independent executable. 3197*38fd1498Szrj 3198*38fd1498Szrjpie 3199*38fd1498SzrjDriver RejectNegative Negative(no-pie) 3200*38fd1498SzrjCreate a dynamically linked position independent executable. 3201*38fd1498Szrj 3202*38fd1498Szrjstatic-pie 3203*38fd1498SzrjDriver RejectNegative Negative(pie) 3204*38fd1498SzrjCreate a static position independent executable. 3205*38fd1498Szrj 3206*38fd1498Szrjz 3207*38fd1498SzrjDriver Joined Separate 3208*38fd1498Szrj 3209*38fd1498Szrjfipa-ra 3210*38fd1498SzrjCommon Report Var(flag_ipa_ra) Optimization 3211*38fd1498SzrjUse caller save register across calls if possible. 3212*38fd1498Szrj 3213*38fd1498Szrj; This comment is to ensure we retain the blank line above. 3214