Also update virtRegMap when renaming virtual registers.
authorJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 3 Dec 2010 21:47:08 +0000 (21:47 +0000)
committerJakob Stoklund Olesen <stoklund@2pi.dk>
Fri, 3 Dec 2010 21:47:08 +0000 (21:47 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120841 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/LiveDebugVariables.cpp

index 4b428f65896582225d9c6c86e3befbaf930b2db6..73083c77157ef8aa05f08adfb72edcbcd3b6500c 100644 (file)
@@ -583,8 +583,18 @@ renameRegister(unsigned OldReg, unsigned NewReg, unsigned SubIdx,
 
 void LDVImpl::
 renameRegister(unsigned OldReg, unsigned NewReg, unsigned SubIdx) {
-  for (UserValue *UV = lookupVirtReg(OldReg); UV; UV = UV->getNext())
+  UserValue *UV = lookupVirtReg(OldReg);
+  if (!UV)
+    return;
+
+  if (TargetRegisterInfo::isVirtualRegister(NewReg))
+    mapVirtReg(NewReg, UV);
+  virtRegMap.erase(OldReg);
+
+  do {
     UV->renameRegister(OldReg, NewReg, SubIdx, TRI);
+    UV = UV->getNext();
+  } while (UV);
 }
 
 void LiveDebugVariables::