diff --git a/lib/CodeGen/RegAllocLocal.cpp b/lib/CodeGen/RegAllocLocal.cpp index 7f65f1b29ee..3e1038daa9c 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; }