diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-12-03 21:47:08 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2010-12-03 21:47:08 +0000 |
commit | 25cde34ae41fab6ead1a8b556284d3004c3f5ff6 (patch) | |
tree | 9f3fe4885eed51491ea967c4005a2c153d658410 /llvm/lib/CodeGen/LiveDebugVariables.cpp | |
parent | 69974896614333b6650668173fa39cd392215980 (diff) | |
download | bcm5719-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.cpp | 12 |
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:: |