[mlir][linalg] Bring populateFoldUnitExtentDimsVia(Reshapes/Slices)Patterns in sync
authorMatthias Springer <springerm@google.com>
Tue, 20 Dec 2022 12:08:59 +0000 (13:08 +0100)
committerMatthias Springer <springerm@google.com>
Tue, 20 Dec 2022 12:10:12 +0000 (13:10 +0100)
Make sure that both functions populate patterns with the same functionality. Both should be refactored at some point so that canonicalization patterns are not populated.

Differential Revision: https://reviews.llvm.org/D140372

mlir/lib/Dialect/Linalg/Transforms/DropUnitDims.cpp

index e4b0593..8dc14ea 100644 (file)
@@ -686,6 +686,12 @@ void mlir::linalg::populateFoldUnitExtentDimsViaSlicesPatterns(
   patterns.add<ReplaceUnitExtents>(context,
                                    RankReductionStrategy::ExtractInsertSlice);
   patterns.add<FoldUnitDimLoops>(context);
+  // TODO: Patterns unrelated to unit dim folding should be factored out.
+  linalg::FillOp::getCanonicalizationPatterns(patterns, context);
+  tensor::EmptyOp::getCanonicalizationPatterns(patterns, context);
+  tensor::populateFoldTensorEmptyPatterns(patterns);
+  memref::populateResolveRankedShapeTypeResultDimsPatterns(patterns);
+  memref::populateResolveShapedTypeResultDimsPatterns(patterns);
 }
 
 void mlir::linalg::populateMoveInitOperandsToInputPattern(