[mlir][linalg][bufferize] Add dialect filter to BufferizationOptions
authorMatthias Springer <springerm@google.com>
Wed, 8 Dec 2021 14:26:22 +0000 (23:26 +0900)
committerMatthias Springer <springerm@google.com>
Wed, 8 Dec 2021 14:51:18 +0000 (23:51 +0900)
commit847710f7b77ea4e3cd43f62b5b7d920ac47405a5
tree888db0db073a99e294f4df7b1bb4a5c448f1f137
parent84687405ce4d1a88e09eb2d32624e17a6838c870
[mlir][linalg][bufferize] Add dialect filter to BufferizationOptions

This adds a new option `dialectFilter` to BufferizationOptions. Only ops from dialects that are allow-listed in the filter are bufferized. Other ops are left unbufferized. Note: This option requires `allowUnknownOps = true`.

To make use of `dialectFilter`, BufferizationOptions or BufferizationState must be passed to various helper functions.

The purpose of this change is to provide a better infrastructure for partial bufferization, which will be fully activated in a subsequent change.

Differential Revision: https://reviews.llvm.org/D114691
mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/BufferizableOpInterface.h
mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/BufferizableOpInterface.td
mlir/lib/Dialect/Linalg/ComprehensiveBufferize/BufferizableOpInterface.cpp
mlir/lib/Dialect/Linalg/ComprehensiveBufferize/ComprehensiveBufferize.cpp
mlir/lib/Dialect/Linalg/ComprehensiveBufferize/LinalgInterfaceImpl.cpp
mlir/lib/Dialect/Linalg/ComprehensiveBufferize/TensorInterfaceImpl.cpp
mlir/test/Dialect/Linalg/comprehensive-module-bufferize-partial.mlir
mlir/test/lib/Dialect/Linalg/TestComprehensiveBufferize.cpp