Lines Matching defs:GR
32 SPIRVGlobalRegistry *GR)
33 : CallLowering(&TLI), GR(GR) {}
107 fixFunctionTypeIfPtrArgs(SPIRVGlobalRegistry *GR, const Function &F,
127 const Type *RetTy = GR->getTypeForSPIRVType(SRetTy);
130 ArgTys.push_back(const_cast<Type *>(GR->getTypeForSPIRVType(SArgTy)));
200 SPIRVGlobalRegistry *GR,
212 return GR->getOrCreateSPIRVType(OriginalArgType, MIRBuilder, ArgAccessQual);
217 SPIRVType *ElementType = GR->getOrCreateSPIRVType(
219 return GR->getOrCreateSPIRVPointerType(
234 GR->getOrCreateSPIRVType(getPointeeTypeByAttr(Arg), MIRBuilder);
235 return GR->getOrCreateSPIRVPointerType(
248 return GR->getOrCreateSPIRVType(BuiltinType, MIRBuilder, ArgAccessQual);
258 SPIRVType *ElementType = GR->getOrCreateSPIRVType(ElementTy, MIRBuilder);
259 return GR->getOrCreateSPIRVPointerType(
267 return GR->getOrCreateSPIRVType(toTypedPointer(OriginalArgType), MIRBuilder,
297 assert(GR && "Must initialize the SPIRV type registry before lowering args.");
298 GR->setCurrentFunc(MIRBuilder.getMF());
313 auto *SpirvTy = getArgSPIRVType(F, i, GR, MIRBuilder, *ST);
314 GR->assignSPIRVTypeToVReg(SpirvTy, VRegs[i][0], MIRBuilder.getMF());
397 GR->add(&F, &MIRBuilder.getMF(), FuncVReg);
401 if (Type *FRetElemTy = GR->findDeducedElementType(&F)) {
404 GR->addReturnType(&F, DerivedTy);
408 SPIRVType *RetTy = GR->getOrCreateSPIRVType(FRetTy, MIRBuilder);
409 FTy = fixFunctionTypeIfPtrArgs(GR, F, FTy, RetTy, ArgTypeVRegs);
410 SPIRVType *FuncTy = GR->getOrCreateOpTypeFunctionWithArgs(
417 .addUse(GR->getSPIRVTypeID(RetTy))
419 .addUse(GR->getSPIRVTypeID(FuncTy));
420 GR->recordFunctionDefinition(&F, &MB.getInstr()->getOperand(0));
421 GR->addGlobalObject(&F, &MIRBuilder.getMF(), FuncVReg);
428 MRI->setRegClass(ArgReg, GR->getRegClass(ArgTypeVRegs[i]));
429 MRI->setType(ArgReg, GR->getRegType(ArgTypeVRegs[i]));
432 .addUse(GR->getSPIRVTypeID(ArgTypeVRegs[i]));
434 GR->add(&Arg, &MIRBuilder.getMF(), ArgReg);
435 GR->addGlobalObject(&Arg, &MIRBuilder.getMF(), ArgReg);
489 SPIRVType *SpirvRetTy = GR->getOrCreateSPIRVType(IC.RetTy, MIRBuilder);
492 SPIRVType *SPIRVTy = GR->getOrCreateSPIRVType(IC.ArgTys[i], MIRBuilder);
494 if (!GR->getSPIRVTypeForVReg(IC.ArgRegs[i]))
495 GR->assignSPIRVTypeToVReg(SPIRVTy, IC.ArgRegs[i], MF);
500 SPIRVType *SpirvFuncTy = GR->getOrCreateOpTypeFunctionWithArgs(
503 SPIRVType *IndirectFuncPtrTy = GR->getOrCreateSPIRVPointerType(
506 GR->assignSPIRVTypeToVReg(IndirectFuncPtrTy, IC.Callee, MF);
517 GR->setCurrentFunc(MF);
535 if (auto *DerivedRetTy = GR->findReturnType(CF))
549 if (!GR->getSPIRVTypeForVReg(ResVReg)) {
556 if (Type *ElemTy = GR->findDeducedElementType(OrigValue))
560 setRegClassType(ResVReg, RetTy, GR, MIRBuilder);
563 ResVReg = createVirtualRegister(OrigRetTy, GR, MIRBuilder);
570 SPIRVType *SpvType = GR->getSPIRVTypeForVReg(ArgReg);
580 if (Type *ElemTy = GR->findDeducedElementType(Arg.OrigValue))
587 SpvType = GR->getOrCreateSPIRVType(ArgTy, MIRBuilder);
588 GR->assignSPIRVTypeToVReg(SpvType, ArgReg, MF);
595 MRI->setRegClass(ArgReg, SpvType ? GR->getRegClass(SpvType)
599 SpvType ? GR->getRegType(SpvType)
601 GR->getPointerSize()));
606 MIRBuilder, ResVReg, OrigRetTy, ArgVRegs, GR))
610 if (isFunctionDecl && !GR->find(CF, &MF).isValid()) {
672 SPIRVType *RetType = GR->assignTypeToVReg(OrigRetTy, ResVReg, MIRBuilder);
677 .addUse(GR->getSPIRVTypeID(RetType))