[mlir][bufferization] Move ModuleBufferization to bufferization dialect
authorMatthias Springer <springerm@google.com>
Fri, 22 Apr 2022 09:08:44 +0000 (18:08 +0900)
committerMatthias Springer <springerm@google.com>
Fri, 22 Apr 2022 10:37:28 +0000 (19:37 +0900)
commite07a7fd5c0ef3b46f11471741f8dfe4e6057c5ad
treeeeffa44f664741967f97a12c3cf20378b6e64862
parent3e1d2c352c1fb9fb7022344fb4e5639b4f5b1c45
[mlir][bufferization] Move ModuleBufferization to bufferization dialect

* Move Module Bufferization to the bufferization dialect. The implementation is split into `OneShotModuleBufferize.cpp` and `FuncBufferizableOpInterfaceImpl.cpp`, so that the external model implementation can be easily moved to the func dialect in the future.
* Split and clean up test cases. A few test cases are still remaining in Linalg and will be updated separately.
* `linalg.inplaceable` is renamed to `bufferization.writable` to accurately reflect its current usage.
* Attributes and their verifiers are moved from the Linalg dialect to the Bufferization dialect.
* Expand documentation.
* Add a new flag to One-Shot Bufferize to allow for function boundary bufferization.

Differential Revision: https://reviews.llvm.org/D122229
33 files changed:
mlir/include/mlir/Dialect/Bufferization/IR/BufferizableOpInterface.td
mlir/include/mlir/Dialect/Bufferization/IR/BufferizationBase.td
mlir/include/mlir/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.h [new file with mode: 0644]
mlir/include/mlir/Dialect/Bufferization/Transforms/OneShotModuleBufferize.h [new file with mode: 0644]
mlir/include/mlir/Dialect/Bufferization/Transforms/Passes.td
mlir/include/mlir/Dialect/Linalg/CMakeLists.txt
mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/CMakeLists.txt [deleted file]
mlir/include/mlir/Dialect/Linalg/ComprehensiveBufferize/ModuleBufferization.h [deleted file]
mlir/include/mlir/InitAllDialects.h
mlir/lib/Dialect/Bufferization/IR/BufferizableOpInterface.cpp
mlir/lib/Dialect/Bufferization/IR/BufferizationDialect.cpp
mlir/lib/Dialect/Bufferization/Transforms/Bufferize.cpp
mlir/lib/Dialect/Bufferization/Transforms/CMakeLists.txt
mlir/lib/Dialect/Bufferization/Transforms/FuncBufferizableOpInterfaceImpl.cpp [new file with mode: 0644]
mlir/lib/Dialect/Bufferization/Transforms/OneShotModuleBufferize.cpp [new file with mode: 0644]
mlir/lib/Dialect/Linalg/CMakeLists.txt
mlir/lib/Dialect/Linalg/ComprehensiveBufferize/CMakeLists.txt [deleted file]
mlir/lib/Dialect/Linalg/ComprehensiveBufferize/ModuleBufferization.cpp [deleted file]
mlir/lib/Dialect/Linalg/IR/LinalgDialect.cpp
mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferizePass.cpp
mlir/test/Dialect/Bufferization/Transforms/one-shot-bufferize-partial.mlir
mlir/test/Dialect/Bufferization/Transforms/one-shot-module-bufferize-allow-return-allocs.mlir [moved from mlir/test/Dialect/Linalg/one-shot-module-bufferize-allow-return-allocs.mlir with 73% similarity]
mlir/test/Dialect/Bufferization/Transforms/one-shot-module-bufferize-analysis.mlir [moved from mlir/test/Dialect/Linalg/comprehensive-module-bufferize-analysis.mlir with 87% similarity]
mlir/test/Dialect/Bufferization/Transforms/one-shot-module-bufferize-invalid.mlir [moved from mlir/test/Dialect/Linalg/comprehensive-module-bufferize-invalid.mlir with 90% similarity]
mlir/test/Dialect/Bufferization/Transforms/one-shot-module-bufferize.mlir [moved from mlir/test/Dialect/Linalg/one-shot-module-bufferize.mlir with 87% similarity]
mlir/test/Dialect/Linalg/comprehensive-bufferize-analysis-2fill-extract-matmul-all-perms.mlir
mlir/test/Dialect/Linalg/comprehensive-module-bufferize-aliasing-in.mlir
mlir/test/Dialect/Linalg/comprehensive-module-bufferize-analysis-aliasing-in.mlir
mlir/test/Dialect/Linalg/comprehensive-module-bufferize-analysis-init-tensor-elimination.mlir
mlir/test/Dialect/Linalg/comprehensive-module-bufferize-init-tensor-elimination.mlir
mlir/test/Dialect/Linalg/comprehensive-module-bufferize.mlir
utils/bazel/llvm-project-overlay/mlir/BUILD.bazel