llvm-project
b0f1f77c - [mlir][x86vector] Sink Vector.transfer_reads and vector.load before the consumer (#169333)

Commit
1 day ago
[mlir][x86vector] Sink Vector.transfer_reads and vector.load before the consumer (#169333) Adds a pattern that sinks vector producer ops (`vector.load` and `vector.transfer_read`) forward in a block to their earliest legal use, reducing live ranges and improving scheduling opportunities. **The lowering pattern**: `batch_reduce.matmul` (input) -> register-tiling(M, N) -> Vectorization (to `vector.contract`) -> `unroll` vector.contract (`unit` dims) -> `hoisting` transformation (move `C` loads/store outside batch/k loop) -> **sink vector producers** -> apply `licm`, `canonicalization`, and `bufferize` -> `vector.contract` to `fma` -> **sink vector producers**.
Author
Parents
Loading