summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2001-07-03 15:28:35 +0000
committerChris Lattner <sabre@nondot.org>2001-07-03 15:28:35 +0000
commit81f3ace7531c25ac5338e7aa488c70f97212b545 (patch)
tree58de4fc3bbd1c0e888dbce5b5e2feebdb143824a /llvm/lib/Analysis
parent6bf3e9512bbd281eaafffe3983719a8250961280 (diff)
downloadbcm5719-llvm-81f3ace7531c25ac5338e7aa488c70f97212b545.tar.gz
bcm5719-llvm-81f3ace7531c25ac5338e7aa488c70f97212b545.zip
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. llvm-svn: 133
Diffstat (limited to 'llvm/lib/Analysis')
-rw-r--r--llvm/lib/Analysis/IntervalPartition.cpp2
-rw-r--r--llvm/lib/Analysis/Writer.cpp16
2 files changed, 16 insertions, 2 deletions
diff --git a/llvm/lib/Analysis/IntervalPartition.cpp b/llvm/lib/Analysis/IntervalPartition.cpp
index af6cea1627d..bbdcbef65f4 100644
--- a/llvm/lib/Analysis/IntervalPartition.cpp
+++ b/llvm/lib/Analysis/IntervalPartition.cpp
@@ -24,7 +24,7 @@ IntervalPartition::~IntervalPartition() {
// interval itself (in the IntervalMap).
//
void IntervalPartition::addIntervalToPartition(Interval *I) {
- IntervalList.push_back(I);
+ push_back(I);
// Add mappings for all of the basic blocks in I to the IntervalPartition
for (Interval::node_iterator It = I->Nodes.begin(), End = I->Nodes.end();
diff --git a/llvm/lib/Analysis/Writer.cpp b/llvm/lib/Analysis/Writer.cpp
index 9080dc61441..6fce54a8288 100644
--- a/llvm/lib/Analysis/Writer.cpp
+++ b/llvm/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 @@ void cfg::WriteToOutput(const Interval *I, ostream &o) {
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;
OpenPOWER on IntegriCloud