Lines Matching defs:funcOp
77 matchAndRewrite(gpu::GPUFuncOp funcOp, OpAdaptor adaptor,
223 lowerAsEntryFunction(gpu::GPUFuncOp funcOp, const TypeConverter &typeConverter,
227 auto fnType = funcOp.getFunctionType();
229 funcOp.emitError("SPIR-V lowering only supports entry functions"
234 funcOp.emitError(
245 enumerate(funcOp.getFunctionType().getInputs())) {
253 funcOp.getLoc(), funcOp.getName(),
256 for (const auto &namedAttr : funcOp->getAttrs()) {
257 if (namedAttr.getName() == funcOp.getFunctionTypeAttrName() ||
263 rewriter.inlineRegionBefore(funcOp.getBody(), newFuncOp.getBody(),
268 rewriter.eraseOp(funcOp);
284 getDefaultABIAttrs(const spirv::TargetEnv &targetEnv, gpu::GPUFuncOp funcOp,
289 for (auto argIndex : llvm::seq<unsigned>(0, funcOp.getNumArguments())) {
290 if (funcOp.getArgAttrOfType<spirv::InterfaceVarABIAttr>(
296 if (funcOp.getArgument(argIndex).getType().isIntOrIndexOrFloat())
299 spirv::getInterfaceVarABIAttr(0, argIndex, sc, funcOp.getContext()));
305 gpu::GPUFuncOp funcOp, OpAdaptor adaptor,
307 if (!gpu::GPUDialect::isKernel(funcOp))
313 getDefaultABIAttrs(typeConverter->getTargetEnv(), funcOp, argABI))) {
315 for (auto argIndex : llvm::seq<unsigned>(0, funcOp.getNumArguments())) {
317 auto abiAttr = funcOp.getArgAttrOfType<spirv::InterfaceVarABIAttr>(
320 funcOp.emitRemark(
330 auto entryPointAttr = spirv::lookupEntryPointABI(funcOp);
332 funcOp.emitRemark(
337 funcOp, *getTypeConverter(), rewriter, entryPointAttr, argABI);