From 89b2f29d624c9a54f3b67e8a10b8754ce92b3112 Mon Sep 17 00:00:00 2001 From: Matthias Springer Date: Fri, 8 Oct 2021 14:36:43 +0900 Subject: [PATCH] [mlir][linalg][bufferize] Fix/add missing case to getAliasingOpOperand Differential Revision: https://reviews.llvm.org/D111377 --- mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp b/mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp index 685eb51..ddbc8a7 100644 --- a/mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp +++ b/mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp @@ -561,7 +561,7 @@ static Optional getAliasingOpOperand(OpResult result) { return None; return TypeSwitch(result.getDefiningOp()) .Case([&](tensor::CastOp op) { return &op->getOpOperand(0); }) - .Case([&](ConstantOp op) { return &op->getOpOperand(0); }) + .Case([&](ConstantOp op) { return nullptr; }) .Case([&](ExtractSliceOp op) { return &op->getOpOperand(0); }) // In the case of scf::ForOp, this currently assumes the iter_args / yield // are 1-1. This may fail and is verified at the end. @@ -580,6 +580,7 @@ static Optional getAliasingOpOperand(OpResult result) { op.getNumInputs() + result.getResultNumber()); }) .Case([&](vector::TransferWriteOp op) { return &op->getOpOperand(1); }) + .Case([&](CallOpInterface op) { return nullptr; }) .Default([&](Operation *op) { op->dump(); llvm_unreachable("unexpected defining op"); -- 2.7.4