diff options
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopUtils.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/LoopUtils.cpp | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/llvm/lib/Transforms/Utils/LoopUtils.cpp b/llvm/lib/Transforms/Utils/LoopUtils.cpp index 091f14ebe9f..e03880526bf 100644 --- a/llvm/lib/Transforms/Utils/LoopUtils.cpp +++ b/llvm/lib/Transforms/Utils/LoopUtils.cpp @@ -727,46 +727,3 @@ SmallVector<Instruction *, 8> llvm::findDefsUsedOutsideOfLoop(Loop *L) { return UsedOutside; } - -PredicatedScalarEvolution::PredicatedScalarEvolution(ScalarEvolution &SE) - : SE(SE), Generation(0) {} - -const SCEV *PredicatedScalarEvolution::getSCEV(Value *V) { - const SCEV *Expr = SE.getSCEV(V); - RewriteEntry &Entry = RewriteMap[Expr]; - - // If we already have an entry and the version matches, return it. - if (Entry.second && Generation == Entry.first) - return Entry.second; - - // We found an entry but it's stale. Rewrite the stale entry - // acording to the current predicate. - if (Entry.second) - Expr = Entry.second; - - const SCEV *NewSCEV = SE.rewriteUsingPredicate(Expr, Preds); - Entry = {Generation, NewSCEV}; - - return NewSCEV; -} - -void PredicatedScalarEvolution::addPredicate(const SCEVPredicate &Pred) { - if (Preds.implies(&Pred)) - return; - Preds.add(&Pred); - updateGeneration(); -} - -const SCEVUnionPredicate &PredicatedScalarEvolution::getUnionPredicate() const { - return Preds; -} - -void PredicatedScalarEvolution::updateGeneration() { - // If the generation number wrapped recompute everything. - if (++Generation == 0) { - for (auto &II : RewriteMap) { - const SCEV *Rewritten = II.second.second; - II.second = {Generation, SE.rewriteUsingPredicate(Rewritten, Preds)}; - } - } -} |