Skip to content

Commit c5f1761

Browse files
committed
Move to registryData
1 parent e3150e2 commit c5f1761

File tree

4 files changed

+36
-32
lines changed

4 files changed

+36
-32
lines changed

mlir/include/mlir/Query/QuerySession.h

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@ class QuerySession {
2121
public:
2222
QuerySession(Operation *rootOp,
2323
const std::shared_ptr<llvm::SourceMgr> &sourceMgr,
24-
unsigned bufferId,
25-
const mlir::query::matcher::RegistryMaps &registryData)
24+
unsigned bufferId, const matcher::RegistryMaps &registryData)
2625
: rootOp(rootOp), sourceMgr(sourceMgr), bufferId(bufferId),
2726
registryData(registryData), terminate(false) {}
2827

@@ -33,7 +32,7 @@ class QuerySession {
3332
Operation *rootOp;
3433
const std::shared_ptr<llvm::SourceMgr> sourceMgr;
3534
unsigned bufferId;
36-
const mlir::query::matcher::RegistryMaps &registryData;
35+
const matcher::RegistryMaps &registryData;
3736
bool terminate;
3837
llvm::StringMap<matcher::VariantValue> namedValues;
3938
};

mlir/include/mlir/Tools/mlir-query/MlirQueryMain.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,16 @@
1414
#ifndef MLIR_TOOLS_MLIRQUERY_MLIRQUERYMAIN_H
1515
#define MLIR_TOOLS_MLIRQUERY_MLIRQUERYMAIN_H
1616

17+
#include "mlir/Query/Matcher/Registry.h"
1718
#include "mlir/Support/LogicalResult.h"
1819

1920
namespace mlir {
2021

2122
class MLIRContext;
2223

23-
LogicalResult mlirQueryMain(int argc, char **argv, MLIRContext &context);
24+
LogicalResult
25+
mlirQueryMain(int argc, char **argv, MLIRContext &context,
26+
const mlir::query::matcher::RegistryMaps &registryData);
2427

2528
} // namespace mlir
2629

mlir/lib/Tools/mlir-query/MlirQueryMain.cpp

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
//===----------------------------------------------------------------------===//
1414

1515
#include "mlir/Tools/mlir-query/MlirQueryMain.h"
16-
#include "mlir/IR/Matchers.h"
17-
#include "mlir/Query/Matcher/Registry.h"
1816
#include "mlir/Query/QueryParser.h"
1917
#include "mlir/Support/FileUtilities.h"
2018
#include "mlir/Support/LogicalResult.h"
@@ -28,8 +26,9 @@
2826
// Query Parser
2927
//===----------------------------------------------------------------------===//
3028

31-
mlir::LogicalResult mlir::mlirQueryMain(int argc, char **argv,
32-
MLIRContext &context) {
29+
mlir::LogicalResult
30+
mlir::mlirQueryMain(int argc, char **argv, MLIRContext &context,
31+
const mlir::query::matcher::RegistryMaps &registryData) {
3332

3433
// Override the default '-h' and use the default PrintHelpMessage() which
3534
// won't print options in categories.
@@ -86,29 +85,6 @@ mlir::LogicalResult mlir::mlirQueryMain(int argc, char **argv,
8685
if (!opRef)
8786
return failure();
8887

89-
mlir::query::matcher::RegistryMaps registryData;
90-
91-
// This is needed because these matchers are defined as overloaded functions.
92-
using IsConstantOp = mlir::detail::constant_op_matcher();
93-
using HasOpAttrName = mlir::detail::AttrOpMatcher(StringRef);
94-
using HasOpName = mlir::detail::NameOpMatcher(StringRef);
95-
96-
// Matchers registered in alphabetical order for consistency:
97-
registryData.registerMatcher("hasOpAttrName",
98-
static_cast<HasOpAttrName *>(m_Attr));
99-
registryData.registerMatcher("hasOpName", static_cast<HasOpName *>(m_Op));
100-
registryData.registerMatcher("isConstantOp",
101-
static_cast<IsConstantOp *>(m_Constant));
102-
registryData.registerMatcher("isNegInfFloat", m_NegInfFloat);
103-
registryData.registerMatcher("isNegZeroFloat", m_NegZeroFloat);
104-
registryData.registerMatcher("isNonZero", m_NonZero);
105-
registryData.registerMatcher("isOne", m_One);
106-
registryData.registerMatcher("isOneFloat", m_OneFloat);
107-
registryData.registerMatcher("isPosInfFloat", m_PosInfFloat);
108-
registryData.registerMatcher("isPosZeroFloat", m_PosZeroFloat);
109-
registryData.registerMatcher("isZero", m_Zero);
110-
registryData.registerMatcher("isZeroFloat", m_AnyZeroFloat);
111-
11288
mlir::query::QuerySession QS(opRef.get(), sourceMgr, bufferId, registryData);
11389
if (!commands.empty()) {
11490
for (auto &command : commands) {

mlir/tools/mlir-query/mlir-query.cpp

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,18 @@
1313

1414
#include "mlir/IR/Dialect.h"
1515
#include "mlir/IR/MLIRContext.h"
16+
#include "mlir/IR/Matchers.h"
1617
#include "mlir/InitAllDialects.h"
18+
#include "mlir/Query/Matcher/Registry.h"
1719
#include "mlir/Tools/mlir-query/MlirQueryMain.h"
1820

1921
using namespace mlir;
2022

23+
// This is needed because these matchers are defined as overloaded functions.
24+
using HasOpAttrName = detail::AttrOpMatcher(StringRef);
25+
using HasOpName = detail::NameOpMatcher(StringRef);
26+
using IsConstantOp = detail::constant_op_matcher();
27+
2128
namespace test {
2229
#ifdef MLIR_INCLUDE_TESTS
2330
void registerTestDialect(DialectRegistry &);
@@ -28,10 +35,29 @@ int main(int argc, char **argv) {
2835

2936
DialectRegistry registry;
3037
registerAllDialects(registry);
38+
39+
query::matcher::RegistryMaps registryData;
40+
41+
// Matchers registered in alphabetical order for consistency:
42+
registryData.registerMatcher("hasOpAttrName",
43+
static_cast<HasOpAttrName *>(m_Attr));
44+
registryData.registerMatcher("hasOpName", static_cast<HasOpName *>(m_Op));
45+
registryData.registerMatcher("isConstantOp",
46+
static_cast<IsConstantOp *>(m_Constant));
47+
registryData.registerMatcher("isNegInfFloat", m_NegInfFloat);
48+
registryData.registerMatcher("isNegZeroFloat", m_NegZeroFloat);
49+
registryData.registerMatcher("isNonZero", m_NonZero);
50+
registryData.registerMatcher("isOne", m_One);
51+
registryData.registerMatcher("isOneFloat", m_OneFloat);
52+
registryData.registerMatcher("isPosInfFloat", m_PosInfFloat);
53+
registryData.registerMatcher("isPosZeroFloat", m_PosZeroFloat);
54+
registryData.registerMatcher("isZero", m_Zero);
55+
registryData.registerMatcher("isZeroFloat", m_AnyZeroFloat);
56+
3157
#ifdef MLIR_INCLUDE_TESTS
3258
test::registerTestDialect(registry);
3359
#endif
3460
MLIRContext context(registry);
3561

36-
return failed(mlirQueryMain(argc, argv, context));
62+
return failed(mlirQueryMain(argc, argv, context, registryData));
3763
}

0 commit comments

Comments
 (0)