[Mlir-commits] [mlir] 6367677 - [mlir][linalg] `BufferizeToAllocationOp`: fix side effects (#72986)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Mon Nov 27 16:45:04 PST 2023


Author: Matthias Springer
Date: 2023-11-23T09:22:40+01:00
New Revision: 6367677c9d901f412934b4935c4341dc6d421d36

URL: https://github.com/llvm/llvm-project/commit/6367677c9d901f412934b4935c4341dc6d421d36
DIFF: https://github.com/llvm/llvm-project/commit/6367677c9d901f412934b4935c4341dc6d421d36.diff

LOG: [mlir][linalg] `BufferizeToAllocationOp`: fix side effects (#72986)

`bufferize_to_allocation` does not bufferize/replace targeted ops if
`bufferize_destination_only` is set.

Fixes #72931.

Added: 
    

Modified: 
    mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
index de4965f937162ea..ef5d88d46dd28a0 100644
--- a/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
+++ b/mlir/lib/Dialect/Linalg/TransformOps/LinalgTransformOps.cpp
@@ -289,7 +289,13 @@ DiagnosedSilenceableFailure transform::BufferizeToAllocationOp::apply(
 
 void transform::BufferizeToAllocationOp::getEffects(
     SmallVectorImpl<MemoryEffects::EffectInstance> &effects) {
-  consumesHandle(getTarget(), effects);
+  if (getBufferizeDestinationOnly()) {
+    // The destination is replaced with a newly allocated buffer, but the op
+    // itself remains in place.
+    onlyReadsHandle(getTarget(), effects);
+  } else {
+    consumesHandle(getTarget(), effects);
+  }
   producesHandle(getAllocatedBuffer(), effects);
   producesHandle(getNewOps(), effects);
   modifiesPayload(effects);


        


More information about the Mlir-commits mailing list