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 the frame size of a function is larger than <number> bytes 103 104Wunsafe-loop-optimizations 105Common Var(warn_unsafe_loop_optimizations) 106Warn if the loop cannot be optimized due to nontrivial assumptions. 107 108Wmissing-noreturn 109Common Var(warn_missing_noreturn) 110Warn about functions which might be candidates for __attribute__((noreturn)) 111 112Woverflow 113Common Var(warn_overflow) Init(1) 114Warn about overflow in arithmetic expressions 115 116Wpacked 117Common Var(warn_packed) 118Warn when the packed attribute has no effect on struct layout 119 120Wpadded 121Common Var(warn_padded) 122Warn when padding is required to align structure members 123 124Wshadow 125Common Var(warn_shadow) 126Warn when one local variable shadows another 127 128Wstack-protector 129Common Var(warn_stack_protect) 130Warn when not issuing stack smashing protection for some reason 131 132Wstrict-aliasing 133Common 134Warn about code which might break strict aliasing rules 135 136Wstrict-aliasing= 137Common Joined UInteger 138Warn about code which might break strict aliasing rules 139 140Wstrict-overflow 141Common 142Warn about optimizations that assume that signed overflow is undefined 143 144Wstrict-overflow= 145Common Joined UInteger 146Warn about optimizations that assume that signed overflow is undefined 147 148Wswitch 149Common Var(warn_switch) 150Warn about enumerated switches, with no default, missing a case 151 152Wswitch-default 153Common Var(warn_switch_default) 154Warn about enumerated switches missing a \"default:\" statement 155 156Wswitch-enum 157Common Var(warn_switch_enum) 158Warn about all enumerated switches missing a specific case 159 160Wsystem-headers 161Common Var(warn_system_headers) 162Do not suppress warnings from system headers 163 164Wuninitialized 165Common Var(warn_uninitialized) 166Warn about uninitialized automatic variables 167 168Wunreachable-code 169Common Var(warn_notreached) 170Warn about code that will never be executed 171 172Wunused 173Common 174Enable all -Wunused- warnings 175 176Wunused-function 177Common Var(warn_unused_function) 178Warn when a function is unused 179 180Wunused-label 181Common Var(warn_unused_label) 182Warn when a label is unused 183 184Wunused-parameter 185Common Var(warn_unused_parameter) 186Warn when a function parameter is unused 187 188Wunused-value 189Common Var(warn_unused_value) 190Warn when an expression value is unused 191 192Wunused-variable 193Common Var(warn_unused_variable) 194Warn when a variable is unused 195 196Wvariable-decl 197Common Var(warn_variable_decl) 198Warn about variable-sized declarations. 199 200Wvolatile-register-var 201Common Var(warn_register_var) 202Warn when a register variable is declared volatile 203 204aux-info 205Common Separate 206-aux-info <file> Emit declaration information into <file> 207 208aux-info= 209Common Joined 210 211auxbase 212Common Separate 213 214auxbase-strip 215Common Separate 216 217d 218Common Joined 219-d<letters> Enable dumps from specific passes of the compiler 220 221dumpbase 222Common Separate 223-dumpbase <file> Set the file basename to be used for dumps 224 225; The version of the C++ ABI in use. The following values are allowed: 226; 227; 0: The version of the ABI believed most conformant with the C++ ABI 228; specification. This ABI may change as bugs are discovered and fixed. 229; Therefore, 0 will not necessarily indicate the same ABI in different 230; versions of G++. 231; 232; 1: The version of the ABI first used in G++ 3.2. 233; 234; Additional positive integers will be assigned as new versions of 235; the ABI become the default version of the ABI. 236fabi-version= 237Common Joined UInteger Var(flag_abi_version) Init(2) 238 239falign-functions 240Common Report Var(align_functions,0) 241Align the start of functions 242 243falign-functions= 244Common RejectNegative Joined UInteger 245 246falign-jumps 247Common Report Var(align_jumps,0) 248Align labels which are only reached by jumping 249 250falign-jumps= 251Common RejectNegative Joined UInteger 252 253falign-labels 254Common Report Var(align_labels,0) 255Align all labels 256 257falign-labels= 258Common RejectNegative Joined UInteger 259 260falign-loops 261Common Report Var(align_loops) 262Align the start of loops 263 264falign-loops= 265Common RejectNegative Joined UInteger 266 267; This flag is only tested if alias checking is enabled. 268; 0 if pointer arguments may alias each other. True in C. 269; 1 if pointer arguments may not alias each other but may alias 270; global variables. 271; 2 if pointer arguments may not alias each other and may not 272; alias global variables. 273; 3 if pointer arguments may not alias anything. True in Fortran. 274; Set by the front end. 275fargument-alias 276Common Report Var(flag_argument_noalias,0) 277Specify that arguments may alias each other and globals 278 279fargument-noalias 280Common Report Var(flag_argument_noalias,1) VarExists 281Assume arguments may alias globals but not each other 282 283fargument-noalias-global 284Common Report Var(flag_argument_noalias,2) VarExists 285Assume arguments alias neither each other nor globals 286 287fargument-noalias-anything 288Common Report Var(flag_argument_noalias,3) VarExists 289Assume arguments alias no other storage 290 291fasynchronous-unwind-tables 292Common Report Var(flag_asynchronous_unwind_tables) 293Generate unwind tables that are exact at each instruction boundary 294 295; -fcheck-bounds causes gcc to generate array bounds checks. 296; For C, C++ and ObjC: defaults off. 297; For Java: defaults to on. 298; For Fortran: defaults to off. 299fbounds-check 300Common Report Var(flag_bounds_check) 301Generate code to check bounds before indexing arrays 302 303fbranch-count-reg 304Common Report Var(flag_branch_on_count_reg) Init(1) 305Replace add, compare, branch with branch on count register 306 307fbranch-probabilities 308Common Report Var(flag_branch_probabilities) 309Use profiling information for branch probabilities 310 311fbranch-target-load-optimize 312Common Report Var(flag_branch_target_load_optimize) 313Perform branch target load optimization before prologue / epilogue threading 314 315fbranch-target-load-optimize2 316Common Report Var(flag_branch_target_load_optimize2) 317Perform branch target load optimization after prologue / epilogue threading 318 319fbtr-bb-exclusive 320Common Report Var(flag_btr_bb_exclusive) 321Restrict target load migration not to re-use registers in any basic block 322 323fcall-saved- 324Common Joined RejectNegative 325-fcall-saved-<register> Mark <register> as being preserved across functions 326 327fcall-used- 328Common Joined RejectNegative 329-fcall-used-<register> Mark <register> as being corrupted by function calls 330 331; Nonzero for -fcaller-saves: allocate values in regs that need to 332; be saved across function calls, if that produces overall better code. 333; Optional now, so people can test it. 334fcaller-saves 335Common Report Var(flag_caller_saves) 336Save registers around function calls 337 338fcommon 339Common Report Var(flag_no_common,0) 340Do not put uninitialized globals in the common section 341 342fcprop-registers 343Common Report Var(flag_cprop_registers) 344Perform a register copy-propagation optimization pass 345 346fcrossjumping 347Common Report Var(flag_crossjumping) 348Perform cross-jumping optimization 349 350fcse-follow-jumps 351Common Report Var(flag_cse_follow_jumps) 352When running CSE, follow jumps to their targets 353 354fcse-skip-blocks 355Common Report Var(flag_cse_skip_blocks) 356When running CSE, follow conditional jumps 357 358fcx-limited-range 359Common Report Var(flag_cx_limited_range) 360Omit range reduction step when performing complex division 361 362fdata-sections 363Common Report Var(flag_data_sections) 364Place data items into their own section 365 366; Nonzero for -fdefer-pop: don't pop args after each function call 367; instead save them up to pop many calls' args with one insns. 368fdefer-pop 369Common Report Var(flag_defer_pop) 370Defer popping functions args from stack until later 371 372fdelayed-branch 373Common Report Var(flag_delayed_branch) 374Attempt to fill delay slots of branch instructions 375 376fdelete-null-pointer-checks 377Common Report Var(flag_delete_null_pointer_checks) 378Delete useless null pointer checks 379 380fdiagnostics-show-location= 381Common Joined RejectNegative 382-fdiagnostics-show-location=[once|every-line] How often to emit source location at the beginning of line-wrapped diagnostics 383 384fdiagnostics-show-option 385Common 386Amend appropriate diagnostic messages with the command line option that controls them 387 388fdump- 389Common Joined RejectNegative 390-fdump-<type> Dump various compiler internals to a file 391 392fdump-noaddr 393Common Report Var(flag_dump_noaddr) 394Suppress output of addresses in debugging dumps 395 396fdump-unnumbered 397Common Report Var(flag_dump_unnumbered) VarExists 398Suppress output of instruction numbers, line number notes and addresses in debugging dumps 399 400fearly-inlining 401Common Report Var(flag_early_inlining) Init(1) 402Perform early inlining 403 404feliminate-dwarf2-dups 405Common Report Var(flag_eliminate_dwarf2_dups) 406Perform DWARF2 duplicate elimination 407 408feliminate-unused-debug-symbols 409Common Report Var(flag_debug_only_used_symbols) 410Perform unused type elimination in debug info 411 412feliminate-unused-debug-types 413Common Report Var(flag_eliminate_unused_debug_types) Init(1) 414Perform unused type elimination in debug info 415 416femit-class-debug-always 417Common Report Var(flag_emit_class_debug_always) Init(1) 418Do not suppress C++ class debug information. 419 420fexceptions 421Common Report Var(flag_exceptions) 422Enable exception handling 423 424fexpensive-optimizations 425Common Report Var(flag_expensive_optimizations) 426Perform a number of minor, expensive optimizations 427 428ffast-math 429Common 430 431ffinite-math-only 432Common Report Var(flag_finite_math_only) 433Assume no NaNs or infinities are generated 434 435ffixed- 436Common Joined RejectNegative 437-ffixed-<register> Mark <register> as being unavailable to the compiler 438 439ffloat-store 440Common Report Var(flag_float_store) 441Don't allocate floats and doubles in extended-precision registers 442 443; Nonzero for -fforce-addr: load memory address into a register before 444; reference to memory. This makes better cse but slower compilation. 445fforce-addr 446Common Report Var(flag_force_addr) 447Copy memory address constants into registers before use 448 449; Nonzero for -fforce-mem: load memory value into a register 450; before arithmetic on it. This makes better cse but slower compilation. 451fforce-mem 452Common Report Var(flag_force_mem) 453Copy memory operands into registers before use 454 455; Nonzero means don't put addresses of constant functions in registers. 456; Used for compiling the Unix kernel, where strange substitutions are 457; done on the assembly output. 458ffunction-cse 459Common Report Var(flag_no_function_cse,0) 460Allow function addresses to be held in registers 461 462ffunction-sections 463Common Report Var(flag_function_sections) 464Place each function into its own section 465 466fgcse 467Common Report Var(flag_gcse) 468Perform global common subexpression elimination 469 470fgcse-lm 471Common Report Var(flag_gcse_lm) Init(1) 472Perform enhanced load motion during global common subexpression elimination 473 474fgcse-sm 475Common Report Var(flag_gcse_sm) Init(0) 476Perform store motion after global common subexpression elimination 477 478fgcse-las 479Common Report Var(flag_gcse_las) Init(0) 480Perform redundant load after store elimination in global common subexpression 481elimination 482 483fgcse-after-reload 484Common Report Var(flag_gcse_after_reload) 485Perform global common subexpression elimination after register allocation 486has finished 487 488fguess-branch-probability 489Common Report Var(flag_guess_branch_prob) 490Enable guessing of branch probabilities 491 492; Nonzero means ignore `#ident' directives. 0 means handle them. 493; Generate position-independent code for executables if possible 494; On SVR4 targets, it also controls whether or not to emit a 495; string identifying the compiler. 496fident 497Common Report Var(flag_no_ident,0) 498Process #ident directives 499 500fif-conversion 501Common Report Var(flag_if_conversion) 502Perform conversion of conditional jumps to branchless equivalents 503 504fif-conversion2 505Common Report Var(flag_if_conversion2) 506Perform conversion of conditional jumps to conditional execution 507 508; -finhibit-size-directive inhibits output of .size for ELF. 509; This is used only for compiling crtstuff.c, 510; and it may be extended to other effects 511; needed for crtstuff.c on other systems. 512finhibit-size-directive 513Common Report Var(flag_inhibit_size_directive) 514Do not generate .size directives 515 516; Nonzero means that functions declared `inline' will be treated 517; as `static'. Prevents generation of zillions of copies of unused 518; static inline functions; instead, `inlines' are written out 519; only when actually used. Used in conjunction with -g. Also 520; does the right thing with #pragma interface. 521finline 522Common Report Var(flag_no_inline,0) Init(2) 523Pay attention to the \"inline\" keyword 524 525finline-functions 526Common Report Var(flag_inline_functions) 527Integrate simple functions into their callers 528 529finline-functions-called-once 530Common Report Var(flag_inline_functions_called_once) Init(1) 531Integrate functions called once into their callers 532 533finline-limit- 534Common RejectNegative Joined UInteger 535 536finline-limit= 537Common RejectNegative Joined UInteger 538-finline-limit=<number> Limit the size of inlined functions to <number> 539 540finstrument-functions 541Common Report Var(flag_instrument_function_entry_exit) 542Instrument function entry and exit with profiling calls 543 544finstrument-functions-exclude-function-list= 545Common RejectNegative Joined 546-finstrument-functions-exclude-function-list=name,... Do not instrument listed functions 547 548finstrument-functions-exclude-file-list= 549Common RejectNegative Joined 550-finstrument-functions-exclude-file-list=filename,... Do not instrument functions listed in files 551 552fipa-cp 553Common Report Var(flag_ipa_cp) 554Perform Interprocedural constant propagation 555 556fipa-pure-const 557Common Report Var(flag_ipa_pure_const) Init(0) 558Discover pure and const functions 559 560fipa-pta 561Common Report Var(flag_ipa_pta) Init(0) 562Perform interprocedural points-to analysis 563 564fipa-reference 565Common Report Var(flag_ipa_reference) Init(0) 566Discover readonly and non addressable static variables 567 568fipa-type-escape 569Common Report Var(flag_ipa_type_escape) Init(0) 570Type based escape and alias analysis 571 572fivopts 573Common Report Var(flag_ivopts) Init(1) 574Optimize induction variables on trees 575 576fjump-tables 577Common Var(flag_jump_tables) Init(1) 578Use jump tables for sufficiently large switch statements 579 580fkeep-inline-functions 581Common Report Var(flag_keep_inline_functions) 582Generate code for functions even if they are fully inlined 583 584fkeep-static-consts 585Common Report Var(flag_keep_static_consts) Init(1) 586Emit static const variables even if they are not used 587 588fleading-underscore 589Common Report Var(flag_leading_underscore) Init(-1) 590Give external symbols a leading underscore 591 592floop-optimize 593Common 594Does nothing. Preserved for backward compatibility. 595 596fmath-errno 597Common Report Var(flag_errno_math) Init(0) 598Set errno after built-in math functions 599 600fmem-report 601Common Report Var(mem_report) 602Report on permanent memory allocation 603 604; This will attempt to merge constant section constants, if 1 only 605; string constants and constants from constant pool, if 2 also constant 606; variables. 607fmerge-all-constants 608Common Report Var(flag_merge_constants,2) Init(1) 609Attempt to merge identical constants and constant variables 610 611fmerge-constants 612Common Report Var(flag_merge_constants,1) VarExists 613Attempt to merge identical constants across compilation units 614 615fmessage-length= 616Common RejectNegative Joined UInteger 617-fmessage-length=<number> Limit diagnostics to <number> characters per line. 0 suppresses line-wrapping 618 619fmodulo-sched 620Common Report Var(flag_modulo_sched) 621Perform SMS based modulo scheduling before the first scheduling pass 622 623fmove-loop-invariants 624Common Report Var(flag_move_loop_invariants) Init(1) 625Move loop invariant computations out of loops 626 627fmudflap 628Common RejectNegative Report Var(flag_mudflap) 629Add mudflap bounds-checking instrumentation for single-threaded program 630 631fmudflapth 632Common RejectNegative Report VarExists Var(flag_mudflap,2) 633Add mudflap bounds-checking instrumentation for multi-threaded program 634 635fmudflapir 636Common RejectNegative Report Var(flag_mudflap_ignore_reads) 637Ignore read operations when inserting mudflap instrumentation 638 639freschedule-modulo-scheduled-loops 640Common Report Var(flag_resched_modulo_sched) 641Enable/Disable the traditional scheduling in loops that already passed modulo scheduling 642 643fnon-call-exceptions 644Common Report Var(flag_non_call_exceptions) 645Support synchronous non-call exceptions 646 647fomit-frame-pointer 648Common Report Var(flag_omit_frame_pointer) 649When possible do not generate stack frames 650 651foptimize-register-move 652Common Report Var(flag_regmove) 653Do the full register move optimization pass 654 655foptimize-sibling-calls 656Common Report Var(flag_optimize_sibling_calls) 657Optimize sibling and tail recursive calls 658 659fpack-struct 660Common Report Var(flag_pack_struct) 661Pack structure members together without holes 662 663fpack-struct= 664Common RejectNegative Joined UInteger 665-fpack-struct=<number> Set initial maximum structure member alignment 666 667fpcc-struct-return 668Common Report Var(flag_pcc_struct_return,1) VarExists 669Return small aggregates in memory, not registers 670 671fpeel-loops 672Common Report Var(flag_peel_loops) 673Perform loop peeling 674 675fpeephole 676Common Report Var(flag_no_peephole,0) 677Enable machine specific peephole optimizations 678 679fpeephole2 680Common Report Var(flag_peephole2) 681Enable an RTL peephole pass before sched2 682 683fPIC 684Common Report Var(flag_pic,2) 685Generate position-independent code if possible (large mode) 686 687fPIE 688Common Report Var(flag_pie,2) 689Generate position-independent code for executables if possible (large mode) 690 691fpic 692Common Report Var(flag_pic,1) VarExists 693Generate position-independent code if possible (small mode) 694 695fpie 696Common Report Var(flag_pie,1) VarExists 697Generate position-independent code for executables if possible (small mode) 698 699fprefetch-loop-arrays 700Common Report Var(flag_prefetch_loop_arrays) 701Generate prefetch instructions, if available, for arrays in loops 702 703fprofile 704Common Report Var(profile_flag) 705Enable basic program profiling code 706 707fprofile-arcs 708Common Report Var(profile_arc_flag) 709Insert arc-based program profiling code 710 711fprofile-generate 712Common 713Enable common options for generating profile info for profile feedback directed optimizations 714 715fprofile-use 716Common 717Enable common options for performing profile feedback directed optimizations 718 719fprofile-values 720Common Report Var(flag_profile_values) 721Insert code to profile values of expressions 722 723frandom-seed 724Common 725 726frandom-seed= 727Common Joined RejectNegative 728-frandom-seed=<string> Make compile reproducible using <string> 729 730freg-struct-return 731Common Report Var(flag_pcc_struct_return,0) VarExists 732Return small aggregates in registers 733 734fregmove 735Common Report Var(flag_regmove) 736Enables a register move optimization 737 738frename-registers 739Common Report Var(flag_rename_registers) Init(2) 740Perform a register renaming optimization pass 741 742freorder-blocks 743Common Report Var(flag_reorder_blocks) 744Reorder basic blocks to improve code placement 745 746freorder-blocks-and-partition 747Common Report Var(flag_reorder_blocks_and_partition) 748Reorder basic blocks and partition into hot and cold sections 749 750freorder-functions 751Common Report Var(flag_reorder_functions) 752Reorder functions to improve code placement 753 754frerun-cse-after-loop 755Common Report Var(flag_rerun_cse_after_loop) Init(2) 756Add a common subexpression elimination pass after loop optimizations 757 758frerun-loop-opt 759Common 760Does nothing. Preserved for backward compatibility. 761 762frounding-math 763Common Report Var(flag_rounding_math) 764Disable optimizations that assume default FP rounding behavior 765 766fsched-interblock 767Common Report Var(flag_schedule_interblock) Init(1) 768Enable scheduling across basic blocks 769 770fsched-spec 771Common Report Var(flag_schedule_speculative) Init(1) 772Allow speculative motion of non-loads 773 774fsched-spec-load 775Common Report Var(flag_schedule_speculative_load) 776Allow speculative motion of some loads 777 778fsched-spec-load-dangerous 779Common Report Var(flag_schedule_speculative_load_dangerous) 780Allow speculative motion of more loads 781 782fsched-verbose= 783Common RejectNegative Joined 784-fsched-verbose=<number> Set the verbosity level of the scheduler 785 786fsched2-use-superblocks 787Common Report Var(flag_sched2_use_superblocks) 788If scheduling post reload, do superblock scheduling 789 790fsched2-use-traces 791Common Report Var(flag_sched2_use_traces) 792If scheduling post reload, do trace scheduling 793 794fschedule-insns 795Common Report Var(flag_schedule_insns) 796Reschedule instructions before register allocation 797 798fschedule-insns2 799Common Report Var(flag_schedule_insns_after_reload) 800Reschedule instructions after register allocation 801 802; sched_stalled_insns means that insns can be moved prematurely from the queue 803; of stalled insns into the ready list. 804fsched-stalled-insns 805Common Report Var(flag_sched_stalled_insns) 806Allow premature scheduling of queued insns 807 808fsched-stalled-insns= 809Common RejectNegative Joined UInteger 810-fsched-stalled-insns=<number> Set number of queued insns that can be prematurely scheduled 811 812; sched_stalled_insns_dep controls how many recently scheduled cycles will 813; be examined for a dependency on a stalled insn that is candidate for 814; premature removal from the queue of stalled insns into the ready list (has 815; an effect only if the flag 'sched_stalled_insns' is set). 816fsched-stalled-insns-dep 817Common Report Var(flag_sched_stalled_insns_dep,1) Init(1) 818Set dependence distance checking in premature scheduling of queued insns 819 820fsched-stalled-insns-dep= 821Common RejectNegative Joined UInteger 822-fsched-stalled-insns-dep=<number> Set dependence distance checking in premature scheduling of queued insns 823 824fsection-anchors 825Common Report Var(flag_section_anchors) 826Access data in the same section from shared anchor points 827 828frtl-abstract-sequences 829Common Report Var(flag_rtl_seqabstr) 830Perform sequence abstraction optimization on RTL 831 832fsee 833Common Report Var(flag_see) Init(0) 834Eliminate redundant sign extensions using LCM. 835 836fshow-column 837Common C ObjC C++ ObjC++ Report Var(flag_show_column) Init(1) 838Show column numbers in diagnostics, when available. Default on 839 840fsignaling-nans 841Common Report Var(flag_signaling_nans) 842Disable optimizations observable by IEEE signaling NaNs 843 844fsingle-precision-constant 845Common Report Var(flag_single_precision_constant) 846Convert floating point constants to single precision constants 847 848fsplit-ivs-in-unroller 849Common Report Var(flag_split_ivs_in_unroller) Init(1) 850Split lifetimes of induction variables when loops are unrolled 851 852fvariable-expansion-in-unroller 853Common Report Var(flag_variable_expansion_in_unroller) 854Apply variable expansion when loops are unrolled 855 856; Emit code to probe the stack, to help detect stack overflow; also 857; may cause large objects to be allocated dynamically. 858fstack-check 859Common Report Var(flag_stack_check) 860Insert stack checking code into the program 861 862fstack-limit 863Common 864 865fstack-limit-register= 866Common RejectNegative Joined 867-fstack-limit-register=<register> Trap if the stack goes past <register> 868 869fstack-limit-symbol= 870Common RejectNegative Joined 871-fstack-limit-symbol=<name> Trap if the stack goes past symbol <name> 872 873fstack-protector 874Common Report Var(flag_stack_protect, 1) 875Use propolice as a stack protection method 876 877fstack-protector-all 878Common Report RejectNegative Var(flag_stack_protect, 2) VarExists 879Use a stack protection method for every function 880 881fstack-protector-strong 882Common Report RejectNegative Var(flag_stack_protect, 3) 883Use a smart stack protection method for certain functions 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(1) 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