Skip to content

Instantly share code, notes, and snippets.

@compor
Created November 10, 2017 11:21
Show Gist options
  • Save compor/90f96a521279e2c2b08f3132b74566bb to your computer and use it in GitHub Desktop.
Save compor/90f96a521279e2c2b08f3132b74566bb to your computer and use it in GitHub Desktop.
LLVM optimization passes for various tools

Optimization passes run by Opt per standard level for LLVM 3.7

Level 0

-targetlibinfo -tti -verify

Level 1

adds

-no-aa -tbaa -scoped-noalias -assumption-cache-tracker -basicaa -simplifycfg -domtree -sroa -early-cse -lower-expect -no-aa -tbaa -scoped-noalias -assumption-cache-tracker -basicaa -ipsccp -globalopt -deadargelim -domtree -instcombine -simplifycfg -basiccg -prune-eh -inline-cost -always-inline -functionattrs -domtree -sroa -early-cse -lazy-value-info -jump-threading -correlated-propagation -simplifycfg -domtree -instcombine -tailcallelim -simplifycfg -reassociate -domtree -loops -loop-simplify -lcssa -loop-rotate -licm -loop-unswitch -instcombine -scalar-evolution -loop-simplify -lcssa -indvars -loop-idiom -loop-deletion -loop-unroll -memdep -memcpyopt -sccp -domtree -bdce -instcombine -lazy-value-info -jump-threading -correlated-propagation -domtree -memdep -dse -loops -loop-simplify -lcssa -licm -adce -simplifycfg -domtree -instcombine -barrier -float2int -domtree -loops -loop-simplify -lcssa -loop-rotate -branch-prob -block-freq -scalar-evolution -loop-accesses -loop-vectorize -instcombine -simplifycfg -domtree -instcombine -loops -loop-simplify -lcssa -scalar-evolution -loop-unroll -instcombine -loop-simplify -lcssa -licm -scalar-evolution -alignment-from-assumptions -strip-dead-prototypes

Level 2

drops

-always-inline

adds

-inline -mldst-motion -gvn -slp-vectorizer -elim-avail-extern -globaldce -constmerge

Level 3

adds

-argpromotion

PollyCC pre-optimization passes

Optimizations used to prep LLVM IR for Polly (in order used):

-basicaa -mem2reg -simplify-libcalls -simplifycfg -instcombine -tailcallelim -loop-simplify -lcssa -loop-rotate -lcssa -loop-unswitch -instcombine -loop-simplify -lcssa -indvars -loop-deletion -instcombine -polly-prepare -polly-region-simplify -indvars

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment