aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2010-02-01 22:51:23 +0000
committerBill Wendling <isanbard@gmail.com>2010-02-01 22:51:23 +0000
commitf7d848349e25f470e63bc176d4d120bdcf0e1649 (patch)
tree7effa80972abbb8e81fda872b2b303f6c3fa685c
parent5e280a306a23b80ce1446285b69a0c4dfb11b087 (diff)
Add "dump" method to IVUsersOneStride.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95022 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Analysis/IVUsers.h5
-rw-r--r--lib/Analysis/IVUsers.cpp23
2 files changed, 28 insertions, 0 deletions
diff --git a/include/llvm/Analysis/IVUsers.h b/include/llvm/Analysis/IVUsers.h
index 50f7d45e19..b69bda8b77 100644
--- a/include/llvm/Analysis/IVUsers.h
+++ b/include/llvm/Analysis/IVUsers.h
@@ -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 {
diff --git a/lib/Analysis/IVUsers.cpp b/lib/Analysis/IVUsers.cpp
index 38611ccb62..9c472ae73b 100644
--- a/lib/Analysis/IVUsers.cpp
+++ b/lib/Analysis/IVUsers.cpp
@@ -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());
+}