Handle NewReg==OldReg in renameRegister().
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 15 May 2012 22:20:27 +0000 (22:20 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Tue, 15 May 2012 22:20:27 +0000 (22:20 +0000)
This can happen when widening a virtual register to a super-register
class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156867 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/LiveDebugVariables.cpp

index 2187833031eefb26b9a56b54ff977cfb83407359..5b7941f4612025b15fb984ba637346f798d4484b 100644 (file)
@@ -721,7 +721,8 @@ renameRegister(unsigned OldReg, unsigned NewReg, unsigned SubIdx) {
 
   if (TargetRegisterInfo::isVirtualRegister(NewReg))
     mapVirtReg(NewReg, UV);
-  virtRegToEqClass.erase(OldReg);
+  if (OldReg != NewReg)
+    virtRegToEqClass.erase(OldReg);
 
   do {
     UV->renameRegister(OldReg, NewReg, SubIdx, TRI);