[mlir][sparse] convert function pass to module pass

Rationale:
Touching function level information can only be done within a module pass.

Reviewed By: mehdi_amini

Differential Revision: https://reviews.llvm.org/D97102
This commit is contained in:
Aart Bik 2021-02-19 17:58:08 -08:00
parent a952d7291e
commit f32b3401e1

View 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;