diff options
| author | Sanjoy Das <sanjoy@playingwithpointers.com> | 2017-12-04 19:22:01 +0000 |
|---|---|---|
| committer | Sanjoy Das <sanjoy@playingwithpointers.com> | 2017-12-04 19:22:01 +0000 |
| commit | adf37517304a3a661a033c785cb6b502539db486 (patch) | |
| tree | 76e0ae4005036aee1cd31110b78b7c8ec814215a | |
| parent | 7e36337935ab4d64f947bae93ec0ca0b51d714b1 (diff) | |
| download | bcm5719-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.cpp | 7 |
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); } } |

