@@ -1361,15 +1361,17 @@ struct TestLegalizePatternDriver
1361
1361
: public PassWrapper<TestLegalizePatternDriver, OperationPass<>> {
1362
1362
MLIR_DEFINE_EXPLICIT_INTERNAL_INLINE_TYPE_ID (TestLegalizePatternDriver)
1363
1363
1364
+ TestLegalizePatternDriver () = default ;
1365
+ TestLegalizePatternDriver (const TestLegalizePatternDriver &other)
1366
+ : PassWrapper(other) {}
1367
+
1364
1368
StringRef getArgument () const final { return " test-legalize-patterns" ; }
1365
1369
StringRef getDescription () const final {
1366
1370
return " Run test dialect legalization patterns" ;
1367
1371
}
1368
1372
// / The mode of conversion to use with the driver.
1369
1373
enum class ConversionMode { Analysis, Full, Partial };
1370
1374
1371
- TestLegalizePatternDriver (ConversionMode mode) : mode(mode) {}
1372
-
1373
1375
void getDependentDialects (DialectRegistry ®istry) const override {
1374
1376
registry.insert <func::FuncDialect, test::TestDialect>();
1375
1377
}
@@ -1498,24 +1500,19 @@ struct TestLegalizePatternDriver
1498
1500
op->emitRemark () << " op '" << op->getName () << " ' is legalizable" ;
1499
1501
}
1500
1502
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" ))};
1503
1513
};
1504
1514
} // namespace
1505
1515
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
-
1519
1516
// ===----------------------------------------------------------------------===//
1520
1517
// ConversionPatternRewriter::getRemappedValue testing. This method is used
1521
1518
// to get the remapped value of an original value that was replaced using
@@ -2201,9 +2198,7 @@ void registerPatternsTestPass() {
2201
2198
PassRegistration<TestStrictPatternDriver>();
2202
2199
PassRegistration<TestWalkPatternDriver>();
2203
2200
2204
- PassRegistration<TestLegalizePatternDriver>([] {
2205
- return std::make_unique<TestLegalizePatternDriver>(legalizerConversionMode);
2206
- });
2201
+ PassRegistration<TestLegalizePatternDriver>();
2207
2202
2208
2203
PassRegistration<TestRemappedValue>();
2209
2204
0 commit comments