llvm-project/mlir/test/Dialect/Bufferization/Transforms
Matthias Springer c1fef4e88a [mlir][bufferization] Make `TensorCopyInsertionPass` a test pass
TensorCopyInsertion should not have been exposed as a pass. This was a flaw in the original design. It is a preparation step for bufferization and certain transforms (that would otherwise be legal) are illegal between TensorCopyInsertion and actual rewrite to MemRef ops. Therefore, even if broken down as two separate steps internally, they should be exposed as a single pass.

This change affects the sparse compiler, which uses `TensorCopyInsertionPass`. A new `SparsificationAndBufferizationPass` is added to replace all passes in the sparse tensor pipeline from `TensorCopyInsertionPass` until the actual bufferization (rewrite to memref/non-tensor). It is generally unsafe to run arbitrary passes in-between, in particular passes that hoist tensor ops out of loops or change SSA use-def chains along tensor ops.

Differential Revision: https://reviews.llvm.org/D138915
2022-12-02 15:38:02 +01:00
..
buffer-deallocation.mlir Add RegionBranchOpInterface for AffineIf Op 2022-11-23 14:19:22 +05:30
buffer-hoisting.mlir [mlir][bufferize] Remove hoisting functionality from One-Shot Bufferize 2022-05-25 19:56:18 +02:00
buffer-loop-hoisting.mlir [mlir][bufferize] Remove hoisting functionality from One-Shot Bufferize 2022-05-25 19:56:18 +02:00
finalizing-bufferize.mlir [mlir] use strided layout in structured codegen-related tests 2022-09-17 08:11:28 +02:00
one-shot-bufferize-allow-return-allocs.mlir [mlir][SCF][bufferize] Bufferize scf.if/execute_region terminators separately 2022-06-27 13:22:19 +02:00
one-shot-bufferize-analysis-empty-tensor-elimination.mlir [mlir][bufferize] Eliminate tensor.empty ops instead of bufferization.alloc_tensor ops 2022-11-11 11:39:18 +01:00
one-shot-bufferize-compat.mlir [mlir][NFC] Update textual references of `func` to `func.func` in Bufferization/Complex/EmitC/CF/Func/GPU tests 2022-04-20 22:17:28 -07:00
one-shot-bufferize-empty-tensor-elimination.mlir [mlir][bufferize] Eliminate tensor.empty ops instead of bufferization.alloc_tensor ops 2022-11-11 11:39:18 +01:00
one-shot-bufferize-memory-space-invalid.mlir [mlir][bufferize] Infer memory space in all bufferization patterns 2022-06-27 16:32:52 +02:00
one-shot-bufferize-partial.mlir [mlir] switch bufferization to use strided layout attribute 2022-09-16 10:56:50 +02:00
one-shot-bufferize.mlir [mlir][bufferization] Support general Attribute as memory space 2022-11-21 09:40:50 -05:00
one-shot-module-bufferize-allow-return-allocs.mlir [mlir][bufferize] Bufferize after TensorCopyInsertion 2022-06-17 13:29:52 +02:00
one-shot-module-bufferize-analysis.mlir [mlir][bufferize] Better error handling: Fail if ToMemrefOps are found 2022-08-18 11:37:57 +02:00
one-shot-module-bufferize-invalid.mlir [mlir][bufferize] Improve error message when returning allocs 2022-11-30 09:28:12 +01:00
one-shot-module-bufferize-out-params.mlir [mlir] switch bufferization to use strided layout attribute 2022-09-16 10:56:50 +02:00
one-shot-module-bufferize.mlir [mlir][bufferize][NFC] Fix FileCheck capture 2022-10-03 16:06:10 +09:00
tensor-copy-insertion-memory-space-invalid.mlir [mlir][bufferization] Make `TensorCopyInsertionPass` a test pass 2022-12-02 15:38:02 +01:00
tensor-copy-insertion-memory-space.mlir [mlir][bufferization] Make `TensorCopyInsertionPass` a test pass 2022-12-02 15:38:02 +01:00
tensor-copy-insertion.mlir [mlir][bufferization] Make `TensorCopyInsertionPass` a test pass 2022-12-02 15:38:02 +01:00
transform-ops.mlir [MLIR][Transform] Expose map layout option in `OneShotBufferizeOp` 2022-11-14 18:09:54 +01:00