Skip to content

Commit db60491

Browse files
authored
[mlir][bufferization] Check OpFilter before casting to BufferizableOpInterface (#85690)
This doesn't change functionality, but lets us avoid attaching all the interfaces after 513cdb8 turned casting without loading into an error.
1 parent 29849d5 commit db60491

File tree

2 files changed

+3
-5
lines changed

2 files changed

+3
-5
lines changed

mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -344,11 +344,11 @@ bool BufferizationOptions::isOpAllowed(Operation *op) const {
344344

345345
BufferizableOpInterface
346346
BufferizationOptions::dynCastBufferizableOp(Operation *op) const {
347+
if (!isOpAllowed(op))
348+
return nullptr;
347349
auto bufferizableOp = dyn_cast<BufferizableOpInterface>(op);
348350
if (!bufferizableOp)
349351
return nullptr;
350-
if (!isOpAllowed(op))
351-
return nullptr;
352352
return bufferizableOp;
353353
}
354354

mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@ LogicalResult bufferization::bufferizeOp(Operation *op,
453453
// canonicalize away (or canonicalize to more precise layouts).
454454
SmallVector<Operation *> worklist;
455455
op->walk<WalkOrder::PostOrder>([&](Operation *op) {
456-
if (hasTensorSemantics(op))
456+
if (options.isOpAllowed(op) && hasTensorSemantics(op))
457457
worklist.push_back(op);
458458
});
459459

@@ -472,8 +472,6 @@ LogicalResult bufferization::bufferizeOp(Operation *op,
472472
auto bufferizableOp = options.dynCastBufferizableOp(nextOp);
473473
if (!bufferizableOp)
474474
continue;
475-
if (!options.isOpAllowed(nextOp))
476-
continue;
477475
// Skip ops that no longer have tensor semantics.
478476
if (!hasTensorSemantics(nextOp))
479477
continue;

0 commit comments

Comments
 (0)