git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187438
91177308-0d34-0410-b5e6-
96231b3b80d8
return other.getIndex() - getIndex();
}
return other.getIndex() - getIndex();
}
+ /// Return the scaled distance from this index to the given one, where all
+ /// slots on the same instruction have zero distance.
+ int getInstrDistance(SlotIndex other) const {
+ return (other.listEntry()->getIndex() - listEntry()->getIndex())
+ / Slot_Count;
+ }
+
/// isBlock - Returns true if this is a block boundary slot.
bool isBlock() const { return getSlot() == Slot_Block; }
/// isBlock - Returns true if this is a block boundary slot.
bool isBlock() const { return getSlot() == Slot_Block; }
// Allocate original local ranges in linear instruction order. Since they
// are singly defined, this produces optimal coloring in the absence of
// global interference and other constraints.
// Allocate original local ranges in linear instruction order. Since they
// are singly defined, this produces optimal coloring in the absence of
// global interference and other constraints.
- Prio = LI->beginIndex().distance(Indexes->getLastIndex());
+ Prio = LI->beginIndex().getInstrDistance(Indexes->getLastIndex());
}
else {
// Allocate global and split ranges in long->short order. Long ranges that
}
else {
// Allocate global and split ranges in long->short order. Long ranges that