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