[mlir][sparse] convert function pass to module pass
authorAart Bik <ajcbik@google.com>
Sat, 20 Feb 2021 01:58:08 +0000 (17:58 -0800)
committerAart Bik <ajcbik@google.com>
Sat, 20 Feb 2021 04:04:02 +0000 (20:04 -0800)
Rationale:
Touching function level information can only be done within a module pass.

Reviewed By: mehdi_amini

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

mlir/test/lib/Transforms/TestSparsification.cpp

index bbaf1f8..72c8f7b 100644 (file)
@@ -17,7 +17,7 @@ using namespace mlir;
 namespace {
 
 struct TestSparsification
-    : public PassWrapper<TestSparsification, FunctionPass> {
+    : public PassWrapper<TestSparsification, OperationPass<ModuleOp>> {
 
   TestSparsification() = default;
   TestSparsification(const TestSparsification &pass) {}
@@ -99,7 +99,7 @@ struct TestSparsification
   }
 
   /// Runs the test on a function.
-  void runOnFunction() override {
+  void runOnOperation() override {
     auto *ctx = &getContext();
     OwningRewritePatternList patterns;
     // Translate strategy flags to strategy options.
@@ -109,7 +109,7 @@ struct TestSparsification
     // Apply rewriting.
     linalg::populateSparsificationPatterns(ctx, patterns, options);
     vector::populateVectorToVectorCanonicalizationPatterns(patterns, ctx);
-    (void)applyPatternsAndFoldGreedily(getFunction(), std::move(patterns));
+    (void)applyPatternsAndFoldGreedily(getOperation(), std::move(patterns));
     // Lower sparse primitives to calls into runtime support library.
     if (lower) {
       OwningRewritePatternList conversionPatterns;