From: Dan Gohman Date: Tue, 5 Aug 2008 22:34:21 +0000 (+0000) Subject: Pass the computed iteration count value to RewriteLoopExitValues X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=5a6c448a7ec2292649f73a813136ae709a23c8e0;p=oota-llvm.git Pass the computed iteration count value to RewriteLoopExitValues instead of having it call getIterationCount again. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54380 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp index cde16e74736..5d709e50fbb 100644 --- a/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -90,7 +90,7 @@ namespace { std::set &DeadInsts); Instruction *LinearFunctionTestReplace(Loop *L, SCEV *IterationCount, SCEVExpander &RW); - void RewriteLoopExitValues(Loop *L); + void RewriteLoopExitValues(Loop *L, SCEV *IterationCount); void DeleteTriviallyDeadInstructions(std::set &Insts); }; @@ -303,7 +303,7 @@ Instruction *IndVarSimplify::LinearFunctionTestReplace(Loop *L, /// final value of any expressions that are recurrent in the loop, and /// substitute the exit values from the loop into any instructions outside of /// the loop that use the final values of the current expressions. -void IndVarSimplify::RewriteLoopExitValues(Loop *L) { +void IndVarSimplify::RewriteLoopExitValues(Loop *L, SCEV *IterationCount) { BasicBlock *Preheader = L->getLoopPreheader(); // Scan all of the instructions in the loop, looking at those that have @@ -321,7 +321,7 @@ void IndVarSimplify::RewriteLoopExitValues(Loop *L) { BlockToInsertInto = Preheader; BasicBlock::iterator InsertPt = BlockToInsertInto->getFirstNonPHI(); - bool HasConstantItCount = isa(SE->getIterationCount(L)); + bool HasConstantItCount = isa(IterationCount); std::set InstructionsToDelete; std::map ExitValues; @@ -458,7 +458,7 @@ bool IndVarSimplify::runOnLoop(Loop *L, LPPassManager &LPM) { // SCEVHandle IterationCount = SE->getIterationCount(L); if (!isa(IterationCount)) - RewriteLoopExitValues(L); + RewriteLoopExitValues(L, IterationCount); // Next, analyze all of the induction variables in the loop, canonicalizing // auxillary induction variables.