@@ -1361,15 +1361,17 @@ struct TestLegalizePatternDriver
13611361 : public PassWrapper<TestLegalizePatternDriver, OperationPass<>> {
13621362 MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID (TestLegalizePatternDriver)
13631363
1364+ TestLegalizePatternDriver () = default ;
1365+ TestLegalizePatternDriver (const TestLegalizePatternDriver &other)
1366+ : PassWrapper(other) {}
1367+
13641368 StringRef getArgument () const final { return " test-legalize-patterns" ; }
13651369 StringRef getDescription () const final {
13661370 return " Run test dialect legalization patterns" ;
13671371 }
13681372 // / The mode of conversion to use with the driver.
13691373 enum class ConversionMode { Analysis, Full, Partial };
13701374
1371- TestLegalizePatternDriver (ConversionMode mode) : mode(mode) {}
1372-
13731375 void getDependentDialects (DialectRegistry ®istry) const override {
13741376 registry.insert <func::FuncDialect, test::TestDialect>();
13751377 }
@@ -1498,24 +1500,19 @@ struct TestLegalizePatternDriver
14981500 op->emitRemark () << " op '" << op->getName () << " ' is legalizable" ;
14991501 }
15001502
1501- // / The mode of conversion to use.
1502- ConversionMode mode;
1503+ Option<ConversionMode> mode{
1504+ *this , " test-legalize-mode" ,
1505+ llvm::cl::desc (" The legalization mode to use with the test driver" ),
1506+ llvm::cl::init (ConversionMode::Partial),
1507+ llvm::cl::values (
1508+ clEnumValN (ConversionMode::Analysis, " analysis" ,
1509+ " Perform an analysis conversion" ),
1510+ clEnumValN (ConversionMode::Full, " full" , " Perform a full conversion" ),
1511+ clEnumValN (ConversionMode::Partial, " partial" ,
1512+ " Perform a partial conversion" ))};
15031513};
15041514} // namespace
15051515
1506- static llvm::cl::opt<TestLegalizePatternDriver::ConversionMode>
1507- legalizerConversionMode (
1508- " test-legalize-mode" ,
1509- llvm::cl::desc (" The legalization mode to use with the test driver" ),
1510- llvm::cl::init(TestLegalizePatternDriver::ConversionMode::Partial),
1511- llvm::cl::values(
1512- clEnumValN (TestLegalizePatternDriver::ConversionMode::Analysis,
1513- " analysis" , " Perform an analysis conversion" ),
1514- clEnumValN(TestLegalizePatternDriver::ConversionMode::Full, " full" ,
1515- " Perform a full conversion" ),
1516- clEnumValN(TestLegalizePatternDriver::ConversionMode::Partial,
1517- " partial" , " Perform a partial conversion" )));
1518-
15191516// ===----------------------------------------------------------------------===//
15201517// ConversionPatternRewriter::getRemappedValue testing. This method is used
15211518// to get the remapped value of an original value that was replaced using
@@ -2201,9 +2198,7 @@ void registerPatternsTestPass() {
22012198 PassRegistration<TestStrictPatternDriver>();
22022199 PassRegistration<TestWalkPatternDriver>();
22032200
2204- PassRegistration<TestLegalizePatternDriver>([] {
2205- return std::make_unique<TestLegalizePatternDriver>(legalizerConversionMode);
2206- });
2201+ PassRegistration<TestLegalizePatternDriver>();
22072202
22082203 PassRegistration<TestRemappedValue>();
22092204
0 commit comments