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