forked from OSchip/llvm-project
e9b18e3d34
Like several other loop passes (the vectorizer, etc) this pass doesn't really fit the model of a loop pass. The critical distinction is that it isn't intended to be pipelined together with other loop passes. I plan to add some documentation to the loop pass manager to make this more clear on that side. LoopSink is also different because it doesn't really need a lot of the infrastructure of our loop passes. For example, if there aren't loop invariant instructions causing a preheader to exist, there is no need to form a preheader. It also doesn't need LCSSA because this pass is only involved in sinking invariant instructions from a preheader into the loop, not reasoning about live-outs. This allows some nice simplifications to the pass in the new PM where we can directly walk the loops once without restructuring them. Differential Revision: https://reviews.llvm.org/D28921 llvm-svn: 292589 |
||
---|---|---|
.. | ||
2003-02-26-LoopExitNotDominated.ll | ||
2003-02-27-NestedLoopExitBlocks.ll | ||
2003-02-27-PreheaderExitNodeUpdate.ll | ||
2003-02-27-PreheaderProblem.ll | ||
2003-02-27-StoreSinkPHIs.ll | ||
2003-02-28-PromoteDifferentType.ll | ||
2003-05-02-LoadHoist.ll | ||
2003-12-11-SinkingToPHI.ll | ||
2004-09-14-AliasAnalysisInvalidate.ll | ||
2004-11-17-UndefIndexCrash.ll | ||
2006-09-12-DeadUserOfSunkInstr.ll | ||
2007-05-22-VolatileSink.ll | ||
2007-07-30-AliasSet.ll | ||
2007-09-17-PromoteValue.ll | ||
2007-09-24-PromoteNullValue.ll | ||
2007-10-01-PromoteSafeValue.ll | ||
2008-05-20-AliasSetVAArg.ll | ||
2008-07-22-LoadGlobalConstant.ll | ||
2009-12-10-LICM-Indbr-Crash.ll | ||
2011-04-06-HoistMissedASTUpdate.ll | ||
2011-04-06-PromoteResultOfPromotion.ll | ||
2011-04-09-RAUW-AST.ll | ||
2011-07-06-Alignment.ll | ||
2014-09-10-doFinalizationAssert.ll | ||
AliasSetMemSet.ll | ||
PR19798.ll | ||
PR21582.ll | ||
PR24013.ll | ||
Preserve-LCSSA.ll | ||
alias-set-tracker-loss.ll | ||
argmemonly-call.ll | ||
assume.ll | ||
atomics.ll | ||
basictest.ll | ||
bisect-state.ll | ||
constexpr.ll | ||
crash.ll | ||
debug-value.ll | ||
extra-copies.ll | ||
funclet.ll | ||
hoist-bitcast-load.ll | ||
hoist-deref-load.ll | ||
hoist-invariant-load.ll | ||
hoist-nounwind.ll | ||
hoist-round.ll | ||
hoisting.ll | ||
lcssa-ssa-promoter.ll | ||
loopsink.ll | ||
no-preheader-test.ll | ||
opt-remarks-conditional-load.ll | ||
opt-remarks-intervening-store.ll | ||
opt-remarks.ll | ||
pr23608.ll | ||
pr26843.ll | ||
pr27262.ll | ||
preheader-safe.ll | ||
promote-order.ll | ||
promote-tls.ll | ||
scalar-promote-memmodel.ll | ||
scalar-promote-unwind.ll | ||
scalar-promote.ll | ||
sink.ll | ||
sinking.ll | ||
speculate.ll | ||
update-scev.ll | ||
volatile-alias.ll |