Lines Matching refs:MRI

43   MachineRegisterInfo &MRI = MF.getRegInfo();  in addConstantsToTrack()  local
65 auto *BuildVec = MRI.getVRegDef(MI.getOperand(2).getReg()); in addConstantsToTrack()
78 MachineInstr *SrcMI = MRI.getVRegDef(MI.getOperand(2).getReg()); in addConstantsToTrack()
89 MRI.replaceRegWith(MI->getOperand(0).getReg(), Reg); in addConstantsToTrack()
98 MachineRegisterInfo &MRI = MF.getRegInfo(); in foldConstantsIntoIntrinsics() local
107 MachineInstr *ConstMI = MRI.getVRegDef(MOp.getReg()); in foldConstantsIntoIntrinsics()
112 if (MRI.use_empty(ConstMI->getOperand(0).getReg())) in foldConstantsIntoIntrinsics()
147 MachineRegisterInfo &MRI, in propagateSPIRVType() argument
173 MachineInstr *Def = Op.isReg() ? MRI.getVRegDef(Op.getReg()) : nullptr; in propagateSPIRVType()
175 SpirvTy = propagateSPIRVType(Def, GR, MRI, MIB); in propagateSPIRVType()
183 if (!MRI.getRegClassOrNull(Reg)) in propagateSPIRVType()
184 MRI.setRegClass(Reg, &SPIRV::IDRegClass); in propagateSPIRVType()
197 MachineRegisterInfo &MRI) { in insertAssignInstr() argument
198 MachineInstr *Def = MRI.getVRegDef(Reg); in insertAssignInstr()
203 Register NewReg = MRI.createGenericVirtualRegister(MRI.getType(Reg)); in insertAssignInstr()
204 if (auto *RC = MRI.getRegClassOrNull(Reg)) in insertAssignInstr()
205 MRI.setRegClass(NewReg, RC); in insertAssignInstr()
216 MRI.setRegClass(Reg, &SPIRV::ANYIDRegClass); in insertAssignInstr()
222 MachineRegisterInfo &MRI = MF.getRegInfo(); in generateAssignInstrs() local
237 MachineInstr *Def = MRI.getVRegDef(Reg); in generateAssignInstrs()
252 if (MRI.hasOneUse(Reg)) { in generateAssignInstrs()
253 MachineInstr &UseMI = *MRI.use_instr_begin(Reg); in generateAssignInstrs()
266 MachineInstr *ElemMI = MRI.getVRegDef(MI.getOperand(1).getReg()); in generateAssignInstrs()
279 insertAssignInstr(Reg, Ty, nullptr, GR, MIB, MRI); in generateAssignInstrs()
284 propagateSPIRVType(&MI, GR, MRI, MIB); in generateAssignInstrs()
298 createNewIdReg(Register ValReg, unsigned Opcode, MachineRegisterInfo &MRI, in createNewIdReg() argument
311 if (MRI.getType(ValReg).isPointer()) { in createNewIdReg()
315 } else if (MRI.getType(ValReg).isVector()) { in createNewIdReg()
320 Register IdReg = MRI.createGenericVirtualRegister(NewT); in createNewIdReg()
321 MRI.setRegClass(IdReg, DstClass); in createNewIdReg()
326 MachineRegisterInfo &MRI, SPIRVGlobalRegistry *GR) { in processInstr() argument
328 assert(MI.getNumDefs() > 0 && MRI.hasOneUse(MI.getOperand(0).getReg())); in processInstr()
330 *(MRI.use_instr_begin(MI.getOperand(0).getReg())); in processInstr()
331 auto NewReg = createNewIdReg(MI.getOperand(0).getReg(), Opc, MRI, *GR).first; in processInstr()
340 auto IdOpInfo = createNewIdReg(Op.getReg(), Opc, MRI, *GR); in processInstr()
352 MachineRegisterInfo &MRI = MF.getRegInfo(); in processInstrsWithTypeFolding() local
356 processInstr(MI, MIB, MRI, GR); in processInstrsWithTypeFolding()
367 if (!isTypeFoldingSupported(MRI.getVRegDef(SrcReg)->getOpcode())) in processInstrsWithTypeFolding()
370 if (MRI.getType(DstReg).isVector()) in processInstrsWithTypeFolding()
371 MRI.setRegClass(DstReg, &SPIRV::IDRegClass); in processInstrsWithTypeFolding()
372 MRI.setType(DstReg, LLT::scalar(32)); in processInstrsWithTypeFolding()
383 MachineRegisterInfo &MRI = MF.getRegInfo(); in processSwitches() local
423 MRI.setRegClass(Dst, &SPIRV::IDRegClass); in processSwitches()
429 assert(CC == CmpInst::ICMP_EQ && MRI.hasOneUse(Dst) && in processSwitches()
430 MRI.hasOneDef(CmpReg)); in processSwitches()
431 uint64_t Val = getIConstVal(MI.getOperand(3).getReg(), &MRI); in processSwitches()
432 MachineInstr *CBr = MRI.use_begin(Dst)->getParent(); in processSwitches()
466 uint64_t Val = getIConstVal(CReg, &MRI); in processSwitches()
467 MachineInstr *ConstInstr = getDefInstrMaybeConstant(CReg, &MRI); in processSwitches()