From 5f8228d310627889716b51e1acd5840ec653d899 Mon Sep 17 00:00:00 2001 From: Matthias Springer Date: Thu, 21 Oct 2021 22:16:36 +0900 Subject: [PATCH] [mlir][linalg][bufferize] Fix bufferizesToMemoryWrite for TiledLoopOp This is the same fix as for scf.for. Differential Revision: https://reviews.llvm.org/D112218 --- mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp b/mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp index f68ea6b..4134cc0 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp @@ -654,12 +654,8 @@ static bool bufferizesToMemoryRead(OpOperand &opOperand) { return isValueRead(forOp.getRegionIterArgForOpOperand(opOperand)); // TiledLoop alone doesn't bufferize to a memory read, one of the uses of its // matching bbArg may. - if (auto tiledLoopOp = dyn_cast(opOperand.getOwner())) { - for (OpOperand &use : tiledLoopOp.getTiedBlockArgument(opOperand).getUses()) - if (bufferizesToMemoryRead(use)) - return true; - return false; - } + if (auto tiledLoopOp = dyn_cast(opOperand.getOwner())) + return isValueRead(tiledLoopOp.getTiedBlockArgument(opOperand)); // CallOpInterface alone doesn't bufferize to a memory read, one of the uses // of the matching bbArg may. It is the responsibility of the caller to // inspect bbArgs. In the absence of a BufferizationAliasInfo, we need to be -- 2.7.4