Lines Matching refs:MRI
66 MachineRegisterInfo *MRI; member in __anon88d2481e0111::AArch64AdvSIMDScalar
102 const MachineRegisterInfo *MRI) { in isGPR64() argument
106 return MRI->getRegClass(Reg)->hasSuperClassEq(&AArch64::GPR64RegClass); in isGPR64()
111 const MachineRegisterInfo *MRI) { in isFPR64() argument
113 return (MRI->getRegClass(Reg)->hasSuperClassEq(&AArch64::FPR64RegClass) && in isFPR64()
115 (MRI->getRegClass(Reg)->hasSuperClassEq(&AArch64::FPR128RegClass) && in isFPR64()
125 const MachineRegisterInfo *MRI, in getSrcFromCopy() argument
142 MRI) && in getSrcFromCopy()
143 isGPR64(MI->getOperand(1).getReg(), MI->getOperand(1).getSubReg(), MRI)) in getSrcFromCopy()
146 MRI) && in getSrcFromCopy()
148 MRI)) { in getSrcFromCopy()
205 if (!MRI->def_empty(OrigSrc0)) { in isProfitableToTransform()
207 MRI->def_instr_begin(OrigSrc0); in isProfitableToTransform()
208 assert(std::next(Def) == MRI->def_instr_end() && "Multiple def in SSA!"); in isProfitableToTransform()
209 Src0 = getSrcFromCopy(&*Def, MRI, SubReg0); in isProfitableToTransform()
215 if (Src0 && MRI->hasOneNonDBGUse(OrigSrc0)) in isProfitableToTransform()
218 if (!MRI->def_empty(OrigSrc1)) { in isProfitableToTransform()
220 MRI->def_instr_begin(OrigSrc1); in isProfitableToTransform()
221 assert(std::next(Def) == MRI->def_instr_end() && "Multiple def in SSA!"); in isProfitableToTransform()
222 Src1 = getSrcFromCopy(&*Def, MRI, SubReg1); in isProfitableToTransform()
227 if (Src1 && MRI->hasOneNonDBGUse(OrigSrc1)) in isProfitableToTransform()
239 Use = MRI->use_instr_nodbg_begin(Dst), in isProfitableToTransform()
240 E = MRI->use_instr_nodbg_end(); in isProfitableToTransform()
243 if (getSrcFromCopy(&*Use, MRI, SubReg) || isTransformable(&*Use)) in isProfitableToTransform()
298 if (!MRI->def_empty(OrigSrc0)) { in transformInstruction()
300 MRI->def_instr_begin(OrigSrc0); in transformInstruction()
301 assert(std::next(Def) == MRI->def_instr_end() && "Multiple def in SSA!"); in transformInstruction()
302 Src0 = getSrcFromCopy(&*Def, MRI, SubReg0); in transformInstruction()
305 if (Src0 && MRI->hasOneNonDBGUse(OrigSrc0)) { in transformInstruction()
311 if (!MRI->def_empty(OrigSrc1)) { in transformInstruction()
313 MRI->def_instr_begin(OrigSrc1); in transformInstruction()
314 assert(std::next(Def) == MRI->def_instr_end() && "Multiple def in SSA!"); in transformInstruction()
315 Src1 = getSrcFromCopy(&*Def, MRI, SubReg1); in transformInstruction()
318 if (Src1 && MRI->hasOneNonDBGUse(OrigSrc1)) { in transformInstruction()
328 Src0 = MRI->createVirtualRegister(&AArch64::FPR64RegClass); in transformInstruction()
333 Src1 = MRI->createVirtualRegister(&AArch64::FPR64RegClass); in transformInstruction()
340 unsigned Dst = MRI->createVirtualRegister(&AArch64::FPR64RegClass); in transformInstruction()
379 MRI = &mf.getRegInfo(); in runOnMachineFunction()