Lines Matching refs:GR

41 static void addConstantsToTrack(MachineFunction &MF, SPIRVGlobalRegistry *GR) {  in addConstantsToTrack()  argument
55 Register Reg = GR->find(GV, &MF); in addConstantsToTrack()
57 GR->add(GV, &MF, MI.getOperand(2).getReg()); in addConstantsToTrack()
61 Register Reg = GR->find(Const, &MF); in addConstantsToTrack()
68 GR->add(ConstVec->getElementAsConstant(i), &MF, in addConstantsToTrack()
71 GR->add(Const, &MF, MI.getOperand(2).getReg()); in addConstantsToTrack()
123 static void insertBitcasts(MachineFunction &MF, SPIRVGlobalRegistry *GR, in insertBitcasts() argument
140 SPIRVType *BaseTy = GR->getOrCreateSPIRVType( in insertBitcasts()
142 SPIRVType *AssignedPtrType = GR->getOrCreateSPIRVPointerType( in insertBitcasts()
148 if (GR->getSPIRVTypeForVReg(Source) == AssignedPtrType) { in insertBitcasts()
151 GR->assignSPIRVTypeToVReg(AssignedPtrType, Def, MF); in insertBitcasts()
168 static SPIRVType *propagateSPIRVType(MachineInstr *MI, SPIRVGlobalRegistry *GR, in propagateSPIRVType() argument
175 SpirvTy = GR->getSPIRVTypeForVReg(Reg); in propagateSPIRVType()
181 SpirvTy = GR->getOrCreateSPIRVType(Ty, MIB); in propagateSPIRVType()
187 SpirvTy = GR->getOrCreateSPIRVType(Ty, MIB); in propagateSPIRVType()
197 SpirvTy = propagateSPIRVType(Def, GR, MRI, MIB); in propagateSPIRVType()
204 GR->assignSPIRVTypeToVReg(SpirvTy, Reg, MIB.getMF()); in propagateSPIRVType()
219 SPIRVGlobalRegistry *GR, MachineIRBuilder &MIB, in insertAssignInstr() argument
233 SpirvTy = SpirvTy ? SpirvTy : GR->getOrCreateSPIRVType(Ty, MIB); in insertAssignInstr()
234 GR->assignSPIRVTypeToVReg(SpirvTy, Reg, MIB.getMF()); in insertAssignInstr()
237 GR->assignSPIRVTypeToVReg(SpirvTy, NewReg, MIB.getMF()); in insertAssignInstr()
244 .addUse(GR->getSPIRVTypeID(SpirvTy)) in insertAssignInstr()
251 static void generateAssignInstrs(MachineFunction &MF, SPIRVGlobalRegistry *GR, in generateAssignInstrs() argument
268 SPIRVType *BaseTy = GR->getOrCreateSPIRVType( in generateAssignInstrs()
270 SPIRVType *AssignedPtrType = GR->getOrCreateSPIRVPointerType( in generateAssignInstrs()
275 insertAssignInstr(Reg, nullptr, AssignedPtrType, GR, MIB, in generateAssignInstrs()
285 insertAssignInstr(Reg, Ty, nullptr, GR, MIB, MF.getRegInfo()); in generateAssignInstrs()
323 insertAssignInstr(Reg, Ty, nullptr, GR, MIB, MRI); in generateAssignInstrs()
328 propagateSPIRVType(&MI, GR, MRI, MIB); in generateAssignInstrs()
343 const SPIRVGlobalRegistry &GR) { in createNewIdReg() argument
345 SPIRVType *SpvType = GR.getSPIRVTypeForVReg(ValReg); in createNewIdReg()
350 GR.getSPIRVTypeForVReg(SpvType->getOperand(1).getReg())->getOpcode() == in createNewIdReg()
370 MachineRegisterInfo &MRI, SPIRVGlobalRegistry *GR) { in processInstr() argument
375 auto NewReg = createNewIdReg(MI.getOperand(0).getReg(), Opc, MRI, *GR).first; in processInstr()
384 auto IdOpInfo = createNewIdReg(Op.getReg(), Opc, MRI, *GR); in processInstr()
394 SPIRVGlobalRegistry *GR, in processInstrsWithTypeFolding() argument
400 processInstr(MI, MIB, MRI, GR); in processInstrsWithTypeFolding()
429 static void processSwitches(MachineFunction &MF, SPIRVGlobalRegistry *GR, in processSwitches() argument
647 SPIRVGlobalRegistry *GR = ST.getSPIRVGlobalRegistry(); in runOnMachineFunction() local
648 GR->setCurrentFunc(MF); in runOnMachineFunction()
650 addConstantsToTrack(MF, GR); in runOnMachineFunction()
652 insertBitcasts(MF, GR, MIB); in runOnMachineFunction()
653 generateAssignInstrs(MF, GR, MIB); in runOnMachineFunction()
654 processSwitches(MF, GR, MIB); in runOnMachineFunction()
655 processInstrsWithTypeFolding(MF, GR, MIB); in runOnMachineFunction()