Lines Matching refs:Reg
46 bool hasIdentical(Register Reg, MachineInstr *ArgMI) { in hasIdentical()
47 MachineInstr *MI = lookup(Reg); in hasIdentical()
60 void clearKillsForDef(Register Reg, MachineBasicBlock *MBB,
119 clearKillsForDef(Register Reg, MachineBasicBlock *MBB, in clearKillsForDef() argument
125 if (MachineInstr *KillMI = RegKills[MBB->getNumber()].lookup(Reg)) { in clearKillsForDef()
126 KillMI->clearRegisterKills(Reg, TRI); in clearKillsForDef()
131 if (MachineInstr *DefMI = RegDefs[MBB->getNumber()].lookup(Reg)) in clearKillsForDef()
136 if (!MBB->isLiveIn(Reg)) in clearKillsForDef()
137 MBB->addLiveIn(Reg); in clearKillsForDef()
141 clearKillsForDef(Reg, Pred, Pred->end(), VisitedPreds); in clearKillsForDef()
145 Register Reg = MI->getOperand(0).getReg(); in removeRedundantDef() local
147 clearKillsForDef(Reg, MI->getParent(), MI->getIterator(), VisitedPreds); in removeRedundantDef()
190 for (auto [Reg, DefMI] : RegDefs[FirstPred->getNumber()]) in processBlock()
193 [&, &Reg = Reg, &DefMI = DefMI](const MachineBasicBlock *Pred) { in processBlock()
194 return RegDefs[Pred->getNumber()].hasIdentical(Reg, DefMI); in processBlock()
196 MBBDefs[Reg] = DefMI; in processBlock()
229 Register Reg = DefI.first; in processBlock() local
230 if (MI.modifiesRegister(Reg, TRI)) { in processBlock()
231 MBBDefs.erase(Reg); in processBlock()
232 MBBKills.erase(Reg); in processBlock()
233 } else if (MI.findRegisterUseOperandIdx(Reg, TRI, true /*isKill*/) != -1) in processBlock()
235 MBBKills[Reg] = &MI; in processBlock()