[MLIR][Linalg] Avoid forward declaration in `Loops.cpp`
authorFrederik Gossen <frgossen@google.com>
Mon, 3 May 2021 19:05:43 +0000 (21:05 +0200)
committerFrederik Gossen <frgossen@google.com>
Mon, 3 May 2021 19:06:50 +0000 (21:06 +0200)
Differential Revision: https://reviews.llvm.org/D101771

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

index f03e590..aa0297f 100644 (file)
@@ -590,22 +590,6 @@ struct TiledLoopToSCFPattern : public OpRewritePattern<TiledLoopOp> {
   }
 };
 
-struct FoldAffineOp;
-} // namespace
-
-template <typename LoopType>
-static void lowerLinalgToLoopsImpl(FuncOp funcOp) {
-  MLIRContext *context = funcOp.getContext();
-  RewritePatternSet patterns(context);
-  patterns.add<LinalgRewritePattern<LoopType>>(context);
-  memref::DimOp::getCanonicalizationPatterns(patterns, context);
-  AffineApplyOp::getCanonicalizationPatterns(patterns, context);
-  patterns.add<FoldAffineOp>(context);
-  // Just apply the patterns greedily.
-  (void)applyPatternsAndFoldGreedily(funcOp, std::move(patterns));
-}
-
-namespace {
 /// Local folding pattern for AffineApplyOp that we can apply greedily.
 /// This replaces AffineApplyOp by the proper value in cases where the
 /// associated map is trivial.
@@ -643,6 +627,18 @@ struct FoldAffineOp : public RewritePattern {
   }
 };
 
+template <typename LoopType>
+static void lowerLinalgToLoopsImpl(FuncOp funcOp) {
+  MLIRContext *context = funcOp.getContext();
+  RewritePatternSet patterns(context);
+  patterns.add<LinalgRewritePattern<LoopType>>(context);
+  memref::DimOp::getCanonicalizationPatterns(patterns, context);
+  AffineApplyOp::getCanonicalizationPatterns(patterns, context);
+  patterns.add<FoldAffineOp>(context);
+  // Just apply the patterns greedily.
+  (void)applyPatternsAndFoldGreedily(funcOp, std::move(patterns));
+}
+
 struct LowerToAffineLoops
     : public LinalgLowerToAffineLoopsBase<LowerToAffineLoops> {
   void getDependentDialects(DialectRegistry &registry) const override {