diff options
author | Alkis Evlogimenos <alkis@evlogimenos.com> | 2003-12-21 05:43:40 +0000 |
---|---|---|
committer | Alkis Evlogimenos <alkis@evlogimenos.com> | 2003-12-21 05:43:40 +0000 |
commit | 169cfd01964fc03828a7f2cad5d710890fbb08d8 (patch) | |
tree | 4c90e694662b3a619eaba6670ba25739e2185077 /lib/CodeGen/LiveIntervalAnalysis.h | |
parent | 1118d0fd945eb2430dace89b7df7b1cf60f149f3 (diff) |
Add support for inactive intervals. This effectively reuses registers
for live ranges that fall into assigned registers' holes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10566 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/LiveIntervalAnalysis.h')
-rw-r--r-- | lib/CodeGen/LiveIntervalAnalysis.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/CodeGen/LiveIntervalAnalysis.h b/lib/CodeGen/LiveIntervalAnalysis.h index 1257e15771..7ef2e78ea6 100644 --- a/lib/CodeGen/LiveIntervalAnalysis.h +++ b/lib/CodeGen/LiveIntervalAnalysis.h @@ -38,12 +38,10 @@ namespace llvm { typedef std::pair<unsigned, unsigned> Range; typedef std::vector<Range> Ranges; unsigned reg; // the register of this interval + unsigned weight; // weight of this interval (number of uses) Ranges ranges; // the ranges this register is valid - Interval(unsigned r) - : reg(r) { - - } + Interval(unsigned r); unsigned start() const { assert(!ranges.empty() && "empty interval for register"); @@ -59,6 +57,10 @@ namespace llvm { return end() <= index; } + bool liveAt(unsigned index) const; + + bool overlaps(const Interval& other) const; + void addRange(unsigned start, unsigned end); private: |