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;
201 MachineRegisterInfo &MRI) const { in getRegClass()
202 const RegisterBank &RegBank = *RBI.getRegBank(Reg, MRI, TRI); in getRegClass()
235 MachineRegisterInfo &MRI) const { in selectCopy()
237 const unsigned DstSize = RBI.getSizeInBits(DstReg, MRI, TRI); in selectCopy()
238 const RegisterBank &DstRegBank = *RBI.getRegBank(DstReg, MRI, TRI); in selectCopy()
241 const unsigned SrcSize = RBI.getSizeInBits(SrcReg, MRI, TRI); in selectCopy()
242 const RegisterBank &SrcRegBank = *RBI.getRegBank(SrcReg, MRI, TRI); in selectCopy()
251 getRegClass(MRI.getType(SrcReg), SrcRegBank); in selectCopy()
256 Register ExtSrc = MRI.createVirtualRegister(DstRC); in selectCopy()
277 DstSize <= RBI.getSizeInBits(SrcReg, MRI, TRI))) && in selectCopy()
281 getRegClass(MRI.getType(DstReg), DstRegBank); in selectCopy()
299 const TargetRegisterClass *OldRC = MRI.getRegClassOrNull(DstReg); in selectCopy()
301 if (!RBI.constrainGenericRegister(DstReg, *DstRC, MRI)) { in selectCopy()
317 MachineRegisterInfo &MRI = MF.getRegInfo(); in select() local
327 return selectCopy(I, MRI); in select()
346 return selectLoadStoreOp(I, MRI, MF); in select()
349 return selectFrameIndexOrGep(I, MRI, MF); in select()
351 return selectGlobalValue(I, MRI, MF); in select()
353 return selectConstant(I, MRI, MF); in select()
355 return materializeFP(I, MRI, MF); in select()
358 return selectTruncOrPtrToInt(I, MRI, MF); in select()
360 return selectCopy(I, MRI); in select()
362 return selectZext(I, MRI, MF); in select()
364 return selectAnyext(I, MRI, MF); in select()
366 return selectCmp(I, MRI, MF); in select()
368 return selectFCmp(I, MRI, MF); in select()
370 return selectUadde(I, MRI, MF); in select()
372 return selectUnmergeValues(I, MRI, MF); in select()
375 return selectMergeValues(I, MRI, MF); in select()
377 return selectExtract(I, MRI, MF); in select()
379 return selectInsert(I, MRI, MF); in select()
381 return selectCondBranch(I, MRI, MF); in select()
384 return selectImplicitDefOrPHI(I, MRI); in select()
389 return selectDivRem(I, MRI, MF); in select()
391 return selectIntrinsicWSideEffects(I, MRI, MF); in select()
477 const MachineRegisterInfo &MRI, in X86SelectAddress() argument
480 assert(MRI.getType(I.getOperand(0).getReg()).isPointer() && in X86SelectAddress()
484 if (auto COff = getIConstantVRegSExtVal(I.getOperand(2).getReg(), MRI)) { in X86SelectAddress()
503 MachineRegisterInfo &MRI, in selectLoadStoreOp() argument
511 LLT Ty = MRI.getType(DefReg); in selectLoadStoreOp()
512 const RegisterBank &RB = *RBI.getRegBank(DefReg, MRI, TRI); in selectLoadStoreOp()
537 X86SelectAddress(*MRI.getVRegDef(I.getOperand(1).getReg()), MRI, AM); in selectLoadStoreOp()
563 MachineRegisterInfo &MRI, in selectFrameIndexOrGep() argument
571 LLT Ty = MRI.getType(DefReg); in selectFrameIndexOrGep()
591 MachineRegisterInfo &MRI, in selectGlobalValue() argument
624 LLT Ty = MRI.getType(DefReg); in selectGlobalValue()
637 MachineRegisterInfo &MRI, in selectConstant() argument
643 LLT Ty = MRI.getType(DefReg); in selectConstant()
645 if (RBI.getRegBank(DefReg, MRI, TRI)->getID() != X86::GPRRegBankID) in selectConstant()
694 MachineInstr &I, MachineRegisterInfo &MRI, const unsigned DstReg, in selectTurnIntoCOPY() argument
698 if (!RBI.constrainGenericRegister(SrcReg, *SrcRC, MRI) || in selectTurnIntoCOPY()
699 !RBI.constrainGenericRegister(DstReg, *DstRC, MRI)) { in selectTurnIntoCOPY()
709 MachineRegisterInfo &MRI, in selectTruncOrPtrToInt() argument
718 const LLT DstTy = MRI.getType(DstReg); in selectTruncOrPtrToInt()
719 const LLT SrcTy = MRI.getType(SrcReg); in selectTruncOrPtrToInt()
721 const RegisterBank &DstRB = *RBI.getRegBank(DstReg, MRI, TRI); in selectTruncOrPtrToInt()
722 const RegisterBank &SrcRB = *RBI.getRegBank(SrcReg, MRI, TRI); in selectTruncOrPtrToInt()
740 return selectTurnIntoCOPY(I, MRI, DstReg, DstRC, SrcReg, SrcRC); in selectTruncOrPtrToInt()
761 if (!RBI.constrainGenericRegister(SrcReg, *SrcRC, MRI) || in selectTruncOrPtrToInt()
762 !RBI.constrainGenericRegister(DstReg, *DstRC, MRI)) { in selectTruncOrPtrToInt()
775 MachineRegisterInfo &MRI, in selectZext() argument
782 const LLT DstTy = MRI.getType(DstReg); in selectZext()
783 const LLT SrcTy = MRI.getType(SrcReg); in selectZext()
816 MRI.createVirtualRegister(getRegClass(DstTy, DstReg, MRI)); in selectZext()
820 DefReg = MRI.createVirtualRegister(getRegClass(DstTy, DstReg, MRI)); in selectZext()
840 MachineRegisterInfo &MRI, in selectAnyext() argument
847 const LLT DstTy = MRI.getType(DstReg); in selectAnyext()
848 const LLT SrcTy = MRI.getType(SrcReg); in selectAnyext()
850 const RegisterBank &DstRB = *RBI.getRegBank(DstReg, MRI, TRI); in selectAnyext()
851 const RegisterBank &SrcRB = *RBI.getRegBank(SrcReg, MRI, TRI); in selectAnyext()
866 return selectTurnIntoCOPY(I, MRI, SrcReg, SrcRC, DstReg, DstRC); in selectAnyext()
871 if (!RBI.constrainGenericRegister(SrcReg, *SrcRC, MRI) || in selectAnyext()
872 !RBI.constrainGenericRegister(DstReg, *DstRC, MRI)) { in selectAnyext()
895 MachineRegisterInfo &MRI, in selectCmp() argument
911 LLT Ty = MRI.getType(LHS); in selectCmp()
946 MachineRegisterInfo &MRI, in selectFCmp() argument
973 LLT Ty = MRI.getType(LhsReg); in selectFCmp()
988 *getRegClass(LLT::scalar(8), *RBI.getRegBank(ResultReg, MRI, TRI)), MRI); in selectFCmp()
995 Register FlagReg1 = MRI.createVirtualRegister(&X86::GR8RegClass); in selectFCmp()
996 Register FlagReg2 = MRI.createVirtualRegister(&X86::GR8RegClass); in selectFCmp()
1037 MachineRegisterInfo &MRI, in selectUadde() argument
1047 const LLT DstTy = MRI.getType(DstReg); in selectUadde()
1053 MachineInstr *Def = MRI.getVRegDef(CarryInReg); in selectUadde()
1056 Def = MRI.getVRegDef(CarryInReg); in selectUadde()
1066 if (!RBI.constrainGenericRegister(CarryInReg, X86::GR32RegClass, MRI)) in selectUadde()
1070 } else if (auto val = getIConstantVRegVal(CarryInReg, MRI)) { in selectUadde()
1088 !RBI.constrainGenericRegister(CarryOutReg, X86::GR32RegClass, MRI)) in selectUadde()
1096 MachineRegisterInfo &MRI, in selectExtract() argument
1105 const LLT DstTy = MRI.getType(DstReg); in selectExtract()
1106 const LLT SrcTy = MRI.getType(SrcReg); in selectExtract()
1117 if (!emitExtractSubreg(DstReg, SrcReg, I, MRI, MF)) in selectExtract()
1154 MachineRegisterInfo &MRI, in emitExtractSubreg() argument
1156 const LLT DstTy = MRI.getType(DstReg); in emitExtractSubreg()
1157 const LLT SrcTy = MRI.getType(SrcReg); in emitExtractSubreg()
1173 const TargetRegisterClass *DstRC = getRegClass(DstTy, DstReg, MRI); in emitExtractSubreg()
1174 const TargetRegisterClass *SrcRC = getRegClass(SrcTy, SrcReg, MRI); in emitExtractSubreg()
1178 if (!RBI.constrainGenericRegister(SrcReg, *SrcRC, MRI) || in emitExtractSubreg()
1179 !RBI.constrainGenericRegister(DstReg, *DstRC, MRI)) { in emitExtractSubreg()
1192 MachineRegisterInfo &MRI, in emitInsertSubreg() argument
1194 const LLT DstTy = MRI.getType(DstReg); in emitInsertSubreg()
1195 const LLT SrcTy = MRI.getType(SrcReg); in emitInsertSubreg()
1212 const TargetRegisterClass *SrcRC = getRegClass(SrcTy, SrcReg, MRI); in emitInsertSubreg()
1213 const TargetRegisterClass *DstRC = getRegClass(DstTy, DstReg, MRI); in emitInsertSubreg()
1215 if (!RBI.constrainGenericRegister(SrcReg, *SrcRC, MRI) || in emitInsertSubreg()
1216 !RBI.constrainGenericRegister(DstReg, *DstRC, MRI)) { in emitInsertSubreg()
1229 MachineRegisterInfo &MRI, in selectInsert() argument
1238 const LLT DstTy = MRI.getType(DstReg); in selectInsert()
1239 const LLT InsertRegTy = MRI.getType(InsertReg); in selectInsert()
1248 if (Index == 0 && MRI.getVRegDef(SrcReg)->isImplicitDef()) { in selectInsert()
1250 if (!emitInsertSubreg(DstReg, InsertReg, I, MRI, MF)) in selectInsert()
1287 MachineInstr &I, MachineRegisterInfo &MRI, MachineFunction &MF) { in selectUnmergeValues() argument
1294 unsigned DefSize = MRI.getType(I.getOperand(0).getReg()).getSizeInBits(); in selectUnmergeValues()
1312 MachineInstr &I, MachineRegisterInfo &MRI, MachineFunction &MF) { in selectMergeValues() argument
1321 const LLT DstTy = MRI.getType(DstReg); in selectMergeValues()
1322 const LLT SrcTy = MRI.getType(SrcReg0); in selectMergeValues()
1325 const RegisterBank &RegBank = *RBI.getRegBank(DstReg, MRI, TRI); in selectMergeValues()
1328 Register DefReg = MRI.createGenericVirtualRegister(DstTy); in selectMergeValues()
1329 MRI.setRegBank(DefReg, RegBank); in selectMergeValues()
1330 if (!emitInsertSubreg(DefReg, I.getOperand(1).getReg(), I, MRI, MF)) in selectMergeValues()
1334 Register Tmp = MRI.createGenericVirtualRegister(DstTy); in selectMergeValues()
1335 MRI.setRegBank(Tmp, RegBank); in selectMergeValues()
1361 MachineRegisterInfo &MRI, in selectCondBranch() argument
1382 MachineRegisterInfo &MRI, in materializeFP() argument
1393 const LLT DstTy = MRI.getType(DstReg); in materializeFP()
1394 const RegisterBank &RegBank = *RBI.getRegBank(DstReg, MRI, TRI); in materializeFP()
1411 Register AddrReg = MRI.createVirtualRegister(&X86::GR64RegClass); in materializeFP()
1449 MachineInstr &I, MachineRegisterInfo &MRI) const { in selectImplicitDefOrPHI()
1456 if (!MRI.getRegClassOrNull(DstReg)) { in selectImplicitDefOrPHI()
1457 const LLT DstTy = MRI.getType(DstReg); in selectImplicitDefOrPHI()
1458 const TargetRegisterClass *RC = getRegClass(DstTy, DstReg, MRI); in selectImplicitDefOrPHI()
1460 if (!RBI.constrainGenericRegister(DstReg, *RC, MRI)) { in selectImplicitDefOrPHI()
1476 MachineRegisterInfo &MRI, in selectDivRem() argument
1489 const LLT RegTy = MRI.getType(DstReg); in selectDivRem()
1490 assert(RegTy == MRI.getType(Op1Reg) && RegTy == MRI.getType(Op2Reg) && in selectDivRem()
1493 const RegisterBank *RegRB = RBI.getRegBank(DstReg, MRI, TRI); in selectDivRem()
1592 if (!RBI.constrainGenericRegister(Op1Reg, *RegRC, MRI) || in selectDivRem()
1593 !RBI.constrainGenericRegister(Op2Reg, *RegRC, MRI) || in selectDivRem()
1594 !RBI.constrainGenericRegister(DstReg, *RegRC, MRI)) { in selectDivRem()
1610 Register Zero32 = MRI.createVirtualRegister(&X86::GR32RegClass); in selectDivRem()
1648 Register SourceSuperReg = MRI.createVirtualRegister(&X86::GR16RegClass); in selectDivRem()
1649 Register ResultSuperReg = MRI.createVirtualRegister(&X86::GR16RegClass); in selectDivRem()
1676 MachineInstr &I, MachineRegisterInfo &MRI, MachineFunction &MF) const { in selectIntrinsicWSideEffects() argument