[mlir][linalg][transform] Register linalg dialect patterns
authorMatthias Springer <me@m-sp.org>
Mon, 5 Jun 2023 08:19:55 +0000 (10:19 +0200)
committerMatthias Springer <me@m-sp.org>
Mon, 5 Jun 2023 09:36:59 +0000 (11:36 +0200)
Differential Revision: https://reviews.llvm.org/D152124

mlir/lib/Dialect/Linalg/TransformOps/DialectExtension.cpp

index 9578648..ab28ad3 100644 (file)
 #include "mlir/Dialect/Linalg/IR/Linalg.h"
 #include "mlir/Dialect/Linalg/TransformOps/LinalgMatchOps.h"
 #include "mlir/Dialect/Linalg/TransformOps/LinalgTransformOps.h"
+#include "mlir/Dialect/Linalg/Transforms/Transforms.h"
 #include "mlir/Dialect/SCF/IR/SCF.h"
 #include "mlir/Dialect/Tensor/IR/Tensor.h"
 #include "mlir/Dialect/Transform/IR/TransformDialect.h"
+#include "mlir/Dialect/Transform/IR/TransformOps.h"
 #include "mlir/Dialect/Vector/IR/VectorOps.h"
 
 using namespace mlir;
@@ -47,6 +49,22 @@ public:
 #define GET_OP_LIST
 #include "mlir/Dialect/Linalg/TransformOps/LinalgMatchOps.cpp.inc"
         >();
+
+    addDialectDataInitializer<transform::PatternRegistry>(
+        [&](transform::PatternRegistry &registry) {
+          registry.registerPatterns(
+              "linalg.erase_unnecessary_inputs",
+              linalg::populateEraseUnnecessaryInputsPatterns);
+          registry.registerPatterns(
+              "linalg.fold_unit_extent_dims_via_slices",
+              linalg::populateFoldUnitExtentDimsViaSlicesPatterns);
+          registry.registerPatterns(
+              "linalg.fold_unit_extent_dims_via_reshapes",
+              linalg::populateFoldUnitExtentDimsViaReshapesPatterns);
+          registry.registerPatterns(
+              "linalg.tiling_canonicalization",
+              linalg::populateLinalgTilingCanonicalizationPatterns);
+        });
   }
 };
 } // namespace