improve debug output
authorChris Lattner <sabre@nondot.org>
Wed, 3 Aug 2005 23:30:08 +0000 (23:30 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 3 Aug 2005 23:30:08 +0000 (23:30 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22638 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Transforms/Scalar/LoopStrengthReduce.cpp

index 27d0e5c667da9c6ceeef4c0a1a8d3c075e8af889..ddce7511042416f3f8ae905cdad1735387aefd6d 100644 (file)
@@ -15,6 +15,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#define DEBUG_TYPE "loop-reduce"
 #include "llvm/Transforms/Scalar.h"
 #include "llvm/Constants.h"
 #include "llvm/Instructions.h"
@@ -553,6 +554,8 @@ void LoopStrengthReduce::StrengthReduceStridedIVUsers(Value *Stride,
   BasicBlock *LatchBlock =
    SomeLoopPHI->getIncomingBlock(SomeLoopPHI->getIncomingBlock(0) == Preheader);
 
+  DEBUG(std::cerr << "INSERTING IVs of STRIDE " << *Stride << ":\n");
+  
   // FIXME: This loop needs increasing levels of intelligence.
   // STAGE 0: just emit everything as its own base.
   // STAGE 1: factor out common vars from bases, and try and push resulting
@@ -565,7 +568,9 @@ void LoopStrengthReduce::StrengthReduceStridedIVUsers(Value *Stride,
   std::sort(UsersToProcess.begin(), UsersToProcess.end());
   while (!UsersToProcess.empty()) {
     SCEVHandle Base = UsersToProcess.front().first;
-    
+
+    DEBUG(std::cerr << "  INSERTING PHI with BASE = " << *Base << ":\n");
+   
     // Create a new Phi for this base, and stick it in the loop header.
     const Type *ReplacedTy = Base->getType();
     PHINode *NewPHI = new PHINode(ReplacedTy, "iv.", PhiInsertBefore);
@@ -595,14 +600,14 @@ void LoopStrengthReduce::StrengthReduceStridedIVUsers(Value *Stride,
       Rewriter.clear();
       SCEVHandle NewValSCEV = SCEVAddExpr::get(SCEVUnknown::get(NewPHI),
                                                User.Imm);
-      Value *Replaced = UsersToProcess.front().second.OperandValToReplace;
+      Value *Replaced = User.OperandValToReplace;
       Value *newVal = Rewriter.expandCodeFor(NewValSCEV, User.Inst,
                                              Replaced->getType());
 
       // Replace the use of the operand Value with the new Phi we just created.
-      DEBUG(std::cerr << "REPLACING: " << *Replaced << "IN: " <<
-            *User.Inst << "WITH: "<< *newVal << '\n');
       User.Inst->replaceUsesOfWith(Replaced, newVal);
+      DEBUG(std::cerr << "    CHANGED: IMM =" << *User.Imm << "  Inst = "
+            << *User.Inst);
 
       // Mark old value we replaced as possibly dead, so that it is elminated
       // if we just replaced the last use of that value.