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