Index: lib/CodeGen/AggressiveAntiDepBreaker.cpp =================================================================== --- lib/CodeGen/AggressiveAntiDepBreaker.cpp +++ lib/CodeGen/AggressiveAntiDepBreaker.cpp @@ -369,7 +369,7 @@ // reference either system calls or the register directly. Skip it until we // can tell user specified registers from compiler-specified. if (MI.isCall() || MI.hasExtraDefRegAllocReq() || TII->isPredicated(MI) || - MI.isInlineAsm()) { + MI.isInlineAsm() || MI.isRegTiedToUseOperand(i)) { DEBUG(if (State->GetGroup(Reg) != 0) dbgs() << "->g0(alloc-req)"); State->UnionGroups(Reg, 0); } @@ -464,7 +464,7 @@ // for the register. HandleLastUse(Reg, Count, "(last-use)"); - if (Special) { + if (Special || MI.isRegTiedToDefOperand(i)) { DEBUG(if (State->GetGroup(Reg) != 0) dbgs() << "->g0(alloc-req)"); State->UnionGroups(Reg, 0); }