From 469fe8c19f01a152e537bb090dc89443033970ee Mon Sep 17 00:00:00 2001 From: Aviad Cohen 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 33b6792175234..2e7f57814a2d5 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 0000000000000..1a74eaa344e16 --- /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 +}