[llvm] r319679 - [SCEV] Use a "Discovered" set instead of a "Visited" set; NFC
Sanjoy Das via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 4 11:22:01 PST 2017
Author: sanjoy
Date: Mon Dec 4 11:22:01 2017
New Revision: 319679
URL: http://llvm.org/viewvc/llvm-project?rev=319679&view=rev
Log:
[SCEV] Use a "Discovered" set instead of a "Visited" set; NFC
Suggested by Max Kazantsev in https://reviews.llvm.org/D39361
Modified:
llvm/trunk/lib/Analysis/ScalarEvolution.cpp
Modified: llvm/trunk/lib/Analysis/ScalarEvolution.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/ScalarEvolution.cpp?rev=319679&r1=319678&r2=319679&view=diff
==============================================================================
--- llvm/trunk/lib/Analysis/ScalarEvolution.cpp (original)
+++ llvm/trunk/lib/Analysis/ScalarEvolution.cpp Mon Dec 4 11:22:01 2017
@@ -6414,11 +6414,9 @@ ScalarEvolution::getBackedgeTakenInfo(co
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(co
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);
}
}
More information about the llvm-commits
mailing list