|
11 | 11 | #include "mlir/IR/SymbolTable.h" |
12 | 12 | #include "mlir/Transforms/GreedyPatternRewriteDriver.h" |
13 | 13 | #include "mlir/Transforms/Passes.h" |
14 | | -#include "llvm/Support/CommandLine.h" |
15 | 14 |
|
16 | 15 | using namespace mlir; |
17 | 16 | using namespace circt; |
18 | 17 |
|
19 | | -extern llvm::cl::opt<int64_t> maxGreedyRewrites; |
20 | | - |
21 | 18 | //===----------------------------------------------------------------------===// |
22 | 19 | // Reduction Patterns |
23 | 20 | //===----------------------------------------------------------------------===// |
@@ -99,20 +96,23 @@ struct MakeSymbolsPrivate : public Reduction { |
99 | 96 | // Reduction Registration |
100 | 97 | //===----------------------------------------------------------------------===// |
101 | 98 |
|
102 | | -static std::unique_ptr<Pass> createSimpleCanonicalizerPass() { |
| 99 | +static std::unique_ptr<Pass> |
| 100 | +createSimpleCanonicalizerPass(std::optional<int64_t> maxNumRewrites) { |
103 | 101 | GreedyRewriteConfig config; |
104 | 102 | config.setUseTopDownTraversal(true); |
105 | 103 | config.setRegionSimplificationLevel( |
106 | 104 | mlir::GreedySimplifyRegionLevel::Disabled); |
107 | | - if (maxGreedyRewrites >= 0) |
108 | | - config.setMaxNumRewrites(maxGreedyRewrites); |
| 105 | + if (maxNumRewrites) |
| 106 | + config.setMaxNumRewrites(*maxNumRewrites); |
109 | 107 | return createCanonicalizerPass(config); |
110 | 108 | } |
111 | 109 |
|
112 | 110 | void circt::populateGenericReducePatterns(MLIRContext *context, |
113 | | - ReducePatternSet &patterns) { |
| 111 | + ReducePatternSet &patterns, |
| 112 | + std::optional<int64_t> maxNumRewrites) { |
114 | 113 | patterns.add<PassReduction, 103>(context, createSymbolDCEPass()); |
115 | | - patterns.add<PassReduction, 102>(context, createSimpleCanonicalizerPass()); |
| 114 | + patterns.add<PassReduction, 102>(context, |
| 115 | + createSimpleCanonicalizerPass(maxNumRewrites)); |
116 | 116 | patterns.add<PassReduction, 101>(context, createCSEPass()); |
117 | 117 | patterns.add<MakeSymbolsPrivate, 100>(); |
118 | 118 | patterns.add<UnusedSymbolPruner, 99>(); |
|
0 commit comments