@@ -29,8 +29,7 @@ struct Canonicalizer : public impl::CanonicalizerBase<Canonicalizer> {
2929 Canonicalizer () = default ;
3030 Canonicalizer (const GreedyRewriteConfig &config,
3131 ArrayRef<std::string> disabledPatterns,
32- ArrayRef<std::string> enabledPatterns)
33- : config(config) {
32+ ArrayRef<std::string> enabledPatterns) {
3433 this ->topDownProcessingEnabled = config.useTopDownTraversal ;
3534 this ->enableRegionSimplification = config.enableRegionSimplification ;
3635 this ->maxIterations = config.maxIterations ;
@@ -42,31 +41,30 @@ struct Canonicalizer : public impl::CanonicalizerBase<Canonicalizer> {
4241 // / Initialize the canonicalizer by building the set of patterns used during
4342 // / execution.
4443 LogicalResult initialize (MLIRContext *context) override {
45- // Set the config from possible pass options set in the meantime.
46- config.useTopDownTraversal = topDownProcessingEnabled;
47- config.enableRegionSimplification = enableRegionSimplification;
48- config.maxIterations = maxIterations;
49- config.maxNumRewrites = maxNumRewrites;
50-
5144 RewritePatternSet owningPatterns (context);
5245 for (auto *dialect : context->getLoadedDialects ())
5346 dialect->getCanonicalizationPatterns (owningPatterns);
5447 for (RegisteredOperationName op : context->getRegisteredOperations ())
5548 op.getCanonicalizationPatterns (owningPatterns, context);
5649
57- patterns = std::make_shared<FrozenRewritePatternSet>(
58- std::move (owningPatterns), disabledPatterns, enabledPatterns);
50+ patterns = FrozenRewritePatternSet ( std::move (owningPatterns),
51+ disabledPatterns, enabledPatterns);
5952 return success ();
6053 }
6154 void runOnOperation () override {
55+ GreedyRewriteConfig config;
56+ config.useTopDownTraversal = topDownProcessingEnabled;
57+ config.enableRegionSimplification = enableRegionSimplification;
58+ config.maxIterations = maxIterations;
59+ config.maxNumRewrites = maxNumRewrites;
6260 LogicalResult converged =
63- applyPatternsAndFoldGreedily (getOperation (), * patterns, config);
61+ applyPatternsAndFoldGreedily (getOperation (), patterns, config);
6462 // Canonicalization is best-effort. Non-convergence is not a pass failure.
6563 if (testConvergence && failed (converged))
6664 signalPassFailure ();
6765 }
68- GreedyRewriteConfig config;
69- std::shared_ptr< const FrozenRewritePatternSet> patterns;
66+
67+ FrozenRewritePatternSet patterns;
7068};
7169} // namespace
7270
0 commit comments