[Mlir-commits] [mlir] Memref prefetch side effect (PR #151261)
Alexandre Eichenberger
llvmlistbot at llvm.org
Thu Jul 31 07:41:42 PDT 2025
https://github.com/AlexandreEichenberger updated https://github.com/llvm/llvm-project/pull/151261
>From 7078f7d68512b32c2375b29ad7b23d87520f870b Mon Sep 17 00:00:00 2001
From: Alexandre Eichenberger <alexe at us.ibm.com>
Date: Tue, 29 Jul 2025 20:12:51 -0400
Subject: [PATCH 1/2] add MemWrite side effect to memref.prefetch
Signed-off-by: Alexandre Eichenberger <alexe at us.ibm.com>
---
mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td | 3 ++-
.../OwnershipBasedBufferDeallocation/misc-other.mlir | 10 +++++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td b/mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
index 9321089ab55fa..3a249410cfa88 100644
--- a/mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
+++ b/mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
@@ -1351,7 +1351,8 @@ def MemRef_PrefetchOp : MemRef_Op<"prefetch"> {
instruction cache.
}];
- let arguments = (ins AnyMemRef:$memref, Variadic<Index>:$indices,
+ let arguments = (ins Arg<AnyMemRef, "prefetch address", [MemWrite]> :$memref,
+ Variadic<Index>:$indices,
BoolAttr:$isWrite,
ConfinedAttr<I32Attr, [IntMinValue<0>,
IntMaxValue<3>]>:$localityHint,
diff --git a/mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/misc-other.mlir b/mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/misc-other.mlir
index c50c25ad8194f..2ff3587e8998f 100644
--- a/mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/misc-other.mlir
+++ b/mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/misc-other.mlir
@@ -17,4 +17,12 @@ func.func @func_with_assert(%arg0: index, %arg1: index) {
func.func @func_with_assume_alignment(%arg0: memref<128xi8>) {
%0 = memref.assume_alignment %arg0, 64 : memref<128xi8>
return
-}
\ No newline at end of file
+}
+
+// CHECK-LABEL: func @func_with_prefetch(
+// CHECK: memref.prefetch %arg0[%c0, %c0], read, locality<1>, data : memref<4x8xf32>
+func.func @func_with_prefetch(%arg0: memref<4x8xf32>) {
+ %c0 = arith.constant 0 : index
+ memref.prefetch %arg0[%c0, %c0], read, locality<1>, data : memref<4x8xf32>
+ return
+}
>From 3a7212a5b2989f13897e3f3eff0056115352887a Mon Sep 17 00:00:00 2001
From: Alexandre Eichenberger <alexe at us.ibm.com>
Date: Tue, 29 Jul 2025 20:18:53 -0400
Subject: [PATCH 2/2] added memref.prefetch MemWrite side effect
Signed-off-by: Alexandre Eichenberger <alexe at us.ibm.com>
---
mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td | 2 +-
.../Transforms/OwnershipBasedBufferDeallocation/misc-other.mlir | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td b/mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
index 3a249410cfa88..5a46e86eca2b5 100644
--- a/mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
+++ b/mlir/include/mlir/Dialect/MemRef/IR/MemRefOps.td
@@ -1351,7 +1351,7 @@ def MemRef_PrefetchOp : MemRef_Op<"prefetch"> {
instruction cache.
}];
- let arguments = (ins Arg<AnyMemRef, "prefetch address", [MemWrite]> :$memref,
+ let arguments = (ins Arg<AnyMemRef, "prefetch address", [MemWrite]> :$memref,
Variadic<Index>:$indices,
BoolAttr:$isWrite,
ConfinedAttr<I32Attr, [IntMinValue<0>,
diff --git a/mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/misc-other.mlir b/mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/misc-other.mlir
index 2ff3587e8998f..fc137f1f2f722 100644
--- a/mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/misc-other.mlir
+++ b/mlir/test/Dialect/Bufferization/Transforms/OwnershipBasedBufferDeallocation/misc-other.mlir
@@ -24,5 +24,5 @@ func.func @func_with_assume_alignment(%arg0: memref<128xi8>) {
func.func @func_with_prefetch(%arg0: memref<4x8xf32>) {
%c0 = arith.constant 0 : index
memref.prefetch %arg0[%c0, %c0], read, locality<1>, data : memref<4x8xf32>
- return
+ return
}
More information about the Mlir-commits
mailing list