Lines Matching defs:GR
32 SPIRVGlobalRegistry *GR)
33 : CallLowering(&TLI), GR(GR) {}
94 fixFunctionTypeIfPtrArgs(SPIRVGlobalRegistry *GR, const Function &F,
117 const Type *RetTy = GR->getTypeForSPIRVType(SRetTy);
120 ArgTys.push_back(const_cast<Type *>(GR->getTypeForSPIRVType(SArgTy)));
190 SPIRVGlobalRegistry *GR,
202 return GR->getOrCreateSPIRVType(OriginalArgType, MIRBuilder, ArgAccessQual);
207 SPIRVType *ElementType = GR->getOrCreateSPIRVType(
209 return GR->getOrCreateSPIRVPointerType(
224 GR->getOrCreateSPIRVType(getPointeeTypeByAttr(Arg), MIRBuilder);
225 return GR->getOrCreateSPIRVPointerType(
238 return GR->getOrCreateSPIRVType(BuiltinType, MIRBuilder, ArgAccessQual);
248 SPIRVType *ElementType = GR->getOrCreateSPIRVType(ElementTy, MIRBuilder);
249 return GR->getOrCreateSPIRVPointerType(
257 return GR->getOrCreateSPIRVType(toTypedPointer(OriginalArgType), MIRBuilder,
283 assert(GR && "Must initialize the SPIRV type registry before lowering args.");
284 GR->setCurrentFunc(MIRBuilder.getMF());
299 auto *SpirvTy = getArgSPIRVType(F, i, GR, MIRBuilder, *ST);
300 GR->assignSPIRVTypeToVReg(SpirvTy, VRegs[i][0], MIRBuilder.getMF());
377 GR->add(&F, &MIRBuilder.getMF(), FuncVReg);
381 if (Type *FRetElemTy = GR->findDeducedElementType(&F)) {
384 GR->addReturnType(&F, DerivedTy);
388 SPIRVType *RetTy = GR->getOrCreateSPIRVType(FRetTy, MIRBuilder);
389 FTy = fixFunctionTypeIfPtrArgs(GR, F, FTy, RetTy, ArgTypeVRegs);
390 SPIRVType *FuncTy = GR->getOrCreateOpTypeFunctionWithArgs(
397 .addUse(GR->getSPIRVTypeID(RetTy))
399 .addUse(GR->getSPIRVTypeID(FuncTy));
400 GR->recordFunctionDefinition(&F, &MB.getInstr()->getOperand(0));
409 .addUse(GR->getSPIRVTypeID(ArgTypeVRegs[i]));
411 GR->add(&Arg, &MIRBuilder.getMF(), VRegs[i][0]);
467 SPIRVType *SpirvRetTy = GR->getOrCreateSPIRVType(IC.RetTy, MIRBuilder);
470 SPIRVType *SPIRVTy = GR->getOrCreateSPIRVType(IC.ArgTys[i], MIRBuilder);
472 if (!GR->getSPIRVTypeForVReg(IC.ArgRegs[i]))
473 GR->assignSPIRVTypeToVReg(SPIRVTy, IC.ArgRegs[i], MF);
478 SPIRVType *SpirvFuncTy = GR->getOrCreateOpTypeFunctionWithArgs(
481 SPIRVType *IndirectFuncPtrTy = GR->getOrCreateSPIRVPointerType(
484 GR->assignSPIRVTypeToVReg(IndirectFuncPtrTy, IC.Callee, MF);
495 GR->setCurrentFunc(MF);
513 if (auto *DerivedRetTy = GR->findReturnType(CF))
536 SPIRVType *SPIRVTy = GR->getOrCreateSPIRVType(Arg.Ty, MIRBuilder);
537 if (!GR->getSPIRVTypeForVReg(Arg.Regs[0]))
538 GR->assignSPIRVTypeToVReg(SPIRVTy, Arg.Regs[0], MF);
544 ResVReg, OrigRetTy, ArgVRegs, GR))
548 if (isFunctionDecl && !GR->find(CF, &MF).isValid()) {
600 SPIRVType *RetType = GR->assignTypeToVReg(OrigRetTy, ResVReg, MIRBuilder);
605 .addUse(GR->getSPIRVTypeID(RetType))