Lines Matching defs:DefI
315 const MachineInstr *DefI = Def->getParent();
317 assert(DefI->getParent() == Insert->getParent());
331 if (Def != DefI->defs().begin())
339 for (const auto &SubsequentDef : drop_begin(DefI->defs())) {
340 auto I = std::next(MachineBasicBlock::const_iterator(DefI));
353 const MachineBasicBlock *MBB = DefI->getParent();
354 auto NextI = std::next(MachineBasicBlock::const_iterator(DefI));
362 if (WebAssembly::isCatch(DefI->getOpcode()))
367 for (const MachineOperand &MO : DefI->operands()) {
397 query(*DefI, Read, Write, Effects, StackPointer);
405 // Scan through the intervening instructions between DefI and Insert.
406 MachineBasicBlock::const_iterator D(DefI), I(Insert);
854 MachineInstr *DefI = getVRegDef(Reg, Insert, MRI, LIS);
855 if (!DefI)
860 if (DefI->isInlineAsm())
865 if (WebAssembly::isArgument(DefI->getOpcode()))
869 DefI->findRegisterDefOperand(Reg, /*TRI=*/nullptr);
878 bool SameBlock = DefI->getParent() == &MBB;
881 if (CanMove && hasOneNonDBGUse(Reg, DefI, MRI, MDT, LIS)) {
882 Insert = moveForSingleUse(Reg, Use, DefI, MBB, Insert, LIS, MFI, MRI);
889 } else if (shouldRematerialize(*DefI, TII)) {
891 rematerializeCheapDef(Reg, Use, *DefI, MBB, Insert->getIterator(),
895 Insert = moveAndTeeForMultiUse(Reg, Use, DefI, MBB, Insert, LIS, MFI,