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