Lines Matching refs:MRI
228 const MachineRegisterInfo &MRI, in GetVRegDef() argument
232 if (MachineInstr *Def = MRI.getUniqueVRegDef(Reg)) in GetVRegDef()
247 MachineRegisterInfo &MRI, MachineDominatorTree &MDT, in HasOneUse() argument
250 if (MRI.hasOneUse(Reg)) in HasOneUse()
258 for (auto I : MRI.use_nodbg_operands(Reg)) { in HasOneUse()
278 const MachineRegisterInfo &MRI) { in IsSafeToMove() argument
298 if (!MRI.isPhysRegModified(Reg)) in IsSafeToMove()
354 const MachineRegisterInfo &MRI, in OneUseDominatesOtherUses() argument
363 for (const MachineOperand &Use : MRI.use_operands(Reg)) { in OneUseDominatesOtherUses()
396 assert(MRI.hasOneUse(DefReg)); in OneUseDominatesOtherUses()
397 const MachineOperand &NewUse = *MRI.use_begin(DefReg); in OneUseDominatesOtherUses()
439 MachineRegisterInfo &MRI) { in MoveForSingleUse() argument
445 if (MRI.hasOneDef(Reg) && MRI.hasOneUse(Reg)) { in MoveForSingleUse()
452 unsigned NewReg = MRI.createVirtualRegister(MRI.getRegClass(Reg)); in MoveForSingleUse()
479 WebAssemblyFunctionInfo &MFI, MachineRegisterInfo &MRI, in RematerializeCheapDef() argument
484 unsigned NewReg = MRI.createVirtualRegister(MRI.getRegClass(Reg)); in RematerializeCheapDef()
496 bool IsDead = MRI.use_empty(Reg); in RematerializeCheapDef()
539 MachineRegisterInfo &MRI, const WebAssemblyInstrInfo *TII) { in MoveAndTeeForMultiUse() argument
547 const auto *RegClass = MRI.getRegClass(Reg); in MoveAndTeeForMultiUse()
548 unsigned TeeReg = MRI.createVirtualRegister(RegClass); in MoveAndTeeForMultiUse()
549 unsigned DefReg = MRI.createVirtualRegister(RegClass); in MoveAndTeeForMultiUse()
709 MachineRegisterInfo &MRI = MF.getRegInfo(); in runOnMachineFunction() local
754 MachineInstr *Def = GetVRegDef(Reg, Insert, MRI, LIS); in runOnMachineFunction()
778 bool CanMove = SameBlock && IsSafeToMove(Def, Insert, AA, LIS, MRI) && in runOnMachineFunction()
780 if (CanMove && HasOneUse(Reg, Def, MRI, MDT, LIS)) { in runOnMachineFunction()
781 Insert = MoveForSingleUse(Reg, Op, Def, MBB, Insert, LIS, MFI, MRI); in runOnMachineFunction()
785 LIS, MFI, MRI, TII, TRI); in runOnMachineFunction()
787 OneUseDominatesOtherUses(Reg, Op, MBB, MRI, MDT, LIS, MFI)) { in runOnMachineFunction()
789 MRI, TII); in runOnMachineFunction()