[Mlir-commits] [mlir] [MLIR][OneShotBufferize] Fix opFilter init (PR #130633)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Mon Mar 10 09:25:46 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-mlir-bufferization

Author: Thomas Preud'homme (RoboTux)

<details>
<summary>Changes</summary>

OneShotBufferizePass's opFilter definition in runOnOperation() fails to
allow operations for all dialect when the dialectFilter has an empty
array value (as opposed to no value). This happens when constructing
OneShotBufferizePass from a OneShotBufferizePassOptions parameter with
an empty dialectFilter. This commit only does filtering if filterDialect
option has a value and it is not an empty array.


---
Full diff: https://github.com/llvm/llvm-project/pull/130633.diff


1 Files Affected:

- (modified) mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp (+1-1) 


``````````diff
diff --git a/mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp b/mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp
index 97d4aab9f3dd5..c0e3fca428376 100644
--- a/mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp
+++ b/mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp
@@ -142,7 +142,7 @@ struct OneShotBufferizePass
       // Configure op filter.
       OpFilter::Entry::FilterFn filterFn = [&](Operation *op) {
         // Filter may be specified via options.
-        if (this->dialectFilter.hasValue())
+        if (this->dialectFilter.hasValue() && !(*this->dialectFilter).empty())
           return llvm::is_contained(this->dialectFilter,
                                     op->getDialect()->getNamespace());
         // No filter specified: All other ops are allowed.

``````````

</details>


https://github.com/llvm/llvm-project/pull/130633


More information about the Mlir-commits mailing list