Lines Matching refs:GR
42 static void addConstantsToTrack(MachineFunction &MF, SPIRVGlobalRegistry *GR) { in addConstantsToTrack() argument
56 Register Reg = GR->find(GV, &MF); in addConstantsToTrack()
58 GR->add(GV, &MF, MI.getOperand(2).getReg()); in addConstantsToTrack()
62 Register Reg = GR->find(Const, &MF); in addConstantsToTrack()
69 GR->add(ConstVec->getElementAsConstant(i), &MF, in addConstantsToTrack()
72 GR->add(Const, &MF, MI.getOperand(2).getReg()); in addConstantsToTrack()
121 static void insertBitcasts(MachineFunction &MF, SPIRVGlobalRegistry *GR, in insertBitcasts() argument
146 static SPIRVType *propagateSPIRVType(MachineInstr *MI, SPIRVGlobalRegistry *GR, in propagateSPIRVType() argument
153 SpirvTy = GR->getSPIRVTypeForVReg(Reg); in propagateSPIRVType()
159 SpirvTy = GR->getOrCreateSPIRVType(Ty, MIB); in propagateSPIRVType()
165 SpirvTy = GR->getOrCreateSPIRVType(Ty, MIB); in propagateSPIRVType()
175 SpirvTy = propagateSPIRVType(Def, GR, MRI, MIB); in propagateSPIRVType()
182 GR->assignSPIRVTypeToVReg(SpirvTy, Reg, MIB.getMF()); in propagateSPIRVType()
195 SPIRVGlobalRegistry *GR, in insertAssignInstr() argument
206 SpirvTy = SpirvTy ? SpirvTy : GR->getOrCreateSPIRVType(Ty, MIB); in insertAssignInstr()
207 GR->assignSPIRVTypeToVReg(SpirvTy, Reg, MIB.getMF()); in insertAssignInstr()
210 GR->assignSPIRVTypeToVReg(SpirvTy, NewReg, MIB.getMF()); in insertAssignInstr()
214 .addUse(GR->getSPIRVTypeID(SpirvTy)); in insertAssignInstr()
220 static void generateAssignInstrs(MachineFunction &MF, SPIRVGlobalRegistry *GR, in generateAssignInstrs() argument
241 insertAssignInstr(Reg, Ty, nullptr, GR, MIB, MF.getRegInfo()); in generateAssignInstrs()
279 insertAssignInstr(Reg, Ty, nullptr, GR, MIB, MRI); in generateAssignInstrs()
284 propagateSPIRVType(&MI, GR, MRI, MIB); in generateAssignInstrs()
299 const SPIRVGlobalRegistry &GR) { in createNewIdReg() argument
301 SPIRVType *SpvType = GR.getSPIRVTypeForVReg(ValReg); in createNewIdReg()
306 GR.getSPIRVTypeForVReg(SpvType->getOperand(1).getReg())->getOpcode() == in createNewIdReg()
326 MachineRegisterInfo &MRI, SPIRVGlobalRegistry *GR) { in processInstr() argument
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()
350 SPIRVGlobalRegistry *GR, in processInstrsWithTypeFolding() argument
356 processInstr(MI, MIB, MRI, GR); in processInstrsWithTypeFolding()
377 static void processSwitches(MachineFunction &MF, SPIRVGlobalRegistry *GR, in processSwitches() argument
419 if (GR->getSPIRVTypeForVReg(Dst) == nullptr) { in processSwitches()
422 SPIRVType *SpirvTy = GR->getOrCreateSPIRVType(LLVMTy, MIB); in processSwitches()
424 GR->assignSPIRVTypeToVReg(SpirvTy, Dst, MIB.getMF()); in processSwitches()
485 SPIRVGlobalRegistry *GR = ST.getSPIRVGlobalRegistry(); in runOnMachineFunction() local
486 GR->setCurrentFunc(MF); in runOnMachineFunction()
488 addConstantsToTrack(MF, GR); in runOnMachineFunction()
490 insertBitcasts(MF, GR, MIB); in runOnMachineFunction()
491 generateAssignInstrs(MF, GR, MIB); in runOnMachineFunction()
492 processInstrsWithTypeFolding(MF, GR, MIB); in runOnMachineFunction()
493 processSwitches(MF, GR, MIB); in runOnMachineFunction()