This revision retires the LinalgCodegenStrategy vectorization pattern. Please see the context: https://discourse.llvm.org/t/psa-retire-linalg-filter-based-patterns/63785.
This revision improves the transform dialect's VectorizeOp in different ways below:
- Adds LinalgDialect as a dependent dialect. When transform.structured.vectorize vectorizes tensor.pad, it generates linalg.init_tensor. In this case, linalg dialect must be registered.
- Inserts CopyVectorizationPattern in order to vectorize memref.copy.
- Creates two attributes: disable_multi_reduction_to_contract_patterns and disable_transfer_permutation_map_lowering_patterns. They are limiting the power of vectorization and are currently intended for testing purposes.
It also removes some of the "CHECK: vector.transfer_write" in the vectorization.mlir test. They are redundant writes, at the end of the code there is a rewrite to the same place. Transform dialect no longer generates them.
Depends on D133684 that retires the LinalgCodegenStrategy vectorization pass.
Please put this in n anon namespace and document the fact that this only exists so we can call vectorize via a pattern inside of VectorizeOp::applyToOne.