mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-14 16:33:28 +00:00
Don't look for empty live ranges in the unions.
Empty live ranges represent undef and still get allocated, but they won't appear in LiveIntervalUnions. Patch by Patrik Hägglund! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156685 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
27ba61df9f
commit
2b3fa322b8
@ -69,11 +69,14 @@ void RegAllocBase::verify() {
|
|||||||
for (LiveIntervals::iterator liItr = LIS->begin(), liEnd = LIS->end();
|
for (LiveIntervals::iterator liItr = LIS->begin(), liEnd = LIS->end();
|
||||||
liItr != liEnd; ++liItr) {
|
liItr != liEnd; ++liItr) {
|
||||||
unsigned reg = liItr->first;
|
unsigned reg = liItr->first;
|
||||||
|
LiveInterval* li = liItr->second;
|
||||||
if (TargetRegisterInfo::isPhysicalRegister(reg)) continue;
|
if (TargetRegisterInfo::isPhysicalRegister(reg)) continue;
|
||||||
if (!VRM->hasPhys(reg)) continue; // spilled?
|
if (!VRM->hasPhys(reg)) continue; // spilled?
|
||||||
|
if (li->empty()) continue; // unionVRegs will only be filled if li is
|
||||||
|
// non-empty
|
||||||
unsigned PhysReg = VRM->getPhys(reg);
|
unsigned PhysReg = VRM->getPhys(reg);
|
||||||
if (!unionVRegs[PhysReg].test(reg)) {
|
if (!unionVRegs[PhysReg].test(reg)) {
|
||||||
dbgs() << "LiveVirtReg " << reg << " not in union " <<
|
dbgs() << "LiveVirtReg " << PrintReg(reg, TRI) << " not in union " <<
|
||||||
TRI->getName(PhysReg) << "\n";
|
TRI->getName(PhysReg) << "\n";
|
||||||
llvm_unreachable("unallocated live vreg");
|
llvm_unreachable("unallocated live vreg");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user