[Mlir-commits] [mlir] [mlir] Add FP software implementation lowering pass: `arith-to-apfloat` (PR #166618)

Jacques Pienaar llvmlistbot at llvm.org
Mon Nov 10 00:18:05 PST 2025


================
@@ -254,3 +254,46 @@ func::deduplicateArgsOfFuncOp(RewriterBase &rewriter, func::FuncOp funcOp,
 
   return std::make_pair(*newFuncOpOrFailure, newCallOp);
 }
+
+FailureOr<func::FuncOp>
+func::lookupOrCreateFnDecl(OpBuilder &b, Operation *moduleOp, StringRef name,
+                           ArrayRef<Type> paramTypes,
+                           ArrayRef<Type> resultTypes, bool setPrivate,
+                           SymbolTableCollection *symbolTables) {
+  assert(moduleOp->hasTrait<OpTrait::SymbolTable>() &&
+         "expected SymbolTable operation");
+
+  FuncOp func;
+  if (symbolTables) {
+    func = symbolTables->lookupSymbolIn<FuncOp>(
+        moduleOp, StringAttr::get(moduleOp->getContext(), name));
+  } else {
+    func = llvm::dyn_cast_or_null<FuncOp>(
+        SymbolTable::lookupSymbolIn(moduleOp, name));
+  }
+
+  FunctionType funcT =
+      FunctionType::get(b.getContext(), paramTypes, resultTypes);
+  // Assert the signature of the found function is same as expected
+  if (func) {
+    if (funcT != func.getFunctionType()) {
+      func.emitError("redefinition of function '")
----------------
jpienaar wrote:

return func.emitError() ?

https://github.com/llvm/llvm-project/pull/166618


More information about the Mlir-commits mailing list