Lines Matching defs:Def
256 // Test whether Def is safe and profitable to rematerialize.
257 static bool shouldRematerialize(const MachineInstr &Def,
259 return Def.isAsCheapAsAMove() && TII->isTriviallyReMaterializable(Def);
269 if (MachineInstr *Def = MRI.getUniqueVRegDef(Reg))
270 return Def;
272 // MRI doesn't know what the Def is. Try asking LIS.
280 // Test whether Reg, as defined at Def, has exactly one use. This is a
283 static bool hasOneNonDBGUse(unsigned Reg, MachineInstr *Def,
293 LI.getVNInfoAt(LIS.getInstructionIndex(*Def).getRegSlot());
308 // Test whether it's safe to move Def to just before Insert.
313 static bool isSafeToMove(const MachineOperand *Def, const MachineOperand *Use,
317 const MachineInstr *DefI = Def->getParent();
333 if (Def != DefI->defs().begin())
524 MachineInstr *Def, MachineBasicBlock &MBB,
528 LLVM_DEBUG(dbgs() << "Move for single use: "; Def->dump());
530 WebAssemblyDebugValueManager DefDIs(Def);
532 LIS.handleMove(*Def);
550 LI.removeSegment(LIS.getInstructionIndex(*Def).getRegSlot(),
556 LLVM_DEBUG(dbgs() << " - Replaced register: "; Def->dump());
559 imposeStackOrdering(Def);
560 return Def;
573 unsigned Reg, MachineOperand &Op, MachineInstr &Def, MachineBasicBlock &MBB,
577 LLVM_DEBUG(dbgs() << "Rematerializing cheap def: "; Def.dump());
580 WebAssemblyDebugValueManager DefDIs(&Def);
599 IsDead = !LI.liveAt(LIS.getInstructionIndex(Def).getDeadSlot());
605 SlotIndex Idx = LIS.getInstructionIndex(Def).getRegSlot();
608 LIS.RemoveMachineInstrFromMaps(Def);
620 /// Reg = INST ... // Def
627 /// DefReg = INST ... // Def (to become the new Insert)
636 unsigned Reg, MachineOperand &Op, MachineInstr *Def, MachineBasicBlock &MBB,
639 LLVM_DEBUG(dbgs() << "Move and tee for multi-use:"; Def->dump());
645 // Move Def into place.
646 WebAssemblyDebugValueManager DefDIs(Def);
648 LIS.handleMove(*Def);
651 MachineOperand &DefMO = Def->getOperand(0);
659 SlotIndex DefIdx = LIS.getInstructionIndex(*Def).getRegSlot();
661 // Tell LiveIntervals we moved the original vreg def from Def to Tee.
674 imposeStackOrdering(Def);
683 LLVM_DEBUG(dbgs() << " - Replaced register: "; Def->dump());
685 return Def;
870 MachineOperand *Def =
872 assert(Def != nullptr);
881 bool CanMove = SameBlock && isSafeToMove(Def, &Use, Insert, MFI, MRI) &&