llvm-project/mlir/lib
Nicolas Vasilache 73bea97a33 [mlir][Linalg] Add support for CallOp bufferization (10/n)
Cross function boundary bufferization support is added.
This is enabled by cross-function boundary alias analysis, for which the bufferization process is extended: it can now modify the BufferizationAliasInfo as new ops are introduced.

A number of simplifying assumptions are made:

1. by default we bufferize to the most dynamic strided memref type, further memref::CastOp canonicalizations are expected to clean up the IR.
2. in the current implementation, the stride information is always erased at function boundaries. A subsequent pass will be required to analyze the meet of all call ops to a function and decide whether more static buffer types can be used. This will potentially clone functions when it is deemed profitable to do so (e.g. when the stride-1 dimension may vary).
3. external function always bufferize to the most dynamic strided memref version. This may require special annotations for specifying that particular operands of top-level functions have contiguous buffer layout.

An alternative to point 3. would be to support tensor layout annotations, which is currently not supported in MLIR.

Differential revision: https://reviews.llvm.org/D104873
2021-07-01 10:33:12 +00:00
..
Analysis [MLIR] Generalize detecting mods during slice computing 2021-06-23 12:29:34 +05:30
Bindings [mlir][linalg] Remove the StructuredOp capture mechanism. 2021-06-28 07:57:40 +00:00
CAPI [mlir][linalg] Remove the StructuredOp capture mechanism. 2021-06-28 07:57:40 +00:00
Conversion [mlir][tensor] Add tensor.dim operation 2021-07-01 10:00:19 +09:00
Dialect [mlir][Linalg] Add support for CallOp bufferization (10/n) 2021-07-01 10:33:12 +00:00
ExecutionEngine Revert "Revert "[mlir][memref] Implement lowering of memref.copy to llvm"" 2021-06-28 18:48:00 +02:00
IR [MLIR] Add argument insertion helpers for FunctionLike 2021-07-01 09:18:57 +02:00
Interfaces [mlir] fix a crash if the dialect is missing a data layout interface 2021-06-09 17:46:27 +02:00
Parser [mlir-lsp-server] Add support for textDocument/documentSymbols 2021-06-10 10:58:39 -07:00
Pass [mlir] Fix GCC5 build after D104516 2021-06-23 03:16:34 +00:00
Reducer [mlir-reduce] Create MlirReduceLib 2021-06-03 15:58:26 +08:00
Rewrite [mlir] Add support for filtering patterns based on debug names and labels 2021-06-02 12:05:25 -07:00
Support [mlir] Split things dependent on LLVM_DEBUG into a .cpp file 2021-06-17 15:06:40 +02:00
TableGen [mlir] Generare .cpp.inc files for dialects. 2021-06-29 20:10:30 +00:00
Target [mlir] Add support for LLVM's dso_local attr 2021-06-29 15:00:48 +02:00
Tools [mlir-lsp-server] Add support for textDocument/documentSymbols 2021-06-10 10:58:39 -07:00
Transforms [MLIR] Fix generateCopyForMemRefRegion 2021-06-30 10:24:10 +05:30
Translation [mlir] avoid exposing mutable DialectRegistry from MLIRContext 2021-02-10 12:07:34 +01:00
CMakeLists.txt [mlir][Standard] NFC - Drop remaining EDSC usage 2021-05-21 10:40:39 +00:00