C:\QtSDK1.2.1\mingw\bin>g++ --help=optimizers
The following options control optimizations:
-O<number> Set optimization level to <number>
-Os Optimize for space rather than speed
-falign-functions Align the start of functions
-falign-jumps Align labels which are only reached by jumping
-falign-labels Align all labels
-falign-loops Align the start of loops
-fargument-alias Specify that arguments may alias each other and
globals
-fargument-noalias Assume arguments may alias globals but not each
other
-fargument-noalias-anything Assume arguments alias no other storage
-fargument-noalias-global Assume arguments alias neither each other nor
globals
-fasynchronous-unwind-tables Generate unwind tables that are exact at each
instruction boundary
-fbranch-count-reg Replace add, compare, branch with branch on count
register
-fbranch-probabilities Use profiling information for branch probabilities
-fbranch-target-load-optimize Perform branch target load optimization before
prologue / epilogue threading
-fbranch-target-load-optimize2 Perform branch target load optimization after
prologue / epilogue threading
-fbtr-bb-exclusive Restrict target load migration not to re-use
registers in any basic block
-fcaller-saves Save registers around function calls
-fcommon Do not put uninitialized globals in the common
section
-fconserve-stack Do not perform optimizations increasing
noticeably stack usage
-fcprop-registers Perform a register copy-propagation optimization
pass
-fcrossjumping Perform cross-jumping optimization
-fcse-follow-jumps When running CSE, follow jumps to their targets
-fcse-skip-blocks When running CSE, follow conditional jumps
-fcx-fortran-rules Complex multiplication and division follow
Fortran rules
-fcx-limited-range Omit range reduction step when performing complex
division
-fdata-sections Place data items into their own section
-fdce Use the RTL dead code elimination pass
-fdefer-pop Defer popping functions args from stack until
later
-fdelayed-branch Attempt to fill delay slots of branch instructions
-fdelete-null-pointer-checks Delete useless null pointer checks
-fdse Use the RTL dead store elimination pass
-fearly-inlining Perform early inlining
-fexceptions Enable exception handling
-fexpensive-optimizations Perform a number of minor, expensive optimizations
-ffinite-math-only Assume no NaNs or infinities are generated
-ffloat-store Don't allocate floats and doubles in extended-
precision registers
-fforward-propagate Perform a forward propagation pass on RTL
-fgcse Perform global common subexpression elimination
-fgcse-after-reload Perform global common subexpression elimination
after register allocation has finished
-fgcse-las Perform redundant load after store elimination in
global common subexpression elimination
-fgcse-lm Perform enhanced load motion during global common
subexpression elimination
-fgcse-sm Perform store motion after global common
subexpression elimination
-fgraphite-identity Enable Graphite Identity transformation
-fguess-branch-probability Enable guessing of branch probabilities
-fhandle-exceptions
-fif-conversion Perform conversion of conditional jumps to
branchless equivalents
-fif-conversion2 Perform conversion of conditional jumps to
conditional execution
-finline-functions Integrate simple functions into their callers
-finline-functions-called-once Integrate functions called once into their
callers
-finline-small-functions Integrate simple functions into their callers
when code size is known to not growth
-fipa-cp Perform Interprocedural constant propagation
-fipa-cp-clone Perform cloning to make Interprocedural constant
propagation stronger
-fipa-matrix-reorg Perform matrix layout flattening and transposing
based on profiling information.
-fipa-pta Perform interprocedural points-to analysis
-fipa-pure-const Discover pure and const functions
-fipa-reference Discover readonly and non addressable static
variables
-fipa-type-escape Type based escape and alias analysis
-fivopts Optimize induction variables on trees
-fjump-tables Use jump tables for sufficiently large switch
statements
-floop-block Enable Loop Blocking transformation
-floop-interchange Enable Loop Interchange transformation
-floop-strip-mine Enable Loop Strip Mining transformation
-fmath-errno Set errno after built-in math functions
-fmerge-all-constants Attempt to merge identical constants and constant
variables
-fmerge-constants Attempt to merge identical constants across
compilation units
-fmodulo-sched Perform SMS based modulo scheduling before the
first scheduling pass
-fmove-loop-invariants Move loop invariant computations out of loops
-fnon-call-exceptions Support synchronous non-call exceptions
-fomit-frame-pointer When possible do not generate stack frames
-foptimize-register-move Do the full register move optimization pass
-foptimize-sibling-calls Optimize sibling and tail recursive calls
-fpack-struct Pack structure members together without holes
-fpack-struct=<number> Set initial maximum structure member alignment
-fpeel-loops Perform loop peeling
-fpeephole Enable machine specific peephole optimizations
-fpeephole2 Enable an RTL peephole pass before sched2
-fpredictive-commoning Run predictive commoning optimization.
-fprefetch-loop-arrays Generate prefetch instructions, if available, for
arrays in loops
-freg-struct-return Return small aggregates in registers
-fregmove Enables a register move optimization
-frename-registers Perform a register renaming optimization pass
-freorder-blocks Reorder basic blocks to improve code placement
-freorder-blocks-and-partition Reorder basic blocks and partition into hot
and cold sections
-freorder-functions Reorder functions to improve code placement
-frerun-cse-after-loop Add a common subexpression elimination pass after
loop optimizations
-freschedule-modulo-scheduled-loops Enable/Disable the traditional scheduling
in loops that already passed modulo scheduling
-frounding-math Disable optimizations that assume default FP
rounding behavior
-frtl-abstract-sequences Perform sequence abstraction optimization on RTL
-frtti Generate run time type descriptor information
-fsched-interblock Enable scheduling across basic blocks
-fsched-spec Allow speculative motion of non-loads
-fsched-spec-load Allow speculative motion of some loads
-fsched-spec-load-dangerous Allow speculative motion of more loads
-fsched-stalled-insns Allow premature scheduling of queued insns
-fsched-stalled-insns-dep Set dependence distance checking in premature
scheduling of queued insns
-fsched2-use-superblocks If scheduling post reload, do superblock
scheduling
-fsched2-use-traces If scheduling post reload, do trace scheduling
-fschedule-insns Reschedule instructions before register allocation
-fschedule-insns2 Reschedule instructions after register allocation
-fsection-anchors Access data in the same section from shared
anchor points
-fsel-sched-pipelining Perform software pipelining of inner loops during
selective scheduling
-fsel-sched-pipelining-outer-loops Perform software pipelining of outer loops
during selective scheduling
-fsel-sched-reschedule-pipelined Reschedule pipelined regions without
pipelining
-fselective-scheduling Schedule instructions using selective scheduling
algorithm
-fselective-scheduling2 Run selective scheduling after reload
-fshort-double Use the same size for double as for float
-fshort-enums Use the narrowest integer type possible for
enumeration types
-fshort-wchar Force the underlying type for "wchar_t" to be
"unsigned short"
-fsignaling-nans Disable optimizations observable by IEEE
signaling NaNs
-fsigned-zeros Disable floating point optimizations that ignore
the IEEE signedness of zero
-fsingle-precision-constant Convert floating point constants to single
precision constants
-fsplit-ivs-in-unroller Split lifetimes of induction variables when loops
are unrolled
-fsplit-wide-types Split wide types into independent registers
-fstrict-aliasing Assume strict aliasing rules apply
-fthread-jumps Perform jump threading optimizations
-fno-threadsafe-statics Do not generate thread-safe code for initializing
local statics
-ftoplevel-reorder Reorder top level functions, variables, and asms
-ftrapping-math Assume floating-point operations can trap
-ftrapv Trap for signed overflow in addition, subtraction
and multiplication
-ftree-builtin-call-dce Enable conditional dead code elimination for
builtin calls
-ftree-ccp Enable SSA-CCP optimization on trees
-ftree-ch Enable loop header copying on trees
-ftree-copy-prop Enable copy propagation on trees
-ftree-copyrename Replace SSA temporaries with better names in
copies
-ftree-cselim Transform condition stores into unconditional ones
-ftree-dce Enable SSA dead code elimination optimization on
trees
-ftree-dominator-opts Enable dominator optimizations
-ftree-dse Enable dead store elimination
-ftree-fre Enable Full Redundancy Elimination (FRE) on trees
-ftree-loop-distribution Enable loop distribution on trees
-ftree-loop-im Enable loop invariant motion on trees
-ftree-loop-ivcanon Create canonical induction variables in loops
-ftree-loop-linear Enable linear loop transforms on trees
-ftree-loop-optimize Enable loop optimizations on tree level
-ftree-lrs Perform live range splitting during the SSA-
>normal pass
-ftree-pre Enable SSA-PRE optimization on trees
-ftree-reassoc Enable reassociation on tree level
-ftree-scev-cprop Enable copy propagation of scalar-evolution
information.
-ftree-sink Enable SSA code sinking on trees
-ftree-sra Perform scalar replacement of aggregates
-ftree-switch-conversion Perform conversions of switch initializations.
-ftree-ter Replace temporary expressions in the SSA->normal
pass
-ftree-vect-loop-version Enable loop versioning when doing loop
vectorization on trees
-ftree-vectorize Enable loop vectorization on trees
-ftree-vrp Perform Value Range Propagation on trees
-funit-at-a-time Compile whole compilation unit at a time
-funroll-all-loops Perform loop unrolling for all loops
-funroll-loops Perform loop unrolling when iteration count is
known
-funsafe-loop-optimizations Allow loop optimizations to assume that the loops
behave in normal way
-funsafe-math-optimizations Allow math optimizations that may violate IEEE or
ISO standards
-funswitch-loops Perform loop unswitching
-funwind-tables Just generate unwind tables for exception handling
-fvar-tracking Perform variable tracking
-fvar-tracking-uninit Perform variable tracking and also tag variables
that are uninitialized
-fvariable-expansion-in-unroller Apply variable expansion when loops are
unrolled
-fvect-cost-model Enable use of cost model in vectorization
-fvpt Use expression value profiles in optimizations
-fweb Construct webs and split unrelated uses of single
variable
-fwhole-program Perform whole program optimizations
-fwrapv