Index: llvm/lib/CodeGen/RegAllocFast.cpp =================================================================== --- llvm/lib/CodeGen/RegAllocFast.cpp +++ llvm/lib/CodeGen/RegAllocFast.cpp @@ -1312,7 +1312,7 @@ if (MRI->isReserved(Reg)) continue; bool displacedAny = usePhysReg(MI, Reg); - if (!displacedAny && !MRI->isReserved(Reg)) + if (!displacedAny) MO.setIsKill(true); } } @@ -1365,12 +1365,7 @@ MachineOperand &MO = MI.getOperand(I); if (!MO.isReg() || !MO.isDef() || !MO.isEarlyClobber()) continue; - // subreg defs don't free the full register. We left the subreg number - // around as a marker in setPhysReg() to recognize this case here. - if (MO.getSubReg() != 0) { - MO.setSubReg(0); - continue; - } + assert(!MO.getSubReg() && "should be already handled in def processing"); Register Reg = MO.getReg(); if (!Reg)