Skip to content

Commit 292fd90

Browse files
[mlir][test] Turn test-legalize-mode into a pass option (#150767)
The `test-legalize-mode` option is used only by the `test-legalize-patterns` pass.
1 parent f2fe471 commit 292fd90

File tree

3 files changed

+17
-22
lines changed

3 files changed

+17
-22
lines changed

mlir/test/Transforms/test-legalizer-analysis.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: mlir-opt -allow-unregistered-dialect -test-legalize-patterns -verify-diagnostics -test-legalize-mode=analysis %s | FileCheck %s
1+
// RUN: mlir-opt -allow-unregistered-dialect -test-legalize-patterns="test-legalize-mode=analysis" -verify-diagnostics %s | FileCheck %s
22
// expected-remark@-2 {{op 'builtin.module' is legalizable}}
33

44
// expected-remark@+1 {{op 'func.func' is legalizable}}

mlir/test/Transforms/test-legalizer-full.mlir

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: mlir-opt -allow-unregistered-dialect -test-legalize-patterns -test-legalize-mode=full -split-input-file -verify-diagnostics %s | FileCheck %s
1+
// RUN: mlir-opt -allow-unregistered-dialect -test-legalize-patterns="test-legalize-mode=full" -split-input-file -verify-diagnostics %s | FileCheck %s
22

33
// CHECK-LABEL: func @multi_level_mapping
44
func.func @multi_level_mapping() {

mlir/test/lib/Dialect/Test/TestPatterns.cpp

Lines changed: 15 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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 &registry) 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

Comments
 (0)