Lines Matching defs:DefI
317 const MachineInstr *DefI = Def->getParent();
319 assert(DefI->getParent() == Insert->getParent());
333 if (Def != DefI->defs().begin())
341 for (const auto &SubsequentDef : drop_begin(DefI->defs())) {
342 auto I = std::next(MachineBasicBlock::const_iterator(DefI));
355 const MachineBasicBlock *MBB = DefI->getParent();
356 auto NextI = std::next(MachineBasicBlock::const_iterator(DefI));
364 if (WebAssembly::isCatch(DefI->getOpcode()))
369 for (const MachineOperand &MO : DefI->operands()) {
399 query(*DefI, Read, Write, Effects, StackPointer);
407 // Scan through the intervening instructions between DefI and Insert.
408 MachineBasicBlock::const_iterator D(DefI), I(Insert);
856 MachineInstr *DefI = getVRegDef(Reg, Insert, MRI, LIS);
857 if (!DefI)
862 if (DefI->isInlineAsm())
867 if (WebAssembly::isArgument(DefI->getOpcode()))
871 DefI->findRegisterDefOperand(Reg, /*TRI=*/nullptr);
880 bool SameBlock = DefI->getParent() == &MBB;
883 if (CanMove && hasOneNonDBGUse(Reg, DefI, MRI, MDT, LIS)) {
884 Insert = moveForSingleUse(Reg, Use, DefI, MBB, Insert, LIS, MFI, MRI);
891 } else if (shouldRematerialize(*DefI, TII)) {
893 rematerializeCheapDef(Reg, Use, *DefI, MBB, Insert->getIterator(),
897 Insert = moveAndTeeForMultiUse(Reg, Use, DefI, MBB, Insert, LIS, MFI,