aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/LiveIntervalAnalysis.h
diff options
context:
space:
mode:
authorAlkis Evlogimenos <alkis@evlogimenos.com>2003-12-21 05:43:40 +0000
committerAlkis Evlogimenos <alkis@evlogimenos.com>2003-12-21 05:43:40 +0000
commit169cfd01964fc03828a7f2cad5d710890fbb08d8 (patch)
tree4c90e694662b3a619eaba6670ba25739e2185077 /lib/CodeGen/LiveIntervalAnalysis.h
parent1118d0fd945eb2430dace89b7df7b1cf60f149f3 (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.h10
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: