diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-06-05 23:57:30 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2012-06-05 23:57:30 +0000 |
commit | 0e5a60b4ebc06a4fe6bb58f0200acf130d7be685 (patch) | |
tree | 8e5b642a02bf98a805655d150272c6a37fd0fad7 /lib/CodeGen/LiveIntervalUnion.h | |
parent | 2fd0923593c4d30691a45ade1e8b0bd484896c3f (diff) | |
download | llvm-0e5a60b4ebc06a4fe6bb58f0200acf130d7be685.tar.gz llvm-0e5a60b4ebc06a4fe6bb58f0200acf130d7be685.tar.bz2 llvm-0e5a60b4ebc06a4fe6bb58f0200acf130d7be685.tar.xz |
Move LiveUnionArray into LiveIntervalUnion.h
It is useful outside RegAllocBase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158041 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/LiveIntervalUnion.h')
-rw-r--r-- | lib/CodeGen/LiveIntervalUnion.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/CodeGen/LiveIntervalUnion.h b/lib/CodeGen/LiveIntervalUnion.h index 4925abf639..cd4e690c37 100644 --- a/lib/CodeGen/LiveIntervalUnion.h +++ b/lib/CodeGen/LiveIntervalUnion.h @@ -181,6 +181,28 @@ public: Query(const Query&); // DO NOT IMPLEMENT void operator=(const Query&); // DO NOT IMPLEMENT }; + + // Array of LiveIntervalUnions. + class Array { + unsigned Size; + LiveIntervalUnion *LIUs; + public: + Array() : Size(0), LIUs(0) {} + ~Array() { clear(); } + + // Initialize the array to have Size entries. + // Reuse an existing allocation if the size matches. + void init(LiveIntervalUnion::Allocator&, unsigned Size); + + unsigned size() const { return Size; } + + void clear(); + + LiveIntervalUnion& operator[](unsigned idx) { + assert(idx < Size && "idx out of bounds"); + return LIUs[idx]; + } + }; }; } // end namespace llvm |