IntervalPartition was changed to inherit from vector<Interval*> instead of
contain it so that it would have full iterator access without much work.
Writer includes code to print out IntervalPartition's now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Analysis/Writer.cpp b/lib/Analysis/Writer.cpp
index 9080dc6..6fce54a 100644
--- a/lib/Analysis/Writer.cpp
+++ b/lib/Analysis/Writer.cpp
@@ -6,11 +6,15 @@
//===----------------------------------------------------------------------===//
#include "llvm/Analysis/Writer.h"
-#include "llvm/Analysis/Interval.h"
+#include "llvm/Analysis/IntervalPartition.h"
#include "llvm/Analysis/Dominators.h"
#include <iterator>
#include <algorithm>
+//===----------------------------------------------------------------------===//
+// Interval Printing Routines
+//===----------------------------------------------------------------------===//
+
void cfg::WriteToOutput(const Interval *I, ostream &o) {
o << "-------------------------------------------------------------\n"
<< "Interval Contents:\n";
@@ -28,6 +32,16 @@
ostream_iterator<BasicBlock*>(o, "\n"));
}
+void cfg::WriteToOutput(const IntervalPartition &IP, ostream &o) {
+ copy(IP.begin(), IP.end(), ostream_iterator<const Interval *>(o, "\n"));
+}
+
+
+
+//===----------------------------------------------------------------------===//
+// Dominator Printing Routines
+//===----------------------------------------------------------------------===//
+
ostream &operator<<(ostream &o, const set<const BasicBlock*> &BBs) {
copy(BBs.begin(), BBs.end(), ostream_iterator<const BasicBlock*>(o, "\n"));
return o;