Lines Matching defs:Def

254 // Test whether Def is safe and profitable to rematerialize.
255 static bool shouldRematerialize(const MachineInstr &Def,
257 return Def.isAsCheapAsAMove() && TII->isTriviallyReMaterializable(Def);
267 if (MachineInstr *Def = MRI.getUniqueVRegDef(Reg))
268 return Def;
270 // MRI doesn't know what the Def is. Try asking LIS.
278 // Test whether Reg, as defined at Def, has exactly one use. This is a
281 static bool hasOneNonDBGUse(unsigned Reg, MachineInstr *Def,
291 LI.getVNInfoAt(LIS.getInstructionIndex(*Def).getRegSlot());
306 // Test whether it's safe to move Def to just before Insert.
311 static bool isSafeToMove(const MachineOperand *Def, const MachineOperand *Use,
315 const MachineInstr *DefI = Def->getParent();
331 if (Def != DefI->defs().begin())
522 MachineInstr *Def, MachineBasicBlock &MBB,
526 LLVM_DEBUG(dbgs() << "Move for single use: "; Def->dump());
528 WebAssemblyDebugValueManager DefDIs(Def);
530 LIS.handleMove(*Def);
548 LI.removeSegment(LIS.getInstructionIndex(*Def).getRegSlot(),
554 LLVM_DEBUG(dbgs() << " - Replaced register: "; Def->dump());
557 imposeStackOrdering(Def);
558 return Def;
571 unsigned Reg, MachineOperand &Op, MachineInstr &Def, MachineBasicBlock &MBB,
575 LLVM_DEBUG(dbgs() << "Rematerializing cheap def: "; Def.dump());
578 WebAssemblyDebugValueManager DefDIs(&Def);
597 IsDead = !LI.liveAt(LIS.getInstructionIndex(Def).getDeadSlot());
603 SlotIndex Idx = LIS.getInstructionIndex(Def).getRegSlot();
606 LIS.RemoveMachineInstrFromMaps(Def);
618 /// Reg = INST ... // Def
625 /// DefReg = INST ... // Def (to become the new Insert)
634 unsigned Reg, MachineOperand &Op, MachineInstr *Def, MachineBasicBlock &MBB,
637 LLVM_DEBUG(dbgs() << "Move and tee for multi-use:"; Def->dump());
643 // Move Def into place.
644 WebAssemblyDebugValueManager DefDIs(Def);
646 LIS.handleMove(*Def);
649 MachineOperand &DefMO = Def->getOperand(0);
657 SlotIndex DefIdx = LIS.getInstructionIndex(*Def).getRegSlot();
659 // Tell LiveIntervals we moved the original vreg def from Def to Tee.
672 imposeStackOrdering(Def);
681 LLVM_DEBUG(dbgs() << " - Replaced register: "; Def->dump());
683 return Def;
868 MachineOperand *Def =
870 assert(Def != nullptr);
879 bool CanMove = SameBlock && isSafeToMove(Def, &Use, Insert, MFI, MRI) &&