summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSanjoy Das <sanjoy@playingwithpointers.com>2017-12-04 19:22:01 +0000
committerSanjoy Das <sanjoy@playingwithpointers.com>2017-12-04 19:22:01 +0000
commitadf37517304a3a661a033c785cb6b502539db486 (patch)
tree76e0ae4005036aee1cd31110b78b7c8ec814215a
parent7e36337935ab4d64f947bae93ec0ca0b51d714b1 (diff)
downloadbcm5719-llvm-adf37517304a3a661a033c785cb6b502539db486.tar.gz
bcm5719-llvm-adf37517304a3a661a033c785cb6b502539db486.zip
[SCEV] Use a "Discovered" set instead of a "Visited" set; NFC
Suggested by Max Kazantsev in https://reviews.llvm.org/D39361 llvm-svn: 319679
-rw-r--r--llvm/lib/Analysis/ScalarEvolution.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index 98c2845c1e6..8e60ca01c02 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -6414,11 +6414,9 @@ ScalarEvolution::getBackedgeTakenInfo(const Loop *L) {
SmallVector<Instruction *, 16> Worklist;
PushLoopPHIs(L, Worklist);
- SmallPtrSet<Instruction *, 8> Visited;
+ SmallPtrSet<Instruction *, 8> Discovered;
while (!Worklist.empty()) {
Instruction *I = Worklist.pop_back_val();
- if (!Visited.insert(I).second)
- continue;
ValueExprMapType::iterator It =
ValueExprMap.find_as(static_cast<Value *>(I));
@@ -6460,7 +6458,8 @@ ScalarEvolution::getBackedgeTakenInfo(const Loop *L) {
for (auto *U : I->users())
if (auto *I = dyn_cast<Instruction>(U)) {
auto *LoopForUser = LI.getLoopFor(I->getParent());
- if (LoopForUser && L->contains(LoopForUser))
+ if (LoopForUser && L->contains(LoopForUser) &&
+ Discovered.insert(I).second)
Worklist.push_back(I);
}
}
OpenPOWER on IntegriCloud