summaryrefslogtreecommitdiff
path: root/lib/CodeGen/LiveDebugVariables.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2012-05-15 22:20:27 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2012-05-15 22:20:27 +0000
commit70724aaf7329b8de8e53648b2a3afcbbf46ddbb7 (patch)
tree5f55fa41cacbd9c11ba4809d1cfe9584d7517de1 /lib/CodeGen/LiveDebugVariables.cpp
parent141aea9cff95b8df8ca89fb757dc44ee37a3d8df (diff)
downloadllvm-70724aaf7329b8de8e53648b2a3afcbbf46ddbb7.tar.gz
llvm-70724aaf7329b8de8e53648b2a3afcbbf46ddbb7.tar.bz2
llvm-70724aaf7329b8de8e53648b2a3afcbbf46ddbb7.tar.xz
Handle NewReg==OldReg in renameRegister().
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
Diffstat (limited to 'lib/CodeGen/LiveDebugVariables.cpp')
-rw-r--r--lib/CodeGen/LiveDebugVariables.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/CodeGen/LiveDebugVariables.cpp b/lib/CodeGen/LiveDebugVariables.cpp
index 2187833031..5b7941f461 100644
--- a/lib/CodeGen/LiveDebugVariables.cpp
+++ b/lib/CodeGen/LiveDebugVariables.cpp
@@ -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);