Optimizing for Speed Levels
The following table describes the compiler optimization that each optimization level provides. Specify the optimization level you want to use for your project in the Build Options dialog box. For more information about the behavior of each compiler optimization, refer to the LLVM website1.
Optimize for Speed (Level 1)
Compiler Optimization | Description |
---|---|
-adce | Aggressive dead code elimination |
-deadargelim | Dead argument elimination |
-deadtypeelim | Dead type elimination |
-dse | Dead store elimination |
-globalopt | Global variable optimizer |
-indvars | Canonicalize induction variables |
-inline | Function integration/inlining |
-instcombine | Combine redundant instructions |
-ipsccp | Interprocedural sparse conditional constant propagation |
-functionattrs | Deduce function attributes |
-jump-threading | Jump threading |
-lcssa | Loop-closed SSA form pass |
-licm | Loop invariant code motion |
-loop-deletion | Delete dead loops |
-loop-rotate | Rotate loops |
-loop-simplify | Canonicalize natural loops |
-loop-unswitch | Unswitch loops |
-memcpyopt | MemCpy optimization |
-prune-eh | Remove unused exception handling info |
-reassociate | Reassociate expressions |
-scalarrepl-ssa | Scalar replacement of aggregates (DT) |
-sccp | Sparse conditional constant propagation |
-simplifycfg | Simplify the CFG |
-simplify-libcalls | Simplify well-known library calls |
-strip-dead-prototypes | Strip unused function prototypes |
-tailcallelim | Tail call elimination |
-correlated-propagation | Correlated value propagation |
-early-cse | Eliminate redundant instructions |
-loop-idiom | Transform simple loops |
Optimize for Speed (Level 2)
In addition to the compiler optimizations included in Level 1, Level 2 provides the following:
Compiler Optimization | Description |
---|---|
-constmerge | Merge duplicate global constants |
-gvn | Global value numbering |
-loop-unroll | Unroll loops |
Optimize for Speed (Level 3)
In addition to the compiler optimizations included in Levels 1 and 2, Level 3 provides the following:
Compiler Optimization | Description |
---|---|
-argpromotion | Promote by reference arguments to scalars |
-globaldce | Dead global elimination |
This document includes content from LLVM 3.3 licensed by a third party or parties pursuant to the LLVM License that is subject to the following notice(s):
Copyright © 2003-2013 University of Illinois at Urbana-Champaign