aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/CodeGen/RegAllocLocal.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/CodeGen/RegAllocLocal.cpp b/lib/CodeGen/RegAllocLocal.cpp
index 7f65f1b..3e1038d 100644
--- a/lib/CodeGen/RegAllocLocal.cpp
+++ b/lib/CodeGen/RegAllocLocal.cpp
@@ -592,7 +592,9 @@ void RALocal::ComputeLocalLiveness(MachineBasicBlock& MBB) {
// If this is a two address instr, then we don't mark the def
// as killing the use.
- if (last->second.first == I) {
+ if (last->second.first == I &&
+ I->getDesc().getOperandConstraint(last->second.second,
+ TOI::TIED_TO) == (signed)i) {
LastUseDef[MO.getReg()] = std::make_pair(I, i);
continue;
}