diff options
author | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-02-19 19:24:17 +0000 |
---|---|---|
committer | Alkis Evlogimenos <alkis@evlogimenos.com> | 2004-02-19 19:24:17 +0000 |
commit | 3cf546037ec3a3e0c4d7e2d1701a868bf7011496 (patch) | |
tree | 766a9b9c159b674a1ee23f4313a43c3b88ca9480 /llvm/lib/CodeGen/RegAllocLinearScan.cpp | |
parent | f5c5e1f458baf1ef29aeb47cec067b08d5443e9b (diff) | |
download | bcm5719-llvm-3cf546037ec3a3e0c4d7e2d1701a868bf7011496.tar.gz bcm5719-llvm-3cf546037ec3a3e0c4d7e2d1701a868bf7011496.zip |
Fix RA::verifyAssignment()
llvm-svn: 11629
Diffstat (limited to 'llvm/lib/CodeGen/RegAllocLinearScan.cpp')
-rw-r--r-- | llvm/lib/CodeGen/RegAllocLinearScan.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/llvm/lib/CodeGen/RegAllocLinearScan.cpp b/llvm/lib/CodeGen/RegAllocLinearScan.cpp index a1d9a116de7..67adeb5e7eb 100644 --- a/llvm/lib/CodeGen/RegAllocLinearScan.cpp +++ b/llvm/lib/CodeGen/RegAllocLinearScan.cpp @@ -210,13 +210,17 @@ namespace { 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)) { + for (Virt2PhysMap::const_iterator i2 = next(i); i2 != e; ++i2) + if (MRegisterInfo::isVirtualRegister(i->second) && + (i->second == i2->second || + 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!"); + if (in.overlaps(in2)) { + std::cerr << in << " overlaps " << in2 << '\n'; + assert(0); + } } } }; |