summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/LiveDebugVariables.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2010-12-03 21:47:08 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2010-12-03 21:47:08 +0000
commit25cde34ae41fab6ead1a8b556284d3004c3f5ff6 (patch)
tree9f3fe4885eed51491ea967c4005a2c153d658410 /llvm/lib/CodeGen/LiveDebugVariables.cpp
parent69974896614333b6650668173fa39cd392215980 (diff)
downloadbcm5719-llvm-25cde34ae41fab6ead1a8b556284d3004c3f5ff6.tar.gz
bcm5719-llvm-25cde34ae41fab6ead1a8b556284d3004c3f5ff6.zip
Also update virtRegMap when renaming virtual registers.
llvm-svn: 120841
Diffstat (limited to 'llvm/lib/CodeGen/LiveDebugVariables.cpp')
-rw-r--r--llvm/lib/CodeGen/LiveDebugVariables.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/LiveDebugVariables.cpp b/llvm/lib/CodeGen/LiveDebugVariables.cpp
index 4b428f65896..73083c77157 100644
--- a/llvm/lib/CodeGen/LiveDebugVariables.cpp
+++ b/llvm/lib/CodeGen/LiveDebugVariables.cpp
@@ -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::
OpenPOWER on IntegriCloud