From: Dale Johannesen Date: Fri, 19 Feb 2010 01:54:37 +0000 (+0000) Subject: Revert 96626, which causes build failure on ppc Darwin. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=efd9e9505167a398ba3c4924b09a47bd4d688e51;p=oota-llvm.git Revert 96626, which causes build failure on ppc Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96653 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Analysis/ScalarEvolution.h b/include/llvm/Analysis/ScalarEvolution.h index af5d10e6b78..383ee88ad28 100644 --- a/include/llvm/Analysis/ScalarEvolution.h +++ b/include/llvm/Analysis/ScalarEvolution.h @@ -586,11 +586,6 @@ namespace llvm { /// compute a trip count, or if the loop is deleted. void forgetLoop(const Loop *L); - /// forgetValue - This method should be called by the client when it has - /// changed a value in a way that may effect its value, or which may - /// disconnect it from a def-use chain linking it to a loop. - void forgetValue(Value *V); - /// GetMinTrailingZeros - Determine the minimum number of zero bits that S /// is guaranteed to end in (at every loop iteration). It is, at the same /// time, the minimum number of times S is divisible by 2. For example, diff --git a/lib/Analysis/ScalarEvolution.cpp b/lib/Analysis/ScalarEvolution.cpp index c2284a8ab9b..82200cd0281 100644 --- a/lib/Analysis/ScalarEvolution.cpp +++ b/lib/Analysis/ScalarEvolution.cpp @@ -3485,35 +3485,6 @@ void ScalarEvolution::forgetLoop(const Loop *L) { } } -/// forgetValue - This method should be called by the client when it has -/// changed a value in a way that may effect its value, or which may -/// disconnect it from a def-use chain linking it to a loop. -void ScalarEvolution::forgetValue(Value *V) { - Instruction *I = dyn_cast(V); - if (!I) return; - - // Drop information about expressions based on loop-header PHIs. - SmallVector Worklist; - Worklist.push_back(I); - - SmallPtrSet Visited; - while (!Worklist.empty()) { - I = Worklist.pop_back_val(); - if (!Visited.insert(I)) continue; - - std::map::iterator It = - Scalars.find(static_cast(I)); - if (It != Scalars.end()) { - ValuesAtScopes.erase(It->second); - Scalars.erase(It); - if (PHINode *PN = dyn_cast(I)) - ConstantEvolutionLoopExitValue.erase(PN); - } - - PushDefUseChildren(I, Worklist); - } -} - /// ComputeBackedgeTakenCount - Compute the number of times the backedge /// of the specified loop will execute. ScalarEvolution::BackedgeTakenInfo diff --git a/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp index 60492b02836..e699261b277 100644 --- a/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -246,13 +246,6 @@ void IndVarSimplify::RewriteLoopExitValues(Loop *L, if (!PN->getType()->isIntegerTy() && !PN->getType()->isPointerTy()) continue; - // It's necessary to tell ScalarEvolution about this explicitly so that - // it can walk the def-use list and forget all SCEVs, as it may not be - // watching the PHI itself. Once the new exit value is in place, there - // may not be a def-use connection between the loop and every instruction - // which got a SCEVAddRecExpr for that loop. - SE->forgetValue(PN); - // Iterate over all of the values in all the PHI nodes. for (unsigned i = 0; i != NumPreds; ++i) { // If the value being merged in is not integer or is not defined