Implement assignment correctness verification.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11609 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Alkis Evlogimenos 2004-02-18 23:15:23 +00:00
parent 52f8f56ef4
commit 779e640657

View File

@ -206,6 +206,19 @@ namespace {
std::cerr << mri_->getName(reg) << '\n';
}
}
void verifyAssignment() const {
for (Virt2PhysMap::const_iterator i = v2pMap_.begin(),
e = v2pMap_.end(); i != e; ++i)
for (Virt2PhysMap::const_iterator i2 = i; i2 != e; ++i2)
if (mri_->areAliases(i->second, i2->second)) {
const LiveIntervals::Interval
&in = li_->getInterval(i->second),
&in2 = li_->getInterval(i2->second);
assert(!in.overlaps(in2) &&
"overlapping intervals for same register!");
}
}
};
}
@ -290,6 +303,8 @@ bool RA::runOnMachineFunction(MachineFunction &fn) {
DEBUG(printVirtRegAssignment());
DEBUG(std::cerr << "finished register allocation\n");
// this is a slow operations do not uncomment
// DEBUG(verifyAssignment());
const TargetInstrInfo& tii = tm_->getInstrInfo();