Implement LoopStrengthReduce/share_code_in_preheader.ll by having one
authorChris Lattner <sabre@nondot.org>
Mon, 8 Aug 2005 05:47:49 +0000 (05:47 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 8 Aug 2005 05:47:49 +0000 (05:47 +0000)
rewriter for all code inserted into the preheader, which is never flushed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22702 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/LoopStrengthReduce.cpp

index cf974b8876e17228995d41637640ac38feefc5c1..f11976fe879ead281d2b535640222c7a188bbb71 100644 (file)
@@ -542,6 +542,8 @@ void LoopStrengthReduce::StrengthReduceStridedIVUsers(Value *Stride,
   }
 
   SCEVExpander Rewriter(*SE, *LI);
+  SCEVExpander PreheaderRewriter(*SE, *LI);
+
   BasicBlock  *Preheader = L->getLoopPreheader();
   Instruction *PreInsertPt = Preheader->getTerminator();
   Instruction *PhiInsertBefore = L->getHeader()->begin();
@@ -578,7 +580,8 @@ void LoopStrengthReduce::StrengthReduceStridedIVUsers(Value *Stride,
 
     // Emit the initial base value into the loop preheader, and add it to the
     // Phi node.
-    Value *BaseV = Rewriter.expandCodeFor(Base, PreInsertPt, ReplacedTy);
+    Value *BaseV = PreheaderRewriter.expandCodeFor(Base, PreInsertPt,
+                                                   ReplacedTy);
     NewPHI->addIncoming(BaseV, Preheader);
 
     // Emit the increment of the base value before the terminator of the loop