Add "dump" method to IVUsersOneStride.
authorBill Wendling <isanbard@gmail.com>
Mon, 1 Feb 2010 22:51:23 +0000 (22:51 +0000)
committerBill Wendling <isanbard@gmail.com>
Mon, 1 Feb 2010 22:51:23 +0000 (22:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95022 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/IVUsers.h
lib/Analysis/IVUsers.cpp

index 50f7d45e19af119564a23c1a0d8735c7c8d98424..b69bda8b7722ce3c63ed43605793d89867b45683 100644 (file)
@@ -165,6 +165,11 @@ public:
   void removeUser(IVStrideUse *User) {
     Users.erase(User);
   }
+
+  void print(raw_ostream &OS) const;
+
+  /// dump - This method is used for debugging.
+  void dump() const;
 };
 
 class IVUsers : public LoopPass {
index 38611ccb621ebf24387359e5a27923b99e34282a..9c472ae73bc13fbe097cd6f3f5f889e32e969c21 100644 (file)
@@ -386,3 +386,26 @@ void IVStrideUse::deleted() {
   Parent->Users.erase(this);
   // this now dangles!
 }
+
+void IVUsersOfOneStride::print(raw_ostream &OS) const {
+  OS << "IV Users of one stride:\n";
+
+  if (Stride)
+    OS << "    Stride: " << *Stride << '\n';
+
+  OS << "    Users:\n";
+
+  unsigned Count = 1;
+
+  for (ilist<IVStrideUse>::const_iterator
+         I = Users.begin(), E = Users.end(); I != E; ++I) {
+    const IVStrideUse &SU = *I;
+    OS << "      " << Count++ << '\n';
+    OS << "        Offset: " << *SU.getOffset() << '\n';
+    OS << "         Instr: " << *SU << '\n';
+  }
+}
+
+void IVUsersOfOneStride::dump() const {
+  print(dbgs());
+}