[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:
parent
a952d7291e
commit
f32b3401e1
|
@ -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;
|
||||
|
|
Loading…
Reference in a new issue