From: Sanjoy Das Date: Mon, 4 Dec 2017 19:22:01 +0000 (+0000) Subject: [SCEV] Use a "Discovered" set instead of a "Visited" set; NFC X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c965de5bf8b7c3d160a7524110dddaa5d10d85b9;p=llvm [SCEV] Use a "Discovered" set instead of a "Visited" set; NFC Suggested by Max Kazantsev in https://reviews.llvm.org/D39361 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@319679 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp index 98c2845c1e6..8e60ca01c02 100644 --- a/lib/Analysis/ScalarEvolution.cpp +++ b/lib/Analysis/ScalarEvolution.cpp @@ -6414,11 +6414,9 @@ ScalarEvolution::getBackedgeTakenInfo(const Loop *L) { SmallVector Worklist; PushLoopPHIs(L, Worklist); - SmallPtrSet Visited; + SmallPtrSet Discovered; while (!Worklist.empty()) { Instruction *I = Worklist.pop_back_val(); - if (!Visited.insert(I).second) - continue; ValueExprMapType::iterator It = ValueExprMap.find_as(static_cast(I)); @@ -6460,7 +6458,8 @@ ScalarEvolution::getBackedgeTakenInfo(const Loop *L) { for (auto *U : I->users()) if (auto *I = dyn_cast(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); } }