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