IntervalPartition was changed to inherit from vector<Interval*> instead of
authorChris Lattner <sabre@nondot.org>
Tue, 3 Jul 2001 15:28:08 +0000 (15:28 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 3 Jul 2001 15:28:08 +0000 (15:28 +0000)
contain it so that it would have full iterator access without much work.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/IntervalPartition.h
include/llvm/Analysis/Writer.h

index 796c840b9a839f0e16f61b2223005b63e67c0ba0..494ccd20976f6800bd44edfdcf730c0532bb4e96 100644 (file)
@@ -31,17 +31,13 @@ namespace cfg {
 // BasicBlock is a (possibly nonexistent) loop with a "tail" of non looping
 // nodes following it.
 //
-class IntervalPartition {
+class IntervalPartition : public vector<Interval*> {
   typedef map<BasicBlock*, Interval*> IntervalMapTy;
   IntervalMapTy IntervalMap;
 
   typedef vector<Interval*> IntervalListTy;
-  IntervalListTy IntervalList;
   Interval *RootInterval;
 
-public:
-  typedef IntervalListTy::iterator iterator;
-
 public:
   // IntervalPartition ctor - Build the partition for the specified method
   IntervalPartition(Method *M);
@@ -71,11 +67,6 @@ public:
     return I != IntervalMap.end() ? I->second : 0;
   }
 
-  // Iterators to iterate over all of the intervals in the method
-  inline iterator begin() { return IntervalList.begin(); }
-  inline iterator end()   { return IntervalList.end(); }
-  inline unsigned size()  { return IntervalList.size(); }
-
 private:
   // addIntervalToPartition - Add an interval to the internal list of intervals,
   // and then add mappings from all of the basic blocks in the interval to the
index 4d668380946aa62a821527abc665ff657a51dcbf..f6a41015d0ea6823a982b7bcd7e247fc6aee60ae 100644 (file)
@@ -14,11 +14,18 @@ namespace cfg {
 
   // This library provides support for printing out Intervals.
   class Interval;
+  class IntervalPartition;
+
   void WriteToOutput(const Interval *I, ostream &o);
   inline ostream &operator <<(ostream &o, const Interval *I) {
     WriteToOutput(I, o); return o;
   }
 
+  void WriteToOutput(const IntervalPartition &IP, ostream &o);
+  inline ostream &operator <<(ostream &o, const IntervalPartition &IP) {
+    WriteToOutput(IP, o); return o;
+  }
+
   // Stuff for printing out Dominator data structures...
   class DominatorSet;
   class ImmediateDominators;