Make Linalg tiling a FunctionPass instead of a ModulePass - NFC
authorNicolas Vasilache <ntv@google.com>
Wed, 15 May 2019 07:53:01 +0000 (00:53 -0700)
committerMehdi Amini <joker.eph@gmail.com>
Mon, 20 May 2019 20:42:47 +0000 (13:42 -0700)
--

PiperOrigin-RevId: 248286354

mlir/include/mlir/Linalg/Passes.h
mlir/lib/Linalg/Transforms/Tiling.cpp

index 2825139..0e3a86b 100644 (file)
 #include "llvm/ADT/ArrayRef.h"
 
 namespace mlir {
+class FunctionPassBase;
 class ModulePassBase;
 
 namespace linalg {
-ModulePassBase *createLinalgTilingPass(ArrayRef<int64_t> tileSizes = {});
+FunctionPassBase *createLinalgTilingPass(ArrayRef<int64_t> tileSizes = {});
 
 ModulePassBase *createLowerLinalgToLLVMPass();
-
 } // namespace linalg
 } // namespace mlir
 
index ff6f02f..483b6d3 100644 (file)
@@ -331,14 +331,11 @@ static void tileLinalgOps(Function &f, ArrayRef<int64_t> tileSizes) {
 }
 
 namespace {
-struct LinalgTilingPass : public ModulePass<LinalgTilingPass> {
+struct LinalgTilingPass : public FunctionPass<LinalgTilingPass> {
   LinalgTilingPass();
   LinalgTilingPass(ArrayRef<int64_t> sizes);
 
-  void runOnModule() {
-    for (auto &f : getModule())
-      tileLinalgOps(f, tileSizes);
-  }
+  void runOnFunction() { tileLinalgOps(getFunction(), tileSizes); }
 
   SmallVector<int64_t, 8> tileSizes;
 };
@@ -353,7 +350,7 @@ LinalgTilingPass::LinalgTilingPass(ArrayRef<int64_t> sizes)
     this->tileSizes.assign(sizes.begin(), sizes.end());
 }
 
-ModulePassBase *
+FunctionPassBase *
 mlir::linalg::createLinalgTilingPass(ArrayRef<int64_t> tileSizes) {
   return new LinalgTilingPass(tileSizes);
 }