[llvm] [mlir] [mlir][EmitC] Add MathToEmitC pass for math function lowering to EmitC (PR #113799)

Marius Brehler via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 29 12:35:07 PDT 2024


================
@@ -780,6 +780,22 @@ def ConvertMathToSPIRV : Pass<"convert-math-to-spirv"> {
   let dependentDialects = ["spirv::SPIRVDialect"];
 }
 
+//===----------------------------------------------------------------------===//
+// MathToEmitC
+//===----------------------------------------------------------------------===//
+
+def ConvertMathToEmitC  : Pass<"convert-math-to-emitc", "ModuleOp"> {
+  let summary = "Convert some Math operations to EmitC Call_opaque";
+  let description = [{
+    This pass converts supported Math ops to opaque_call ops targeting libc/libm functions.
+    Unlike convert-math-to-funcs pass, this pass uses call_opaque,
+    therefore enables us to overload the same funtion with different argument types
+  }];
+  let dependentDialects = ["emitc::EmitCDialect",
+                           "math::MathDialect"
+  ];
----------------
marbre wrote:

```suggestion
  let dependentDialects = ["emitc::EmitCDialect"];
```
If I am correct you only need to add the dialect here from that you produce ops not the one you start from.

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


More information about the llvm-commits mailing list