Lines Matching refs:MIRBuilder
35 bool SPIRVCallLowering::lowerReturn(MachineIRBuilder &MIRBuilder, in lowerReturn() argument
41 produceIndirectPtrTypes(MIRBuilder); in lowerReturn()
50 const auto &STI = MIRBuilder.getMF().getSubtarget(); in lowerReturn()
51 return MIRBuilder.buildInstr(SPIRV::OpReturnValue) in lowerReturn()
53 .constrainAllUses(MIRBuilder.getTII(), *STI.getRegisterInfo(), in lowerReturn()
56 MIRBuilder.buildInstr(SPIRV::OpReturn); in lowerReturn()
191 MachineIRBuilder &MIRBuilder, in getArgSPIRVType() argument
202 return GR->getOrCreateSPIRVType(OriginalArgType, MIRBuilder, ArgAccessQual); in getArgSPIRVType()
208 cast<TypedPointerType>(ArgType)->getElementType(), MIRBuilder); in getArgSPIRVType()
210 ElementType, MIRBuilder, in getArgSPIRVType()
224 GR->getOrCreateSPIRVType(getPointeeTypeByAttr(Arg), MIRBuilder); in getArgSPIRVType()
226 ElementType, MIRBuilder, in getArgSPIRVType()
238 return GR->getOrCreateSPIRVType(BuiltinType, MIRBuilder, ArgAccessQual); in getArgSPIRVType()
248 SPIRVType *ElementType = GR->getOrCreateSPIRVType(ElementTy, MIRBuilder); in getArgSPIRVType()
250 ElementType, MIRBuilder, in getArgSPIRVType()
257 return GR->getOrCreateSPIRVType(toTypedPointer(OriginalArgType), MIRBuilder, in getArgSPIRVType()
279 bool SPIRVCallLowering::lowerFormalArguments(MachineIRBuilder &MIRBuilder, in lowerFormalArguments() argument
284 GR->setCurrentFunc(MIRBuilder.getMF()); in lowerFormalArguments()
288 static_cast<const SPIRVSubtarget *>(&MIRBuilder.getMF().getSubtarget()); in lowerFormalArguments()
299 auto *SpirvTy = getArgSPIRVType(F, i, GR, MIRBuilder, *ST); in lowerFormalArguments()
300 GR->assignSPIRVTypeToVReg(SpirvTy, VRegs[i][0], MIRBuilder.getMF()); in lowerFormalArguments()
304 buildOpName(VRegs[i][0], Arg.getName(), MIRBuilder); in lowerFormalArguments()
308 buildOpDecorate(VRegs[i][0], MIRBuilder, in lowerFormalArguments()
314 buildOpDecorate(VRegs[i][0], MIRBuilder, SPIRV::Decoration::Alignment, in lowerFormalArguments()
320 buildOpDecorate(VRegs[i][0], MIRBuilder, in lowerFormalArguments()
326 buildOpDecorate(VRegs[i][0], MIRBuilder, in lowerFormalArguments()
332 buildOpDecorate(VRegs[i][0], MIRBuilder, in lowerFormalArguments()
338 buildOpDecorate(VRegs[i][0], MIRBuilder, in lowerFormalArguments()
346 buildOpDecorate(VRegs[i][0], MIRBuilder, Decoration, {}); in lowerFormalArguments()
366 buildOpDecorate(VRegs[i][0], MIRBuilder, Dec, DecVec); in lowerFormalArguments()
373 auto MRI = MIRBuilder.getMRI(); in lowerFormalArguments()
377 GR->add(&F, &MIRBuilder.getMF(), FuncVReg); in lowerFormalArguments()
388 SPIRVType *RetTy = GR->getOrCreateSPIRVType(FRetTy, MIRBuilder); in lowerFormalArguments()
391 FTy, RetTy, ArgTypeVRegs, MIRBuilder); in lowerFormalArguments()
395 MachineInstrBuilder MB = MIRBuilder.buildInstr(SPIRV::OpFunction) in lowerFormalArguments()
407 MIRBuilder.buildInstr(SPIRV::OpFunctionParameter) in lowerFormalArguments()
411 GR->add(&Arg, &MIRBuilder.getMF(), VRegs[i][0]); in lowerFormalArguments()
416 buildOpName(FuncVReg, F.getName(), MIRBuilder); in lowerFormalArguments()
420 const auto &STI = MIRBuilder.getMF().getSubtarget<SPIRVSubtarget>(); in lowerFormalArguments()
422 auto MIB = MIRBuilder.buildInstr(SPIRV::OpEntryPoint) in lowerFormalArguments()
436 buildOpDecorate(FuncVReg, MIRBuilder, SPIRV::Decoration::LinkageAttributes, in lowerFormalArguments()
448 buildOpDecorate(FuncVReg, MIRBuilder, in lowerFormalArguments()
463 MachineIRBuilder &MIRBuilder) const { in produceIndirectPtrTypes()
465 MachineFunction &MF = MIRBuilder.getMF(); in produceIndirectPtrTypes()
467 SPIRVType *SpirvRetTy = GR->getOrCreateSPIRVType(IC.RetTy, MIRBuilder); in produceIndirectPtrTypes()
470 SPIRVType *SPIRVTy = GR->getOrCreateSPIRVType(IC.ArgTys[i], MIRBuilder); in produceIndirectPtrTypes()
479 FTy, SpirvRetTy, SpirvArgTypes, MIRBuilder); in produceIndirectPtrTypes()
482 SpirvFuncTy, MIRBuilder, SPIRV::StorageClass::Function); in produceIndirectPtrTypes()
488 bool SPIRVCallLowering::lowerCall(MachineIRBuilder &MIRBuilder, in lowerCall() argument
494 MachineFunction &MF = MIRBuilder.getMF(); in lowerCall()
519 MachineRegisterInfo *MRI = MIRBuilder.getMRI(); in lowerCall()
536 SPIRVType *SPIRVTy = GR->getOrCreateSPIRVType(Arg.Ty, MIRBuilder); in lowerCall()
543 SPIRV::lowerBuiltin(DemangledName, instructionSet, MIRBuilder, in lowerCall()
558 if (MIRBuilder.getDataLayout().getTypeStoreSize(Arg.getType()).isZero()) in lowerCall()
599 ResVReg = MIRBuilder.getMRI()->createVirtualRegister(&SPIRV::IDRegClass); in lowerCall()
600 SPIRVType *RetType = GR->assignTypeToVReg(OrigRetTy, ResVReg, MIRBuilder); in lowerCall()
603 auto MIB = MIRBuilder.buildInstr(CallOp) in lowerCall()
614 return MIB.constrainAllUses(MIRBuilder.getTII(), *ST->getRegisterInfo(), in lowerCall()