-
Notifications
You must be signed in to change notification settings - Fork 14.1k
[mlir][linalg] Remove the test-linalg-to-vector-patterns
option
#142116
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[mlir][linalg] Remove the test-linalg-to-vector-patterns
option
#142116
Conversation
This patch removes the `test-linalg-to-vector-patterns` option from the `-test-linalg-transform-patterns=` test flag. It was only used in one test, where a more specialized transform dialect op can be used instead: * `transform.apply_patterns.linalg.pad_vectorization` While we could preserve `test-linalg-to-vector-patterns`, it's better to rely on finer-grained transformations — this way, we know exactly what is being run and tested. Now that its only use has been removed, it feels natural to delete `test-linalg-to-vector-patterns`.
@llvm/pr-subscribers-mlir-linalg @llvm/pr-subscribers-mlir Author: Andrzej Warzyński (banach-space) ChangesThis patch removes the
While we could preserve Full diff: https://github.com/llvm/llvm-project/pull/142116.diff 2 Files Affected:
diff --git a/mlir/test/Integration/Dialect/Linalg/CPU/test-padtensor.mlir b/mlir/test/Integration/Dialect/Linalg/CPU/test-padtensor.mlir
index 1361d21e7d949..63db0def1cbc5 100644
--- a/mlir/test/Integration/Dialect/Linalg/CPU/test-padtensor.mlir
+++ b/mlir/test/Integration/Dialect/Linalg/CPU/test-padtensor.mlir
@@ -1,4 +1,4 @@
-// RUN: mlir-opt %s -test-linalg-transform-patterns=test-linalg-to-vector-patterns \
+// RUN: mlir-opt %s -transform-interpreter -test-transform-dialect-erase-schedule \
// RUN: -one-shot-bufferize="bufferize-function-boundaries" \
// RUN: -buffer-deallocation-pipeline -convert-bufferization-to-memref \
// RUN: -convert-linalg-to-loops -convert-scf-to-cf -expand-strided-metadata \
@@ -34,4 +34,15 @@ func.func @main() {
return
}
+module attributes {transform.with_named_sequence} {
+ transform.named_sequence @__transform_main(%arg1: !transform.any_op {transform.readonly}) {
+ %func_op = transform.structured.match ops{["func.func"]} in %arg1 : (!transform.any_op) -> !transform.op<"func.func">
+
+ transform.apply_patterns to %func_op {
+ transform.apply_patterns.linalg.pad_vectorization
+ } : !transform.op<"func.func">
+ transform.yield
+ }
+}
+
func.func private @printMemrefF32(%ptr : tensor<*xf32>)
diff --git a/mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp b/mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
index 046b9a65f3359..738648b8ccdcf 100644
--- a/mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
+++ b/mlir/test/lib/Dialect/Linalg/TestLinalgTransforms.cpp
@@ -65,11 +65,6 @@ struct TestLinalgTransforms
llvm::cl::desc(
"Test a fused pass that forwards memref.copy to vector.transfer"),
llvm::cl::init(false)};
- Option<bool> testGenericToVectorPattern{
- *this, "test-linalg-to-vector-patterns",
- llvm::cl::desc("Test a set of patterns that rewrite a linalg contraction "
- "in vector.contract form"),
- llvm::cl::init(false)};
Option<bool> testDecomposePadTensor{
*this, "test-decompose-pad-tensor",
llvm::cl::desc("Test transform pad tensor by copying with generic ops"),
@@ -166,15 +161,6 @@ static void applyVectorTransferForwardingPatterns(func::FuncOp funcOp) {
(void)applyPatternsGreedily(funcOp, std::move(forwardPattern));
}
-static void applyLinalgToVectorPatterns(func::FuncOp funcOp) {
- RewritePatternSet patterns(funcOp.getContext());
- auto *ctx = funcOp.getContext();
- patterns.add<CopyVectorizationPattern>(ctx);
- populatePadOpVectorizationPatterns(patterns);
- populateConvolutionVectorizationPatterns(patterns);
- (void)applyPatternsGreedily(funcOp, std::move(patterns));
-}
-
static void applyDecomposePadPatterns(func::FuncOp funcOp) {
RewritePatternSet patterns(funcOp.getContext());
patterns.add<DecomposePadOpPattern>(funcOp.getContext());
@@ -254,8 +240,6 @@ void TestLinalgTransforms::runOnOperation() {
return applyPatterns(getOperation());
if (testVectorTransferForwardingPatterns)
return applyVectorTransferForwardingPatterns(getOperation());
- if (testGenericToVectorPattern)
- return applyLinalgToVectorPatterns(getOperation());
if (testDecomposePadTensor)
return applyDecomposePadPatterns(getOperation());
if (testDecomposeTensorPackOp)
|
…vm#142116) This patch removes the `test-linalg-to-vector-patterns` option from the `-test-linalg-transform-patterns=` test flag. It was only used in one test, where a more specialized transform dialect op can be used instead: * `transform.apply_patterns.linalg.pad_vectorization` While we could preserve `test-linalg-to-vector-patterns`, it's better to rely on finer-grained transformations — this way, we know exactly what is being run and tested. Now that its only use has been removed, it feels natural to delete `test-linalg-to-vector-patterns`.
This patch removes the
test-linalg-to-vector-patterns
option from the-test-linalg-transform-patterns=
test flag. It was only used in onetest, where a more specialized transform dialect op can be used instead:
transform.apply_patterns.linalg.pad_vectorization
While we could preserve
test-linalg-to-vector-patterns
, it's better torely on finer-grained transformations — this way, we know exactly what
is being run and tested. Now that its only use has been removed, it
feels natural to delete
test-linalg-to-vector-patterns
.