llvm-project/mlir/test/Dialect/SCF
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
..
bufferize.mlir [mlir][scf] Retain existing attributes in scf.for transforms 2022-05-25 10:53:02 -04:00
canonicalize.mlir [mlir][SCF] Add tensor.dim(scf.foreach_thread) folding 2022-11-22 11:28:27 +01:00
control-flow-sink.mlir [mlir][NFC] Update remaining textual references of un-namespaced `func` operations 2022-04-20 22:17:31 -07:00
for-loop-canonicalization.mlir [mlir][SCF] Loop lb/ub are symbols during Affine Min/Max canonicalization 2022-08-18 11:44:48 +02:00
for-loop-peeling.mlir [mlir][NFC] Update textual references of `func` to `func.func` in LLVM/Math/MemRef/NVGPU/OpenACC/OpenMP/Quant/SCF/Shape tests 2022-04-20 22:17:28 -07:00
for-loop-specialization.mlir [mlir] Infer SubElementInterface implementations using the storage KeyTy 2022-11-04 18:15:03 -07:00
for-loop-to-while-loop.mlir [mlir][Pass] Include anchor op in -pass-pipeline 2022-11-03 11:36:12 -04:00
foreach-thread-canonicalization.mlir [mlir][NFC] Remove trailing whitespaces from `*.td` and `*.mlir` files. 2022-11-28 15:26:30 -08:00
invalid.mlir [mlir][Transform]Significantly cleanup scf.foreach_thread and GPU transform permutation handling 2022-11-14 09:19:49 -08:00
loop-pipelining.mlir [mlir][NFC] Remove trailing whitespaces from `*.td` and `*.mlir` files. 2022-11-28 15:26:30 -08:00
loop-range.mlir [mlir][Pass] Include anchor op in -pass-pipeline 2022-11-03 11:36:12 -04:00
loop-unroll.mlir [mlir] Make division unsigned. 2022-08-30 09:55:04 -07:00
one-shot-bufferize-allow-return-allocs-no-deallocs.mlir One-shot-bufferize: fix for inconsistent while arg types in before/after. 2022-09-08 10:24:11 +02:00
one-shot-bufferize-analysis.mlir [mlir][NFC] Remove trailing whitespaces from `*.td` and `*.mlir` files. 2022-11-28 15:26:30 -08:00
one-shot-bufferize-invalid.mlir [mlir][SCF][bufferize][NFC] Move scf.if buffer type computation to getBufferType 2022-08-30 16:48:10 +02:00
one-shot-bufferize-tensor-copy-insertion.mlir [mlir][bufferization] Make `TensorCopyInsertionPass` a test pass 2022-12-02 15:38:02 +01:00
one-shot-bufferize.mlir [mlir][NFC] Remove trailing whitespaces from `*.td` and `*.mlir` files. 2022-11-28 15:26:30 -08:00
ops.mlir [mlir] Introduce device mapper attribute for `thread_dim_map` and `mapped to dims` 2022-11-11 08:44:57 +01:00
parallel-loop-fusion.mlir [mlir][Pass] Include anchor op in -pass-pipeline 2022-11-03 11:36:12 -04:00
parallel-loop-specialization.mlir [mlir] Infer SubElementInterface implementations using the storage KeyTy 2022-11-04 18:15:03 -07:00
parallel-loop-tiling-inbound-check.mlir [mlir][Pass] Include anchor op in -pass-pipeline 2022-11-03 11:36:12 -04:00
parallel-loop-tiling.mlir [mlir] Infer SubElementInterface implementations using the storage KeyTy 2022-11-04 18:15:03 -07:00
transform-ops.mlir [MLIR][Transform] Consolidate the transform ops of get_parent_for and loop unroll from affine and scf dialects. 2022-11-30 11:07:44 -05:00