aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/VirtRegRewriter.cpp
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2009-11-13 23:16:41 +0000
committerEvan Cheng <evan.cheng@apple.com>2009-11-13 23:16:41 +0000
commit1f6a3c820a997fd3c4c08dedff6706f5e045e42d (patch)
treece08ff3dbbd490f5645f8f3fef2a926edb48d2c4 /lib/CodeGen/VirtRegRewriter.cpp
parent2b1ffeea2889e83b2765eacaadd668de8b03f643 (diff)
Fix PR5411. Bug in UpdateKills. A reg def partially define its super-registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88719 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen/VirtRegRewriter.cpp')
-rw-r--r--lib/CodeGen/VirtRegRewriter.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/CodeGen/VirtRegRewriter.cpp b/lib/CodeGen/VirtRegRewriter.cpp
index e357214b8a..dcd2a75ae0 100644
--- a/lib/CodeGen/VirtRegRewriter.cpp
+++ b/lib/CodeGen/VirtRegRewriter.cpp
@@ -583,6 +583,10 @@ static void UpdateKills(MachineInstr &MI, const TargetRegisterInfo* TRI,
RegKills.reset(*SR);
KillOps[*SR] = NULL;
}
+ for (const unsigned *SR = TRI->getSuperRegisters(Reg); *SR; ++SR) {
+ RegKills.reset(*SR);
+ KillOps[*SR] = NULL;
+ }
}
}