Lines Matching defs:funcOp

88                                  FunctionOpInterface funcOp,
90 auto argAttrs = funcOp.getAllArgAttrs();
92 if (auto resAttrs = funcOp.getAllResultAttrs())
107 .setVisibility(funcOp.getVisibility());
120 FunctionOpInterface funcOp,
122 auto type = cast<FunctionType>(funcOp.getFunctionType());
127 filterFuncAttributes(funcOp, attributes);
130 loc, llvm::formatv("_mlir_ciface_{0}", funcOp.getName()).str(),
133 propagateArgResAttrs(rewriter, !!resultStructType, funcOp, wrapperFuncOp);
180 FunctionOpInterface funcOp,
186 cast<FunctionType>(funcOp.getFunctionType()));
193 filterFuncAttributes(funcOp, attributes);
197 loc, llvm::formatv("_mlir_ciface_{0}", funcOp.getName()).str(),
200 propagateArgResAttrs(builder, !!resultStructType, funcOp, wrapperFunc);
207 FunctionType type = cast<FunctionType>(funcOp.getFunctionType());
276 ArrayRef<BlockArgument> oldBlockArgs, LLVM::LLVMFuncOp funcOp) {
278 if (funcOp.isExternal())
282 rewriter.setInsertionPointToStart(&funcOp.getFunctionBody().front());
285 llvm::zip(funcOp.getArguments(), oldBlockArgs, byValRefNonPtrAttrs)) {
303 mlir::convertFuncOpToLLVMFuncOp(FunctionOpInterface funcOp,
306 // Check the funcOp has `FunctionType`.
307 auto funcTy = dyn_cast<FunctionType>(funcOp.getFunctionType());
310 funcOp, "Only support FunctionOpInterface with FunctionType");
314 llvm::to_vector(funcOp.getArguments());
318 auto varargsAttr = funcOp->getAttrOfType<BoolAttr>(varargsAttrName);
322 TypeConverter::SignatureConversion result(funcOp.getNumArguments());
324 funcOp, varargsAttr && varargsAttr.getValue(),
325 shouldUseBarePtrCallConv(funcOp, &converter), result,
328 return rewriter.notifyMatchFailure(funcOp, "signature conversion failed");
333 if (funcOp->hasAttr(linkageAttrName)) {
335 dyn_cast<mlir::LLVM::LinkageAttr>(funcOp->getAttr(linkageAttrName));
337 funcOp->emitError() << "Contains " << linkageAttrName
340 funcOp, "Contains linkage attribute not of type LLVM::LinkageAttr");
346 filterFuncAttributes(funcOp, attributes);
348 funcOp.getLoc(), funcOp.getName(), llvmType, linkage,
352 .setVisibility(funcOp.getVisibility());
356 if (funcOp->hasAttr(readnoneAttrName)) {
357 auto attr = funcOp->getAttrOfType<UnitAttr>(readnoneAttrName);
359 funcOp->emitError() << "Contains " << readnoneAttrName
362 funcOp, "Contains readnone attribute not of type UnitAttr");
373 if (ArrayAttr resAttrDicts = funcOp.getAllResultAttrs()) {
375 if (funcOp.getNumResults() == 1)
378 if (ArrayAttr argAttrDicts = funcOp.getAllArgAttrs()) {
381 for (unsigned i = 0, e = funcOp.getNumArguments(); i < e; ++i) {
433 rewriter.inlineRegionBefore(funcOp.getFunctionBody(), newFuncOp.getBody(),
447 if (!shouldUseBarePtrCallConv(funcOp, &converter)) {
448 if (funcOp->getAttrOfType<UnitAttr>(
451 return funcOp.emitError("C interface for variadic functions is not "
455 wrapExternalFunction(rewriter, funcOp->getLoc(), converter, funcOp,
458 wrapForExternalCallers(rewriter, funcOp->getLoc(), converter, funcOp,
476 matchAndRewrite(func::FuncOp funcOp, OpAdaptor adaptor,
479 cast<FunctionOpInterface>(funcOp.getOperation()), rewriter,
482 return rewriter.notifyMatchFailure(funcOp, "Could not convert funcop");
484 rewriter.eraseOp(funcOp);
675 auto funcOp = op->getParentOfType<LLVM::LLVMFuncOp>();
677 shouldUseBarePtrCallConv(funcOp, this->getTypeConverter());