Make some changes suggested by Bill and Evan.

llvm-svn: 76775
This commit is contained in:
David Greene
2009-07-22 20:08:25 +00:00
parent b3a1fdc363
commit 1e2a04ba99
3 changed files with 29 additions and 34 deletions

View File

@@ -503,23 +503,7 @@ void LiveInterval::join(LiveInterval &Other, const int *LHSValNoAssignments,
InsertPos = addRangeFrom(*I, InsertPos);
}
// If either of these intervals was spilled, the weight is the
// weight of the non-spilled interval. This can only happen with
// iterative coalescers.
if (weight == HUGE_VALF && !TargetRegisterInfo::isPhysicalRegister(reg)) {
// Remove this assert if you have an iterative coalescer
assert(0 && "Joining to spilled interval");
weight = Other.weight;
}
else if (Other.weight != HUGE_VALF) {
weight += Other.weight;
}
else {
// Remove this assert if you have an iterative coalescer
assert(0 && "Joining from spilled interval");
}
// Otherwise the weight stays the same
ComputeJoinedWeight(Other);
// Update regalloc hint if currently there isn't one.
if (TargetRegisterInfo::isVirtualRegister(reg) &&
@@ -809,6 +793,29 @@ unsigned LiveInterval::getSize() const {
return Sum;
}
/// ComputeJoinedWeight - Set the weight of a live interval Joined
/// after Other has been merged into it.
void LiveInterval::ComputeJoinedWeight(const LiveInterval &Other) {
// If either of these intervals was spilled, the weight is the
// weight of the non-spilled interval. This can only happen with
// iterative coalescers.
if (weight == HUGE_VALF &&
!TargetRegisterInfo::isPhysicalRegister(reg)) {
// Remove this assert if you have an iterative coalescer
assert(0 && "Joining to spilled interval");
weight = Other.weight;
}
else if (Other.weight != HUGE_VALF) {
weight += Other.weight;
}
else {
// Otherwise the weight stays the same
// Remove this assert if you have an iterative coalescer
assert(0 && "Joining from spilled interval");
}
}
std::ostream& llvm::operator<<(std::ostream& os, const LiveRange &LR) {
return os << '[' << LR.start << ',' << LR.end << ':' << LR.valno->id << ")";
}