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