mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-30 02:25:19 +00:00
Add a register allocation preference field; add a method to compute size of a live interval.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36216 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -81,6 +81,7 @@ namespace llvm {
|
||||
struct LiveInterval {
|
||||
typedef SmallVector<LiveRange,4> Ranges;
|
||||
unsigned reg; // the register of this interval
|
||||
unsigned preference; // preferred register to allocate for this interval
|
||||
float weight; // weight of this interval
|
||||
MachineInstr* remat; // definition if the definition rematerializable
|
||||
Ranges ranges; // the ranges in which this register is live
|
||||
@@ -94,7 +95,7 @@ namespace llvm {
|
||||
public:
|
||||
|
||||
LiveInterval(unsigned Reg, float Weight)
|
||||
: reg(Reg), weight(Weight), remat(NULL) {
|
||||
: reg(Reg), preference(0), weight(Weight), remat(NULL) {
|
||||
}
|
||||
|
||||
typedef Ranges::iterator iterator;
|
||||
@@ -256,6 +257,10 @@ namespace llvm {
|
||||
removeRange(LR.start, LR.end);
|
||||
}
|
||||
|
||||
/// getSize - Returns the sum of sizes of all the LiveRange's.
|
||||
///
|
||||
unsigned getSize() const;
|
||||
|
||||
bool operator<(const LiveInterval& other) const {
|
||||
return beginNumber() < other.beginNumber();
|
||||
}
|
||||
|
Reference in New Issue
Block a user