From 97cd7d5d44b60df7fc4a8dffb0a7d7d8d128aee2 Mon Sep 17 00:00:00 2001 From: Sanjoy Das Date: Thu, 9 Jun 2016 01:13:54 +0000 Subject: Factor out a loopHasNoAbnormalExits; NFC llvm-svn: 272236 --- llvm/lib/Analysis/ScalarEvolution.cpp | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'llvm/lib') diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp index 7a6bc3a7637..9278aa05dcb 100644 --- a/llvm/lib/Analysis/ScalarEvolution.cpp +++ b/llvm/lib/Analysis/ScalarEvolution.cpp @@ -4906,13 +4906,12 @@ bool ScalarEvolution::isAddRecNeverPoison(const Instruction *I, const Loop *L) { } } - if (!LatchControlDependentOnPoison) - return false; - - // Now check if loop has abonormal exits (or not), and cache the information. + return LatchControlDependentOnPoison && loopHasNoAbnormalExits(L); +} - auto Itr = LoopHasAbnormalExit.find(L); - if (Itr == LoopHasAbnormalExit.end()) { +bool ScalarEvolution::loopHasNoAbnormalExits(const Loop *L) { + auto Itr = LoopHasNoAbnormalExits.find(L); + if (Itr == LoopHasNoAbnormalExits.end()) { bool HasAbnormalExit = false; for (auto *BB : L->getBlocks()) { HasAbnormalExit = any_of(*BB, [](Instruction &I) { @@ -4921,12 +4920,12 @@ bool ScalarEvolution::isAddRecNeverPoison(const Instruction *I, const Loop *L) { if (HasAbnormalExit) break; } - auto InsertPair = LoopHasAbnormalExit.insert({L, HasAbnormalExit}); + auto InsertPair = LoopHasNoAbnormalExits.insert({L, !HasAbnormalExit}); assert(InsertPair.second && "We just checked!"); Itr = InsertPair.first; } - return !Itr->second; + return Itr->second; } const SCEV *ScalarEvolution::createSCEV(Value *V) { @@ -5490,7 +5489,7 @@ void ScalarEvolution::forgetLoop(const Loop *L) { for (Loop::iterator I = L->begin(), E = L->end(); I != E; ++I) forgetLoop(*I); - LoopHasAbnormalExit.erase(L); + LoopHasNoAbnormalExits.erase(L); } void ScalarEvolution::forgetValue(Value *V) { -- cgit v1.2.3