Lines Matching refs:MRI
77 bool selectLoadStoreOp(MachineInstr &I, MachineRegisterInfo &MRI,
79 bool selectFrameIndexOrGep(MachineInstr &I, MachineRegisterInfo &MRI,
81 bool selectGlobalValue(MachineInstr &I, MachineRegisterInfo &MRI,
83 bool selectConstant(MachineInstr &I, MachineRegisterInfo &MRI,
85 bool selectTruncOrPtrToInt(MachineInstr &I, MachineRegisterInfo &MRI,
87 bool selectZext(MachineInstr &I, MachineRegisterInfo &MRI,
89 bool selectAnyext(MachineInstr &I, MachineRegisterInfo &MRI,
91 bool selectCmp(MachineInstr &I, MachineRegisterInfo &MRI,
93 bool selectFCmp(MachineInstr &I, MachineRegisterInfo &MRI,
95 bool selectUadde(MachineInstr &I, MachineRegisterInfo &MRI,
97 bool selectCopy(MachineInstr &I, MachineRegisterInfo &MRI) const;
98 bool selectUnmergeValues(MachineInstr &I, MachineRegisterInfo &MRI,
100 bool selectMergeValues(MachineInstr &I, MachineRegisterInfo &MRI,
102 bool selectInsert(MachineInstr &I, MachineRegisterInfo &MRI,
104 bool selectExtract(MachineInstr &I, MachineRegisterInfo &MRI,
106 bool selectCondBranch(MachineInstr &I, MachineRegisterInfo &MRI,
108 bool selectTurnIntoCOPY(MachineInstr &I, MachineRegisterInfo &MRI,
113 bool materializeFP(MachineInstr &I, MachineRegisterInfo &MRI,
115 bool selectImplicitDefOrPHI(MachineInstr &I, MachineRegisterInfo &MRI) const;
116 bool selectDivRem(MachineInstr &I, MachineRegisterInfo &MRI,
118 bool selectIntrinsicWSideEffects(MachineInstr &I, MachineRegisterInfo &MRI,
123 MachineRegisterInfo &MRI, MachineFunction &MF) const;
126 MachineRegisterInfo &MRI, MachineFunction &MF) const;
130 MachineRegisterInfo &MRI) const;
199 MachineRegisterInfo &MRI) const { in getRegClass()
200 const RegisterBank &RegBank = *RBI.getRegBank(Reg, MRI, TRI); in getRegClass()
233 MachineRegisterInfo &MRI) const { in selectCopy()
235 const unsigned DstSize = RBI.getSizeInBits(DstReg, MRI, TRI); in selectCopy()
236 const RegisterBank &DstRegBank = *RBI.getRegBank(DstReg, MRI, TRI); in selectCopy()
239 const unsigned SrcSize = RBI.getSizeInBits(SrcReg, MRI, TRI); in selectCopy()
240 const RegisterBank &SrcRegBank = *RBI.getRegBank(SrcReg, MRI, TRI); in selectCopy()
249 getRegClass(MRI.getType(SrcReg), SrcRegBank); in selectCopy()
254 Register ExtSrc = MRI.createVirtualRegister(DstRC); in selectCopy()
275 DstSize <= RBI.getSizeInBits(SrcReg, MRI, TRI))) && in selectCopy()
279 getRegClass(MRI.getType(DstReg), DstRegBank); in selectCopy()
297 const TargetRegisterClass *OldRC = MRI.getRegClassOrNull(DstReg); in selectCopy()
299 if (!RBI.constrainGenericRegister(DstReg, *DstRC, MRI)) { in selectCopy()
315 MachineRegisterInfo &MRI = MF.getRegInfo(); in select() local
325 return selectCopy(I, MRI); in select()
344 return selectLoadStoreOp(I, MRI, MF); in select()
347 return selectFrameIndexOrGep(I, MRI, MF); in select()
349 return selectGlobalValue(I, MRI, MF); in select()
351 return selectConstant(I, MRI, MF); in select()
353 return materializeFP(I, MRI, MF); in select()
356 return selectTruncOrPtrToInt(I, MRI, MF); in select()
358 return selectCopy(I, MRI); in select()
360 return selectZext(I, MRI, MF); in select()
362 return selectAnyext(I, MRI, MF); in select()
364 return selectCmp(I, MRI, MF); in select()
366 return selectFCmp(I, MRI, MF); in select()
368 return selectUadde(I, MRI, MF); in select()
370 return selectUnmergeValues(I, MRI, MF); in select()
373 return selectMergeValues(I, MRI, MF); in select()
375 return selectExtract(I, MRI, MF); in select()
377 return selectInsert(I, MRI, MF); in select()
379 return selectCondBranch(I, MRI, MF); in select()
382 return selectImplicitDefOrPHI(I, MRI); in select()
387 return selectDivRem(I, MRI, MF); in select()
389 return selectIntrinsicWSideEffects(I, MRI, MF); in select()
475 const MachineRegisterInfo &MRI, in X86SelectAddress() argument
478 assert(MRI.getType(I.getOperand(0).getReg()).isPointer() && in X86SelectAddress()
482 if (auto COff = getConstantVRegSExtVal(I.getOperand(2).getReg(), MRI)) { in X86SelectAddress()
501 MachineRegisterInfo &MRI, in selectLoadStoreOp() argument
509 LLT Ty = MRI.getType(DefReg); in selectLoadStoreOp()
510 const RegisterBank &RB = *RBI.getRegBank(DefReg, MRI, TRI); in selectLoadStoreOp()
535 X86SelectAddress(*MRI.getVRegDef(I.getOperand(1).getReg()), MRI, AM); in selectLoadStoreOp()
561 MachineRegisterInfo &MRI, in selectFrameIndexOrGep() argument
569 LLT Ty = MRI.getType(DefReg); in selectFrameIndexOrGep()
589 MachineRegisterInfo &MRI, in selectGlobalValue() argument
622 LLT Ty = MRI.getType(DefReg); in selectGlobalValue()
635 MachineRegisterInfo &MRI, in selectConstant() argument
641 LLT Ty = MRI.getType(DefReg); in selectConstant()
643 if (RBI.getRegBank(DefReg, MRI, TRI)->getID() != X86::GPRRegBankID) in selectConstant()
692 MachineInstr &I, MachineRegisterInfo &MRI, const unsigned DstReg, in selectTurnIntoCOPY() argument
696 if (!RBI.constrainGenericRegister(SrcReg, *SrcRC, MRI) || in selectTurnIntoCOPY()
697 !RBI.constrainGenericRegister(DstReg, *DstRC, MRI)) { in selectTurnIntoCOPY()
707 MachineRegisterInfo &MRI, in selectTruncOrPtrToInt() argument
716 const LLT DstTy = MRI.getType(DstReg); in selectTruncOrPtrToInt()
717 const LLT SrcTy = MRI.getType(SrcReg); in selectTruncOrPtrToInt()
719 const RegisterBank &DstRB = *RBI.getRegBank(DstReg, MRI, TRI); in selectTruncOrPtrToInt()
720 const RegisterBank &SrcRB = *RBI.getRegBank(SrcReg, MRI, TRI); in selectTruncOrPtrToInt()
738 return selectTurnIntoCOPY(I, MRI, DstReg, DstRC, SrcReg, SrcRC); in selectTruncOrPtrToInt()
759 if (!RBI.constrainGenericRegister(SrcReg, *SrcRC, MRI) || in selectTruncOrPtrToInt()
760 !RBI.constrainGenericRegister(DstReg, *DstRC, MRI)) { in selectTruncOrPtrToInt()
773 MachineRegisterInfo &MRI, in selectZext() argument
780 const LLT DstTy = MRI.getType(DstReg); in selectZext()
781 const LLT SrcTy = MRI.getType(SrcReg); in selectZext()
814 MRI.createVirtualRegister(getRegClass(DstTy, DstReg, MRI)); in selectZext()
818 DefReg = MRI.createVirtualRegister(getRegClass(DstTy, DstReg, MRI)); in selectZext()
838 MachineRegisterInfo &MRI, in selectAnyext() argument
845 const LLT DstTy = MRI.getType(DstReg); in selectAnyext()
846 const LLT SrcTy = MRI.getType(SrcReg); in selectAnyext()
848 const RegisterBank &DstRB = *RBI.getRegBank(DstReg, MRI, TRI); in selectAnyext()
849 const RegisterBank &SrcRB = *RBI.getRegBank(SrcReg, MRI, TRI); in selectAnyext()
864 return selectTurnIntoCOPY(I, MRI, SrcReg, SrcRC, DstReg, DstRC); in selectAnyext()
869 if (!RBI.constrainGenericRegister(SrcReg, *SrcRC, MRI) || in selectAnyext()
870 !RBI.constrainGenericRegister(DstReg, *DstRC, MRI)) { in selectAnyext()
893 MachineRegisterInfo &MRI, in selectCmp() argument
909 LLT Ty = MRI.getType(LHS); in selectCmp()
944 MachineRegisterInfo &MRI, in selectFCmp() argument
971 LLT Ty = MRI.getType(LhsReg); in selectFCmp()
986 *getRegClass(LLT::scalar(8), *RBI.getRegBank(ResultReg, MRI, TRI)), MRI); in selectFCmp()
993 Register FlagReg1 = MRI.createVirtualRegister(&X86::GR8RegClass); in selectFCmp()
994 Register FlagReg2 = MRI.createVirtualRegister(&X86::GR8RegClass); in selectFCmp()
1035 MachineRegisterInfo &MRI, in selectUadde() argument
1045 const LLT DstTy = MRI.getType(DstReg); in selectUadde()
1051 MachineInstr *Def = MRI.getVRegDef(CarryInReg); in selectUadde()
1054 Def = MRI.getVRegDef(CarryInReg); in selectUadde()
1064 if (!RBI.constrainGenericRegister(CarryInReg, X86::GR32RegClass, MRI)) in selectUadde()
1068 } else if (auto val = getConstantVRegVal(CarryInReg, MRI)) { in selectUadde()
1086 !RBI.constrainGenericRegister(CarryOutReg, X86::GR32RegClass, MRI)) in selectUadde()
1094 MachineRegisterInfo &MRI, in selectExtract() argument
1103 const LLT DstTy = MRI.getType(DstReg); in selectExtract()
1104 const LLT SrcTy = MRI.getType(SrcReg); in selectExtract()
1115 if (!emitExtractSubreg(DstReg, SrcReg, I, MRI, MF)) in selectExtract()
1152 MachineRegisterInfo &MRI, in emitExtractSubreg() argument
1154 const LLT DstTy = MRI.getType(DstReg); in emitExtractSubreg()
1155 const LLT SrcTy = MRI.getType(SrcReg); in emitExtractSubreg()
1171 const TargetRegisterClass *DstRC = getRegClass(DstTy, DstReg, MRI); in emitExtractSubreg()
1172 const TargetRegisterClass *SrcRC = getRegClass(SrcTy, SrcReg, MRI); in emitExtractSubreg()
1176 if (!RBI.constrainGenericRegister(SrcReg, *SrcRC, MRI) || in emitExtractSubreg()
1177 !RBI.constrainGenericRegister(DstReg, *DstRC, MRI)) { in emitExtractSubreg()
1190 MachineRegisterInfo &MRI, in emitInsertSubreg() argument
1192 const LLT DstTy = MRI.getType(DstReg); in emitInsertSubreg()
1193 const LLT SrcTy = MRI.getType(SrcReg); in emitInsertSubreg()
1210 const TargetRegisterClass *SrcRC = getRegClass(SrcTy, SrcReg, MRI); in emitInsertSubreg()
1211 const TargetRegisterClass *DstRC = getRegClass(DstTy, DstReg, MRI); in emitInsertSubreg()
1213 if (!RBI.constrainGenericRegister(SrcReg, *SrcRC, MRI) || in emitInsertSubreg()
1214 !RBI.constrainGenericRegister(DstReg, *DstRC, MRI)) { in emitInsertSubreg()
1227 MachineRegisterInfo &MRI, in selectInsert() argument
1236 const LLT DstTy = MRI.getType(DstReg); in selectInsert()
1237 const LLT InsertRegTy = MRI.getType(InsertReg); in selectInsert()
1246 if (Index == 0 && MRI.getVRegDef(SrcReg)->isImplicitDef()) { in selectInsert()
1248 if (!emitInsertSubreg(DstReg, InsertReg, I, MRI, MF)) in selectInsert()
1285 MachineInstr &I, MachineRegisterInfo &MRI, MachineFunction &MF) { in selectUnmergeValues() argument
1292 unsigned DefSize = MRI.getType(I.getOperand(0).getReg()).getSizeInBits(); in selectUnmergeValues()
1310 MachineInstr &I, MachineRegisterInfo &MRI, MachineFunction &MF) { in selectMergeValues() argument
1319 const LLT DstTy = MRI.getType(DstReg); in selectMergeValues()
1320 const LLT SrcTy = MRI.getType(SrcReg0); in selectMergeValues()
1323 const RegisterBank &RegBank = *RBI.getRegBank(DstReg, MRI, TRI); in selectMergeValues()
1326 Register DefReg = MRI.createGenericVirtualRegister(DstTy); in selectMergeValues()
1327 MRI.setRegBank(DefReg, RegBank); in selectMergeValues()
1328 if (!emitInsertSubreg(DefReg, I.getOperand(1).getReg(), I, MRI, MF)) in selectMergeValues()
1332 Register Tmp = MRI.createGenericVirtualRegister(DstTy); in selectMergeValues()
1333 MRI.setRegBank(Tmp, RegBank); in selectMergeValues()
1359 MachineRegisterInfo &MRI, in selectCondBranch() argument
1380 MachineRegisterInfo &MRI, in materializeFP() argument
1391 const LLT DstTy = MRI.getType(DstReg); in materializeFP()
1392 const RegisterBank &RegBank = *RBI.getRegBank(DstReg, MRI, TRI); in materializeFP()
1409 Register AddrReg = MRI.createVirtualRegister(&X86::GR64RegClass); in materializeFP()
1447 MachineInstr &I, MachineRegisterInfo &MRI) const { in selectImplicitDefOrPHI()
1454 if (!MRI.getRegClassOrNull(DstReg)) { in selectImplicitDefOrPHI()
1455 const LLT DstTy = MRI.getType(DstReg); in selectImplicitDefOrPHI()
1456 const TargetRegisterClass *RC = getRegClass(DstTy, DstReg, MRI); in selectImplicitDefOrPHI()
1458 if (!RBI.constrainGenericRegister(DstReg, *RC, MRI)) { in selectImplicitDefOrPHI()
1474 MachineRegisterInfo &MRI, in selectDivRem() argument
1487 const LLT RegTy = MRI.getType(DstReg); in selectDivRem()
1488 assert(RegTy == MRI.getType(Op1Reg) && RegTy == MRI.getType(Op2Reg) && in selectDivRem()
1491 const RegisterBank *RegRB = RBI.getRegBank(DstReg, MRI, TRI); in selectDivRem()
1590 if (!RBI.constrainGenericRegister(Op1Reg, *RegRC, MRI) || in selectDivRem()
1591 !RBI.constrainGenericRegister(Op2Reg, *RegRC, MRI) || in selectDivRem()
1592 !RBI.constrainGenericRegister(DstReg, *RegRC, MRI)) { in selectDivRem()
1608 Register Zero32 = MRI.createVirtualRegister(&X86::GR32RegClass); in selectDivRem()
1646 Register SourceSuperReg = MRI.createVirtualRegister(&X86::GR16RegClass); in selectDivRem()
1647 Register ResultSuperReg = MRI.createVirtualRegister(&X86::GR16RegClass); in selectDivRem()
1674 MachineInstr &I, MachineRegisterInfo &MRI, MachineFunction &MF) const { in selectIntrinsicWSideEffects() argument