common.opt revision 169689
1; Options for the language- and target-independent parts of the compiler. 2 3; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. 4; 5; This file is part of GCC. 6; 7; GCC is free software; you can redistribute it and/or modify it under 8; the terms of the GNU General Public License as published by the Free 9; Software Foundation; either version 2, or (at your option) any later 10; version. 11; 12; GCC is distributed in the hope that it will be useful, but WITHOUT ANY 13; WARRANTY; without even the implied warranty of MERCHANTABILITY or 14; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15; for more details. 16; 17; You should have received a copy of the GNU General Public License 18; along with GCC; see the file COPYING. If not, write to the Free 19; Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 20; 02110-1301, USA. 21 22; See the GCC internals manual for a description of this file's format. 23 24; Please try to keep this file in ASCII collating order. 25 26-help 27Common 28Display this information 29 30-param 31Common Separate 32--param <param>=<value> Set parameter <param> to value. See below for a complete list of parameters 33 34-target-help 35Common 36 37-version 38Common 39 40G 41Common Joined Separate UInteger 42-G<number> Put global and static data smaller than <number> bytes into a special section (on some targets) 43 44O 45Common JoinedOrMissing 46-O<number> Set optimization level to <number> 47 48Os 49Common 50Optimize for space rather than speed 51 52W 53Common RejectNegative 54This switch is deprecated; use -Wextra instead 55 56Waggregate-return 57Common Var(warn_aggregate_return) 58Warn about returning structures, unions or arrays 59 60Wattributes 61Common Var(warn_attributes) Init(1) 62Warn about inappropriate attribute usage 63 64Wcast-align 65Common Var(warn_cast_align) 66Warn about pointer casts which increase alignment 67 68Wdeprecated-declarations 69Common Var(warn_deprecated_decl) Init(1) 70Warn about uses of __attribute__((deprecated)) declarations 71 72Wdisabled-optimization 73Common Var(warn_disabled_optimization) 74Warn when an optimization pass is disabled 75 76Werror 77Common Var(warnings_are_errors) 78Treat all warnings as errors 79 80Werror= 81Common Joined 82Treat specified warning as error 83 84Wextra 85Common 86Print extra (possibly unwanted) warnings 87 88Wfatal-errors 89Common Var(flag_fatal_errors) 90Exit on the first error occurred 91 92Winline 93Common Var(warn_inline) 94Warn when an inlined function cannot be inlined 95 96Wlarger-than- 97Common RejectNegative Joined UInteger 98-Wlarger-than-<number> Warn if an object is larger than <number> bytes 99 100Wunsafe-loop-optimizations 101Common Var(warn_unsafe_loop_optimizations) 102Warn if the loop cannot be optimized due to nontrivial assumptions. 103 104Wmissing-noreturn 105Common Var(warn_missing_noreturn) 106Warn about functions which might be candidates for __attribute__((noreturn)) 107 108Woverflow 109Common Var(warn_overflow) Init(1) 110Warn about overflow in arithmetic expressions 111 112Wpacked 113Common Var(warn_packed) 114Warn when the packed attribute has no effect on struct layout 115 116Wpadded 117Common Var(warn_padded) 118Warn when padding is required to align structure members 119 120Wshadow 121Common Var(warn_shadow) 122Warn when one local variable shadows another 123 124Wstack-protector 125Common Var(warn_stack_protect) 126Warn when not issuing stack smashing protection for some reason 127 128Wstrict-aliasing 129Common 130Warn about code which might break strict aliasing rules 131 132Wstrict-aliasing= 133Common Joined UInteger 134Warn about code which might break strict aliasing rules 135 136Wstrict-overflow 137Common 138Warn about optimizations that assume that signed overflow is undefined 139 140Wstrict-overflow= 141Common Joined UInteger 142Warn about optimizations that assume that signed overflow is undefined 143 144Wswitch 145Common Var(warn_switch) 146Warn about enumerated switches, with no default, missing a case 147 148Wswitch-default 149Common Var(warn_switch_default) 150Warn about enumerated switches missing a \"default:\" statement 151 152Wswitch-enum 153Common Var(warn_switch_enum) 154Warn about all enumerated switches missing a specific case 155 156Wsystem-headers 157Common Var(warn_system_headers) 158Do not suppress warnings from system headers 159 160Wuninitialized 161Common Var(warn_uninitialized) 162Warn about uninitialized automatic variables 163 164Wunreachable-code 165Common Var(warn_notreached) 166Warn about code that will never be executed 167 168Wunused 169Common 170Enable all -Wunused- warnings 171 172Wunused-function 173Common Var(warn_unused_function) 174Warn when a function is unused 175 176Wunused-label 177Common Var(warn_unused_label) 178Warn when a label is unused 179 180Wunused-parameter 181Common Var(warn_unused_parameter) 182Warn when a function parameter is unused 183 184Wunused-value 185Common Var(warn_unused_value) 186Warn when an expression value is unused 187 188Wunused-variable 189Common Var(warn_unused_variable) 190Warn when a variable is unused 191 192Wvolatile-register-var 193Common Var(warn_register_var) 194Warn when a register variable is declared volatile 195 196aux-info 197Common Separate 198-aux-info <file> Emit declaration information into <file> 199 200aux-info= 201Common Joined 202 203auxbase 204Common Separate 205 206auxbase-strip 207Common Separate 208 209d 210Common Joined 211-d<letters> Enable dumps from specific passes of the compiler 212 213dumpbase 214Common Separate 215-dumpbase <file> Set the file basename to be used for dumps 216 217; The version of the C++ ABI in use. The following values are allowed: 218; 219; 0: The version of the ABI believed most conformant with the C++ ABI 220; specification. This ABI may change as bugs are discovered and fixed. 221; Therefore, 0 will not necessarily indicate the same ABI in different 222; versions of G++. 223; 224; 1: The version of the ABI first used in G++ 3.2. 225; 226; Additional positive integers will be assigned as new versions of 227; the ABI become the default version of the ABI. 228fabi-version= 229Common Joined UInteger Var(flag_abi_version) Init(2) 230 231falign-functions 232Common Report Var(align_functions,0) 233Align the start of functions 234 235falign-functions= 236Common RejectNegative Joined UInteger 237 238falign-jumps 239Common Report Var(align_jumps,0) 240Align labels which are only reached by jumping 241 242falign-jumps= 243Common RejectNegative Joined UInteger 244 245falign-labels 246Common Report Var(align_labels,0) 247Align all labels 248 249falign-labels= 250Common RejectNegative Joined UInteger 251 252falign-loops 253Common Report Var(align_loops) 254Align the start of loops 255 256falign-loops= 257Common RejectNegative Joined UInteger 258 259; This flag is only tested if alias checking is enabled. 260; 0 if pointer arguments may alias each other. True in C. 261; 1 if pointer arguments may not alias each other but may alias 262; global variables. 263; 2 if pointer arguments may not alias each other and may not 264; alias global variables. 265; 3 if pointer arguments may not alias anything. True in Fortran. 266; Set by the front end. 267fargument-alias 268Common Report Var(flag_argument_noalias,0) 269Specify that arguments may alias each other and globals 270 271fargument-noalias 272Common Report Var(flag_argument_noalias,1) VarExists 273Assume arguments may alias globals but not each other 274 275fargument-noalias-global 276Common Report Var(flag_argument_noalias,2) VarExists 277Assume arguments alias neither each other nor globals 278 279fargument-noalias-anything 280Common Report Var(flag_argument_noalias,3) VarExists 281Assume arguments alias no other storage 282 283fasynchronous-unwind-tables 284Common Report Var(flag_asynchronous_unwind_tables) 285Generate unwind tables that are exact at each instruction boundary 286 287; -fcheck-bounds causes gcc to generate array bounds checks. 288; For C, C++ and ObjC: defaults off. 289; For Java: defaults to on. 290; For Fortran: defaults to off. 291fbounds-check 292Common Report Var(flag_bounds_check) 293Generate code to check bounds before indexing arrays 294 295fbranch-count-reg 296Common Report Var(flag_branch_on_count_reg) Init(1) 297Replace add, compare, branch with branch on count register 298 299fbranch-probabilities 300Common Report Var(flag_branch_probabilities) 301Use profiling information for branch probabilities 302 303fbranch-target-load-optimize 304Common Report Var(flag_branch_target_load_optimize) 305Perform branch target load optimization before prologue / epilogue threading 306 307fbranch-target-load-optimize2 308Common Report Var(flag_branch_target_load_optimize2) 309Perform branch target load optimization after prologue / epilogue threading 310 311fbtr-bb-exclusive 312Common Report Var(flag_btr_bb_exclusive) 313Restrict target load migration not to re-use registers in any basic block 314 315fcall-saved- 316Common Joined RejectNegative 317-fcall-saved-<register> Mark <register> as being preserved across functions 318 319fcall-used- 320Common Joined RejectNegative 321-fcall-used-<register> Mark <register> as being corrupted by function calls 322 323; Nonzero for -fcaller-saves: allocate values in regs that need to 324; be saved across function calls, if that produces overall better code. 325; Optional now, so people can test it. 326fcaller-saves 327Common Report Var(flag_caller_saves) 328Save registers around function calls 329 330fcommon 331Common Report Var(flag_no_common,0) 332Do not put uninitialized globals in the common section 333 334fcprop-registers 335Common Report Var(flag_cprop_registers) 336Perform a register copy-propagation optimization pass 337 338fcrossjumping 339Common Report Var(flag_crossjumping) 340Perform cross-jumping optimization 341 342fcse-follow-jumps 343Common Report Var(flag_cse_follow_jumps) 344When running CSE, follow jumps to their targets 345 346fcse-skip-blocks 347Common Report Var(flag_cse_skip_blocks) 348When running CSE, follow conditional jumps 349 350fcx-limited-range 351Common Report Var(flag_cx_limited_range) 352Omit range reduction step when performing complex division 353 354fdata-sections 355Common Report Var(flag_data_sections) 356Place data items into their own section 357 358; Nonzero for -fdefer-pop: don't pop args after each function call 359; instead save them up to pop many calls' args with one insns. 360fdefer-pop 361Common Report Var(flag_defer_pop) 362Defer popping functions args from stack until later 363 364fdelayed-branch 365Common Report Var(flag_delayed_branch) 366Attempt to fill delay slots of branch instructions 367 368fdelete-null-pointer-checks 369Common Report Var(flag_delete_null_pointer_checks) 370Delete useless null pointer checks 371 372fdiagnostics-show-location= 373Common Joined RejectNegative 374-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics 375 376fdiagnostics-show-option 377Common 378Amend appropriate diagnostic messages with the command line option that controls them 379 380fdump- 381Common Joined RejectNegative 382-fdump-<type> Dump various compiler internals to a file 383 384fdump-noaddr 385Common Report Var(flag_dump_noaddr) 386Suppress output of addresses in debugging dumps 387 388fdump-unnumbered 389Common Report Var(flag_dump_unnumbered) VarExists 390Suppress output of instruction numbers, line number notes and addresses in debugging dumps 391 392fearly-inlining 393Common Report Var(flag_early_inlining) Init(1) 394Perform early inlining 395 396feliminate-dwarf2-dups 397Common Report Var(flag_eliminate_dwarf2_dups) 398Perform DWARF2 duplicate elimination 399 400feliminate-unused-debug-symbols 401Common Report Var(flag_debug_only_used_symbols) 402Perform unused type elimination in debug info 403 404feliminate-unused-debug-types 405Common Report Var(flag_eliminate_unused_debug_types) Init(1) 406Perform unused type elimination in debug info 407 408femit-class-debug-always 409Common Report Var(flag_emit_class_debug_always) Init(1) 410Do not suppress C++ class debug information. 411 412fexceptions 413Common Report Var(flag_exceptions) 414Enable exception handling 415 416fexpensive-optimizations 417Common Report Var(flag_expensive_optimizations) 418Perform a number of minor, expensive optimizations 419 420ffast-math 421Common 422 423ffinite-math-only 424Common Report Var(flag_finite_math_only) 425Assume no NaNs or infinities are generated 426 427ffixed- 428Common Joined RejectNegative 429-ffixed-<register> Mark <register> as being unavailable to the compiler 430 431ffloat-store 432Common Report Var(flag_float_store) 433Don't allocate floats and doubles in extended-precision registers 434 435; Nonzero for -fforce-addr: load memory address into a register before 436; reference to memory. This makes better cse but slower compilation. 437fforce-addr 438Common Report Var(flag_force_addr) 439Copy memory address constants into registers before use 440 441; Nonzero for -fforce-mem: load memory value into a register 442; before arithmetic on it. This makes better cse but slower compilation. 443fforce-mem 444Common Report Var(flag_force_mem) 445Copy memory operands into registers before use 446 447; Nonzero means don't put addresses of constant functions in registers. 448; Used for compiling the Unix kernel, where strange substitutions are 449; done on the assembly output. 450ffunction-cse 451Common Report Var(flag_no_function_cse,0) 452Allow function addresses to be held in registers 453 454ffunction-sections 455Common Report Var(flag_function_sections) 456Place each function into its own section 457 458fgcse 459Common Report Var(flag_gcse) 460Perform global common subexpression elimination 461 462fgcse-lm 463Common Report Var(flag_gcse_lm) Init(1) 464Perform enhanced load motion during global common subexpression elimination 465 466fgcse-sm 467Common Report Var(flag_gcse_sm) Init(0) 468Perform store motion after global common subexpression elimination 469 470fgcse-las 471Common Report Var(flag_gcse_las) Init(0) 472Perform redundant load after store elimination in global common subexpression 473elimination 474 475fgcse-after-reload 476Common Report Var(flag_gcse_after_reload) 477Perform global common subexpression elimination after register allocation 478has finished 479 480fguess-branch-probability 481Common Report Var(flag_guess_branch_prob) 482Enable guessing of branch probabilities 483 484; Nonzero means ignore `#ident' directives. 0 means handle them. 485; Generate position-independent code for executables if possible 486; On SVR4 targets, it also controls whether or not to emit a 487; string identifying the compiler. 488fident 489Common Report Var(flag_no_ident,0) 490Process #ident directives 491 492fif-conversion 493Common Report Var(flag_if_conversion) 494Perform conversion of conditional jumps to branchless equivalents 495 496fif-conversion2 497Common Report Var(flag_if_conversion2) 498Perform conversion of conditional jumps to conditional execution 499 500; -finhibit-size-directive inhibits output of .size for ELF. 501; This is used only for compiling crtstuff.c, 502; and it may be extended to other effects 503; needed for crtstuff.c on other systems. 504finhibit-size-directive 505Common Report Var(flag_inhibit_size_directive) 506Do not generate .size directives 507 508; Nonzero means that functions declared `inline' will be treated 509; as `static'. Prevents generation of zillions of copies of unused 510; static inline functions; instead, `inlines' are written out 511; only when actually used. Used in conjunction with -g. Also 512; does the right thing with #pragma interface. 513finline 514Common Report Var(flag_no_inline,0) Init(2) 515Pay attention to the \"inline\" keyword 516 517finline-functions 518Common Report Var(flag_inline_functions) 519Integrate simple functions into their callers 520 521finline-functions-called-once 522Common Report Var(flag_inline_functions_called_once) Init(1) 523Integrate functions called once into their callers 524 525finline-limit- 526Common RejectNegative Joined UInteger 527 528finline-limit= 529Common RejectNegative Joined UInteger 530-finline-limit=<number> Limit the size of inlined functions to <number> 531 532finstrument-functions 533Common Report Var(flag_instrument_function_entry_exit) 534Instrument function entry and exit with profiling calls 535 536fipa-cp 537Common Report Var(flag_ipa_cp) 538Perform Interprocedural constant propagation 539 540fipa-pure-const 541Common Report Var(flag_ipa_pure_const) Init(0) 542Discover pure and const functions 543 544fipa-pta 545Common Report Var(flag_ipa_pta) Init(0) 546Perform interprocedural points-to analysis 547 548fipa-reference 549Common Report Var(flag_ipa_reference) Init(0) 550Discover readonly and non addressable static variables 551 552fipa-type-escape 553Common Report Var(flag_ipa_type_escape) Init(0) 554Type based escape and alias analysis 555 556fivopts 557Common Report Var(flag_ivopts) Init(1) 558Optimize induction variables on trees 559 560fjump-tables 561Common Var(flag_jump_tables) Init(1) 562Use jump tables for sufficiently large switch statements 563 564fkeep-inline-functions 565Common Report Var(flag_keep_inline_functions) 566Generate code for functions even if they are fully inlined 567 568fkeep-static-consts 569Common Report Var(flag_keep_static_consts) Init(1) 570Emit static const variables even if they are not used 571 572fleading-underscore 573Common Report Var(flag_leading_underscore) Init(-1) 574Give external symbols a leading underscore 575 576floop-optimize 577Common 578Does nothing. Preserved for backward compatibility. 579 580fmath-errno 581Common Report Var(flag_errno_math) Init(1) 582Set errno after built-in math functions 583 584fmem-report 585Common Report Var(mem_report) 586Report on permanent memory allocation 587 588; This will attempt to merge constant section constants, if 1 only 589; string constants and constants from constant pool, if 2 also constant 590; variables. 591fmerge-all-constants 592Common Report Var(flag_merge_constants,2) Init(1) 593Attempt to merge identical constants and constant variables 594 595fmerge-constants 596Common Report Var(flag_merge_constants,1) VarExists 597Attempt to merge identical constants across compilation units 598 599fmessage-length= 600Common RejectNegative Joined UInteger 601-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping 602 603fmodulo-sched 604Common Report Var(flag_modulo_sched) 605Perform SMS based modulo scheduling before the first scheduling pass 606 607fmove-loop-invariants 608Common Report Var(flag_move_loop_invariants) Init(1) 609Move loop invariant computations out of loops 610 611fmudflap 612Common RejectNegative Report Var(flag_mudflap) 613Add mudflap bounds-checking instrumentation for single-threaded program 614 615fmudflapth 616Common RejectNegative Report VarExists Var(flag_mudflap,2) 617Add mudflap bounds-checking instrumentation for multi-threaded program 618 619fmudflapir 620Common RejectNegative Report Var(flag_mudflap_ignore_reads) 621Ignore read operations when inserting mudflap instrumentation 622 623freschedule-modulo-scheduled-loops 624Common Report Var(flag_resched_modulo_sched) 625Enable/Disable the traditional scheduling in loops that already passed modulo scheduling 626 627fnon-call-exceptions 628Common Report Var(flag_non_call_exceptions) 629Support synchronous non-call exceptions 630 631fomit-frame-pointer 632Common Report Var(flag_omit_frame_pointer) 633When possible do not generate stack frames 634 635foptimize-register-move 636Common Report Var(flag_regmove) 637Do the full register move optimization pass 638 639foptimize-sibling-calls 640Common Report Var(flag_optimize_sibling_calls) 641Optimize sibling and tail recursive calls 642 643fpack-struct 644Common Report Var(flag_pack_struct) 645Pack structure members together without holes 646 647fpack-struct= 648Common RejectNegative Joined UInteger 649-fpack-struct=<number> Set initial maximum structure member alignment 650 651fpcc-struct-return 652Common Report Var(flag_pcc_struct_return,1) VarExists 653Return small aggregates in memory, not registers 654 655fpeel-loops 656Common Report Var(flag_peel_loops) 657Perform loop peeling 658 659fpeephole 660Common Report Var(flag_no_peephole,0) 661Enable machine specific peephole optimizations 662 663fpeephole2 664Common Report Var(flag_peephole2) 665Enable an RTL peephole pass before sched2 666 667fPIC 668Common Report Var(flag_pic,2) 669Generate position-independent code if possible (large mode) 670 671fPIE 672Common Report Var(flag_pie,2) 673Generate position-independent code for executables if possible (large mode) 674 675fpic 676Common Report Var(flag_pic,1) VarExists 677Generate position-independent code if possible (small mode) 678 679fpie 680Common Report Var(flag_pie,1) VarExists 681Generate position-independent code for executables if possible (small mode) 682 683fprefetch-loop-arrays 684Common Report Var(flag_prefetch_loop_arrays) 685Generate prefetch instructions, if available, for arrays in loops 686 687fprofile 688Common Report Var(profile_flag) 689Enable basic program profiling code 690 691fprofile-arcs 692Common Report Var(profile_arc_flag) 693Insert arc-based program profiling code 694 695fprofile-generate 696Common 697Enable common options for generating profile info for profile feedback directed optimizations 698 699fprofile-use 700Common 701Enable common options for performing profile feedback directed optimizations 702 703fprofile-values 704Common Report Var(flag_profile_values) 705Insert code to profile values of expressions 706 707frandom-seed 708Common 709 710frandom-seed= 711Common Joined RejectNegative 712-frandom-seed=<string> Make compile reproducible using <string> 713 714freg-struct-return 715Common Report Var(flag_pcc_struct_return,0) VarExists 716Return small aggregates in registers 717 718fregmove 719Common Report Var(flag_regmove) 720Enables a register move optimization 721 722frename-registers 723Common Report Var(flag_rename_registers) Init(2) 724Perform a register renaming optimization pass 725 726freorder-blocks 727Common Report Var(flag_reorder_blocks) 728Reorder basic blocks to improve code placement 729 730freorder-blocks-and-partition 731Common Report Var(flag_reorder_blocks_and_partition) 732Reorder basic blocks and partition into hot and cold sections 733 734freorder-functions 735Common Report Var(flag_reorder_functions) 736Reorder functions to improve code placement 737 738frerun-cse-after-loop 739Common Report Var(flag_rerun_cse_after_loop) Init(2) 740Add a common subexpression elimination pass after loop optimizations 741 742frerun-loop-opt 743Common 744Does nothing. Preserved for backward compatibility. 745 746frounding-math 747Common Report Var(flag_rounding_math) 748Disable optimizations that assume default FP rounding behavior 749 750fsched-interblock 751Common Report Var(flag_schedule_interblock) Init(1) 752Enable scheduling across basic blocks 753 754fsched-spec 755Common Report Var(flag_schedule_speculative) Init(1) 756Allow speculative motion of non-loads 757 758fsched-spec-load 759Common Report Var(flag_schedule_speculative_load) 760Allow speculative motion of some loads 761 762fsched-spec-load-dangerous 763Common Report Var(flag_schedule_speculative_load_dangerous) 764Allow speculative motion of more loads 765 766fsched-verbose= 767Common RejectNegative Joined 768-fsched-verbose=<number> Set the verbosity level of the scheduler 769 770fsched2-use-superblocks 771Common Report Var(flag_sched2_use_superblocks) 772If scheduling post reload, do superblock scheduling 773 774fsched2-use-traces 775Common Report Var(flag_sched2_use_traces) 776If scheduling post reload, do trace scheduling 777 778fschedule-insns 779Common Report Var(flag_schedule_insns) 780Reschedule instructions before register allocation 781 782fschedule-insns2 783Common Report Var(flag_schedule_insns_after_reload) 784Reschedule instructions after register allocation 785 786; sched_stalled_insns means that insns can be moved prematurely from the queue 787; of stalled insns into the ready list. 788fsched-stalled-insns 789Common Report Var(flag_sched_stalled_insns) 790Allow premature scheduling of queued insns 791 792fsched-stalled-insns= 793Common RejectNegative Joined UInteger 794-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled 795 796; sched_stalled_insns_dep controls how many recently scheduled cycles will 797; be examined for a dependency on a stalled insn that is candidate for 798; premature removal from the queue of stalled insns into the ready list (has 799; an effect only if the flag 'sched_stalled_insns' is set). 800fsched-stalled-insns-dep 801Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) 802Set dependence distance checking in premature scheduling of queued insns 803 804fsched-stalled-insns-dep= 805Common RejectNegative Joined UInteger 806-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns 807 808fsection-anchors 809Common Report Var(flag_section_anchors) 810Access data in the same section from shared anchor points 811 812frtl-abstract-sequences 813Common Report Var(flag_rtl_seqabstr) 814Perform sequence abstraction optimization on RTL 815 816fsee 817Common Report Var(flag_see) Init(0) 818Eliminate redundant sign extensions using LCM. 819 820fshow-column 821Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(1) 822Show column numbers in diagnostics, when available. Default on 823 824fsignaling-nans 825Common Report Var(flag_signaling_nans) 826Disable optimizations observable by IEEE signaling NaNs 827 828fsingle-precision-constant 829Common Report Var(flag_single_precision_constant) 830Convert floating point constants to single precision constants 831 832fsplit-ivs-in-unroller 833Common Report Var(flag_split_ivs_in_unroller) Init(1) 834Split lifetimes of induction variables when loops are unrolled 835 836fvariable-expansion-in-unroller 837Common Report Var(flag_variable_expansion_in_unroller) 838Apply variable expansion when loops are unrolled 839 840; Emit code to probe the stack, to help detect stack overflow; also 841; may cause large objects to be allocated dynamically. 842fstack-check 843Common Report Var(flag_stack_check) 844Insert stack checking code into the program 845 846fstack-limit 847Common 848 849fstack-limit-register= 850Common RejectNegative Joined 851-fstack-limit-register=<register> Trap if the stack goes past <register> 852 853fstack-limit-symbol= 854Common RejectNegative Joined 855-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name> 856 857fstack-protector 858Common Report Var(flag_stack_protect, 1) 859Use propolice as a stack protection method 860 861fstack-protector-all 862Common Report RejectNegative Var(flag_stack_protect, 2) VarExists 863Use a stack protection method for every function 864 865fstrength-reduce 866Common 867Does nothing. Preserved for backward compatibility. 868 869; Nonzero if we should do (language-dependent) alias analysis. 870; Typically, this analysis will assume that expressions of certain 871; types do not alias expressions of certain other types. Only used 872; if alias analysis (in general) is enabled. 873fstrict-aliasing 874Common Report Var(flag_strict_aliasing) 875Assume strict aliasing rules apply 876 877fstrict-overflow 878Common Report Var(flag_strict_overflow) 879Treat signed overflow as undefined 880 881fsyntax-only 882Common Report Var(flag_syntax_only) 883Check for syntax errors, then stop 884 885ftest-coverage 886Common Report Var(flag_test_coverage) 887Create data files needed by \"gcov\" 888 889fthread-jumps 890Common Report Var(flag_thread_jumps) 891Perform jump threading optimizations 892 893ftime-report 894Common Report Var(time_report) 895Report the time taken by each compiler pass 896 897ftls-model= 898Common Joined RejectNegative 899-ftls-model=[global-dynamic|local-dynamic|initial-exec|local-exec] Set the default thread-local storage code generation model 900 901ftoplevel-reorder 902Common Report Var(flag_toplevel_reorder) Init(1) 903Reorder top level functions, variables, and asms 904 905ftracer 906Common Report Var(flag_tracer) 907Perform superblock formation via tail duplication 908 909; Zero means that floating-point math operations cannot generate a 910; (user-visible) trap. This is the case, for example, in nonstop 911; IEEE 754 arithmetic. 912ftrapping-math 913Common Report Var(flag_trapping_math) Init(1) 914Assume floating-point operations can trap 915 916ftrapv 917Common Report Var(flag_trapv) 918Trap for signed overflow in addition, subtraction and multiplication 919 920ftree-ccp 921Common Report Var(flag_tree_ccp) 922Enable SSA-CCP optimization on trees 923 924ftree-store-ccp 925Common Report Var(flag_tree_store_ccp) 926Enable SSA-CCP optimization for stores and loads 927 928ftree-ch 929Common Report Var(flag_tree_ch) 930Enable loop header copying on trees 931 932ftree-combine-temps 933Common Report Var(flag_tree_combine_temps) 934Coalesce memory temporaries in the SSA->normal pass 935 936ftree-copyrename 937Common Report Var(flag_tree_copyrename) 938Replace SSA temporaries with better names in copies 939 940ftree-copy-prop 941Common Report Var(flag_tree_copy_prop) 942Enable copy propagation on trees 943 944ftree-store-copy-prop 945Common Report Var(flag_tree_store_copy_prop) 946Enable copy propagation for stores and loads 947 948ftree-dce 949Common Report Var(flag_tree_dce) 950Enable SSA dead code elimination optimization on trees 951 952ftree-dominator-opts 953Common Report Var(flag_tree_dom) 954Enable dominator optimizations 955 956ftree-dse 957Common Report Var(flag_tree_dse) 958Enable dead store elimination 959 960ftree-fre 961Common Report Var(flag_tree_fre) 962Enable Full Redundancy Elimination (FRE) on trees 963 964ftree-loop-im 965Common Report Var(flag_tree_loop_im) Init(1) 966Enable loop invariant motion on trees 967 968ftree-loop-linear 969Common Report Var(flag_tree_loop_linear) 970Enable linear loop transforms on trees 971 972ftree-loop-ivcanon 973Common Report Var(flag_tree_loop_ivcanon) Init(1) 974Create canonical induction variables in loops 975 976ftree-loop-optimize 977Common Report Var(flag_tree_loop_optimize) Init(1) 978Enable loop optimizations on tree level 979 980ftree-pre 981Common Report Var(flag_tree_pre) 982Enable SSA-PRE optimization on trees 983 984ftree-salias 985Common Report Var(flag_tree_salias) 986Perform structural alias analysis 987 988ftree-sink 989Common Report Var(flag_tree_sink) 990Enable SSA code sinking on trees 991 992ftree-sra 993Common Report Var(flag_tree_sra) 994Perform scalar replacement of aggregates 995 996ftree-ter 997Common Report Var(flag_tree_ter) 998Replace temporary expressions in the SSA->normal pass 999 1000ftree-lrs 1001Common Report Var(flag_tree_live_range_split) 1002Perform live range splitting during the SSA->normal pass 1003 1004ftree-vrp 1005Common Report Var(flag_tree_vrp) Init(0) 1006Perform Value Range Propagation on trees 1007 1008funit-at-a-time 1009Common Report Var(flag_unit_at_a_time) 1010Compile whole compilation unit at a time 1011 1012funroll-loops 1013Common Report Var(flag_unroll_loops) 1014Perform loop unrolling when iteration count is known 1015 1016funroll-all-loops 1017Common Report Var(flag_unroll_all_loops) 1018Perform loop unrolling for all loops 1019 1020; Nonzero means that loop optimizer may assume that the induction variables 1021; that control loops do not overflow and that the loops with nontrivial 1022; exit condition are not infinite 1023funsafe-loop-optimizations 1024Common Report Var(flag_unsafe_loop_optimizations) 1025Allow loop optimizations to assume that the loops behave in normal way 1026 1027; Nonzero means that unsafe floating-point math optimizations are allowed 1028; for the sake of speed. IEEE compliance is not guaranteed, and operations 1029; are allowed to assume that their arguments and results are "normal" 1030; (e.g., nonnegative for SQRT). 1031funsafe-math-optimizations 1032Common Report Var(flag_unsafe_math_optimizations) 1033Allow math optimizations that may violate IEEE or ISO standards 1034 1035funswitch-loops 1036Common Report Var(flag_unswitch_loops) 1037Perform loop unswitching 1038 1039funwind-tables 1040Common Report Var(flag_unwind_tables) 1041Just generate unwind tables for exception handling 1042 1043fvar-tracking 1044Common Report Var(flag_var_tracking) VarExists 1045Perform variable tracking 1046 1047ftree-vectorize 1048Common Report Var(flag_tree_vectorize) 1049Enable loop vectorization on trees 1050 1051ftree-vect-loop-version 1052Common Report Var(flag_tree_vect_loop_version) Init(1) 1053Enable loop versioning when doing loop vectorization on trees 1054 1055ftree-vectorizer-verbose= 1056Common RejectNegative Joined 1057-ftree-vectorizer-verbose=<number> Set the verbosity level of the vectorizer 1058 1059; -fverbose-asm causes extra commentary information to be produced in 1060; the generated assembly code (to make it more readable). This option 1061; is generally only of use to those who actually need to read the 1062; generated assembly code (perhaps while debugging the compiler itself). 1063; -fno-verbose-asm, the default, causes the extra information 1064; to not be added and is useful when comparing two assembler files. 1065fverbose-asm 1066Common Report Var(flag_verbose_asm) 1067Add extra commentary to assembler output 1068 1069fvisibility= 1070Common Joined RejectNegative 1071-fvisibility=[default|internal|hidden|protected] Set the default symbol visibility 1072 1073 1074fvpt 1075Common Report Var(flag_value_profile_transformations) 1076Use expression value profiles in optimizations 1077 1078fweb 1079Common Report Var(flag_web) Init(2) 1080Construct webs and split unrelated uses of single variable 1081 1082fwhole-program 1083Common Report Var(flag_whole_program) Init(0) 1084Perform whole program optimizations 1085 1086fwrapv 1087Common Report Var(flag_wrapv) 1088Assume signed arithmetic overflow wraps around 1089 1090fzero-initialized-in-bss 1091Common Report Var(flag_zero_initialized_in_bss) Init(1) 1092Put zero initialized data in the bss section 1093 1094g 1095Common JoinedOrMissing 1096Generate debug information in default format 1097 1098gcoff 1099Common JoinedOrMissing Negative(gdwarf-2) 1100Generate debug information in COFF format 1101 1102gdwarf-2 1103Common JoinedOrMissing Negative(gstabs) 1104Generate debug information in DWARF v2 format 1105 1106ggdb 1107Common JoinedOrMissing 1108Generate debug information in default extended format 1109 1110gstabs 1111Common JoinedOrMissing Negative(gstabs+) 1112Generate debug information in STABS format 1113 1114gstabs+ 1115Common JoinedOrMissing Negative(gvms) 1116Generate debug information in extended STABS format 1117 1118gvms 1119Common JoinedOrMissing Negative(gxcoff) 1120Generate debug information in VMS format 1121 1122gxcoff 1123Common JoinedOrMissing Negative(gxcoff+) 1124Generate debug information in XCOFF format 1125 1126gxcoff+ 1127Common JoinedOrMissing Negative(gcoff) 1128Generate debug information in extended XCOFF format 1129 1130o 1131Common Joined Separate 1132-o <file> Place output into <file> 1133 1134p 1135Common Var(profile_flag) 1136Enable function profiling 1137 1138pedantic 1139Common Var(pedantic) 1140Issue warnings needed for strict compliance to the standard 1141 1142pedantic-errors 1143Common 1144Like -pedantic but issue them as errors 1145 1146quiet 1147Common Var(quiet_flag) 1148Do not display functions compiled or elapsed time 1149 1150version 1151Common Var(version_flag) 1152Display the compiler's version 1153 1154w 1155Common Var(inhibit_warnings) 1156Suppress warnings 1157 1158; This comment is to ensure we retain the blank line above. 1159