Lines Matching refs:MI
35 void processImplicitDef(MachineInstr *MI);
36 bool canTurnIntoImplicitDef(MachineInstr *MI);
65 bool ProcessImplicitDefs::canTurnIntoImplicitDef(MachineInstr *MI) {
66 if (!MI->isCopyLike() &&
67 !MI->isInsertSubreg() &&
68 !MI->isRegSequence() &&
69 !MI->isPHI())
71 for (const MachineOperand &MO : MI->operands())
77 void ProcessImplicitDefs::processImplicitDef(MachineInstr *MI) {
78 DEBUG(dbgs() << "Processing " << *MI);
79 unsigned Reg = MI->getOperand(0).getReg();
93 MI->eraseFromParent();
99 MachineBasicBlock::instr_iterator UserMI = MI->getIterator();
100 MachineBasicBlock::instr_iterator UserE = MI->getParent()->instr_end();
119 // If we found the using MI, we can erase the IMPLICIT_DEF.
122 MI->eraseFromParent();
128 for (unsigned i = MI->getNumOperands() - 1; i; --i)
129 MI->RemoveOperand(i);
130 DEBUG(dbgs() << "Keeping physreg: " << *MI);