[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:54:51 PDT 2026
https://github.com/j2kun updated https://github.com/llvm/llvm-project/pull/205191
>From a94b1fd6993997ca1ce63160e2fd69f1fb3ab737 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] [mlir][emitc]: use converted result types when func.call has
one result
---
mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp | 6 +++---
mlir/test/Conversion/ConvertToEmitC/func.mlir | 8 ++++++++
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp b/mlir/lib/Conversion/FuncToEmitC/FuncToEmitC.cpp
index a2279242fb86b..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, callOp.getResultTypes(), adaptor.getOperands(),
- callOp->getAttrs());
+ rewriter.replaceOpWithNewOp<emitc::CallOp>(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..ef2095d672446 100644
--- a/mlir/test/Conversion/ConvertToEmitC/func.mlir
+++ b/mlir/test/Conversion/ConvertToEmitC/func.mlir
@@ -11,3 +11,11 @@ func.func @index(%arg0: index) -> index {
// CHECK: return
return %arg0 : index
}
+
+// CHECK-LABEL: emitc.func @call_with_one_result
+func.func @call_with_one_result(%arg0: index) -> index {
+ // CHECK: call @index
+ // CHECK-SAME: (!emitc.size_t) -> !emitc.size_t
+ %0 = func.call @index(%arg0) : (index) -> index
+ return %0 : index
+}
More information about the Mlir-commits
mailing list