Lines Matching refs:funcOp
128 func::FuncOp funcOp, in wrapForExternalCallers() argument
130 auto type = funcOp.getFunctionType(); in wrapForExternalCallers()
132 filterFuncAttributes(funcOp->getAttrs(), /*filterArgAndResAttrs=*/false, in wrapForExternalCallers()
139 prependResAttrsToArgAttrs(rewriter, attributes, funcOp.getNumArguments()); in wrapForExternalCallers()
141 loc, llvm::formatv("_mlir_ciface_{0}", funcOp.getName()).str(), in wrapForExternalCallers()
188 func::FuncOp funcOp, in wrapExternalFunction() argument
195 typeConverter.convertFunctionTypeCWrapper(funcOp.getFunctionType()); in wrapExternalFunction()
202 filterFuncAttributes(funcOp->getAttrs(), /*filterArgAndResAttrs=*/false, in wrapExternalFunction()
206 prependResAttrsToArgAttrs(builder, attributes, funcOp.getNumArguments()); in wrapExternalFunction()
209 loc, llvm::formatv("_mlir_ciface_{0}", funcOp.getName()).str(), in wrapExternalFunction()
216 FunctionType type = funcOp.getFunctionType(); in wrapExternalFunction()
287 convertFuncOpToLLVMFuncOp(func::FuncOp funcOp, in convertFuncOpToLLVMFuncOp()
291 auto varargsAttr = funcOp->getAttrOfType<BoolAttr>("func.varargs"); in convertFuncOpToLLVMFuncOp()
292 TypeConverter::SignatureConversion result(funcOp.getNumArguments()); in convertFuncOpToLLVMFuncOp()
294 funcOp.getFunctionType(), varargsAttr && varargsAttr.getValue(), in convertFuncOpToLLVMFuncOp()
302 filterFuncAttributes(funcOp->getAttrs(), /*filterArgAndResAttrs=*/true, in convertFuncOpToLLVMFuncOp()
304 if (ArrayAttr resAttrDicts = funcOp.getAllResultAttrs()) { in convertFuncOpToLLVMFuncOp()
307 (funcOp.getNumResults() == 1) in convertFuncOpToLLVMFuncOp()
314 if (ArrayAttr argAttrDicts = funcOp.getAllArgAttrs()) { in convertFuncOpToLLVMFuncOp()
317 for (unsigned i = 0, e = funcOp.getNumArguments(); i < e; ++i) { in convertFuncOpToLLVMFuncOp()
337 if (funcOp->hasAttr("llvm.linkage")) { in convertFuncOpToLLVMFuncOp()
339 funcOp->getAttr("llvm.linkage").dyn_cast<mlir::LLVM::LinkageAttr>(); in convertFuncOpToLLVMFuncOp()
341 funcOp->emitError() in convertFuncOpToLLVMFuncOp()
348 funcOp.getLoc(), funcOp.getName(), llvmType, linkage, in convertFuncOpToLLVMFuncOp()
350 rewriter.inlineRegionBefore(funcOp.getBody(), newFuncOp.getBody(), in convertFuncOpToLLVMFuncOp()
368 matchAndRewrite(func::FuncOp funcOp, OpAdaptor adaptor, in matchAndRewrite()
370 auto newFuncOp = convertFuncOpToLLVMFuncOp(funcOp, rewriter); in matchAndRewrite()
374 if (funcOp->getAttrOfType<UnitAttr>( in matchAndRewrite()
377 return funcOp->emitError("C interface for variadic functions is not " in matchAndRewrite()
381 wrapExternalFunction(rewriter, funcOp.getLoc(), *getTypeConverter(), in matchAndRewrite()
382 funcOp, newFuncOp); in matchAndRewrite()
384 wrapForExternalCallers(rewriter, funcOp.getLoc(), *getTypeConverter(), in matchAndRewrite()
385 funcOp, newFuncOp); in matchAndRewrite()
388 rewriter.eraseOp(funcOp); in matchAndRewrite()
399 matchAndRewrite(func::FuncOp funcOp, OpAdaptor adaptor, in matchAndRewrite()
410 llvm::to_vector<8>(funcOp.getFunctionType().getInputs()); in matchAndRewrite()
412 auto newFuncOp = convertFuncOpToLLVMFuncOp(funcOp, rewriter); in matchAndRewrite()
416 rewriter.eraseOp(funcOp); in matchAndRewrite()
449 Location loc = funcOp.getLoc(); in matchAndRewrite()
459 rewriter.eraseOp(funcOp); in matchAndRewrite()