[Mlir-commits] [mlir] [mlir][emitc]: use converted result types when func.call has one result (PR #205191)

Jeremy Kun llvmlistbot at llvm.org
Mon Jun 22 13:53:27 PDT 2026


https://github.com/j2kun updated https://github.com/llvm/llvm-project/pull/205191

>From 483487e2ca27095333dff5273f43bd791d786c82 Mon Sep 17 00:00:00 2001
From: Jeremy Kun <jkun at google.com>
Date: Mon, 22 Jun 2026 13:50:02 -0700
Subject: [PATCH 1/2] [mlir][emitc]: use converted result types when func.call
 has one result

---
 mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp | 2 +-
 mlir/test/Conversion/ConvertToEmitC/func.mlir   | 9 +++++++++
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp b/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp
index a2279242fb86b..0ee1e76e2469f 100644
--- a/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp
+++ b/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp
@@ -189,7 +189,7 @@ class CallOpConversion final : public OpConversionPattern<func::CallOp> {
 
     if (callOp.getNumResults() <= 1) {
       rewriter.replaceOpWithNewOp<emitc::CallOp>(
-          callOp, callOp.getResultTypes(), adaptor.getOperands(),
+          callOp, convertedResultTypes, adaptor.getOperands(),
           callOp->getAttrs());
       return success();
     }
diff --git a/mlir/test/Conversion/ConvertToEmitC/func.mlir b/mlir/test/Conversion/ConvertToEmitC/func.mlir
index 4f2518401581f..3f340736ee12c 100644
--- a/mlir/test/Conversion/ConvertToEmitC/func.mlir
+++ b/mlir/test/Conversion/ConvertToEmitC/func.mlir
@@ -11,3 +11,12 @@ func.func @index(%arg0: index) -> index {
     // CHECK: return
     return %arg0 : index
 }
+
+// CHECK-LABEL: emitc.func @call_index
+// CHECK-SAME: (%[[ARG:.*]]: !emitc.size_t) -> !emitc.size_t
+func.func @call_index(%arg0: index) -> index {
+    // CHECK: %[[RES:.*]] = call @index(%[[ARG]]) : (!emitc.size_t) -> !emitc.size_t
+    // CHECK: return %[[RES]] : !emitc.size_t
+    %0 = func.call @index(%arg0) : (index) -> index
+    return %0 : index
+}

>From 67158ebdde6b3d40ecd7e7341e5a69d529681c9b Mon Sep 17 00:00:00 2001
From: Jeremy Kun <jkun at google.com>
Date: Mon, 22 Jun 2026 13:53:14 -0700
Subject: [PATCH 2/2] formatting

---
 mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp b/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp
index 0ee1e76e2469f..81d15be7d548e 100644
--- a/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp
+++ b/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp
@@ -188,9 +188,9 @@ class CallOpConversion final : public OpConversionPattern<func::CallOp> {
     }
 
     if (callOp.getNumResults() <= 1) {
-      rewriter.replaceOpWithNewOp<emitc::CallOp>(
-          callOp, convertedResultTypes, adaptor.getOperands(),
-          callOp->getAttrs());
+      rewriter.replaceOpWithNewOp<emitc::CallOp>(callOp, convertedResultTypes,
+                                                 adaptor.getOperands(),
+                                                 callOp->getAttrs());
       return success();
     }
 



More information about the Mlir-commits mailing list