[Mlir-commits] [mlir] [mlir][async]: Make async.execute operation pure (PR #116544)

Aviad Cohen llvmlistbot at llvm.org
Mon Nov 18 06:59:21 PST 2024


https://github.com/AviadCo updated https://github.com/llvm/llvm-project/pull/116544

>From 469fe8c19f01a152e537bb090dc89443033970ee Mon Sep 17 00:00:00 2001
From: Aviad Cohen <aviad.cohen2 at mobileye.com>
Date: Sun, 17 Nov 2024 15:40:10 +0200
Subject: [PATCH] [mlir][async]: Make async.execute operation with
 RecursiveMemoryEffects trait

---
 mlir/include/mlir/Dialect/Async/IR/AsyncOps.td |  3 ++-
 mlir/test/Dialect/Async/canonicalize.mlir      | 10 ++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)
 create mode 100644 mlir/test/Dialect/Async/canonicalize.mlir

diff --git a/mlir/include/mlir/Dialect/Async/IR/AsyncOps.td b/mlir/include/mlir/Dialect/Async/IR/AsyncOps.td
index 33b67921752346..2e7f57814a2d53 100644
--- a/mlir/include/mlir/Dialect/Async/IR/AsyncOps.td
+++ b/mlir/include/mlir/Dialect/Async/IR/AsyncOps.td
@@ -38,7 +38,8 @@ def Async_ExecuteOp :
                                                  ["getEntrySuccessorOperands",
                                                   "areTypesCompatible"]>,
                        AttrSizedOperandSegments,
-                       AutomaticAllocationScope]> {
+                       AutomaticAllocationScope,
+                       RecursiveMemoryEffects]> {
   let summary = "Asynchronous execute operation";
   let description = [{
     The `body` region attached to the `async.execute` operation semantically
diff --git a/mlir/test/Dialect/Async/canonicalize.mlir b/mlir/test/Dialect/Async/canonicalize.mlir
new file mode 100644
index 00000000000000..1a74eaa344e169
--- /dev/null
+++ b/mlir/test/Dialect/Async/canonicalize.mlir
@@ -0,0 +1,10 @@
+// RUN: mlir-opt %s -split-input-file -canonicalize | FileCheck %s
+
+// CHECK-NOT: async.execute
+
+func.func @empty_execute() {
+  %token = async.execute {
+    async.yield
+  }
+  return
+}



More information about the Mlir-commits mailing list