[Mlir-commits] [mlir] Improve mlir-query by adding matcher combinators (PR #141423)
Jacques Pienaar
llvmlistbot at llvm.org
Mon May 26 08:43:35 PDT 2025
================
@@ -27,12 +27,66 @@ class VariantMatcher::SinglePayload : public VariantMatcher::Payload {
DynMatcher matcher;
};
+class VariantMatcher::VariadicOpPayload : public VariantMatcher::Payload {
+public:
+ VariadicOpPayload(DynMatcher::VariadicOperator varOp,
+ std::vector<VariantMatcher> args)
+ : varOp(varOp), args(std::move(args)) {}
+
+ std::optional<DynMatcher> getDynMatcher() const override {
+ std::vector<DynMatcher> dynMatchers;
+ for (auto variantMatcher : args) {
+ std::optional<DynMatcher> dynMatcher = variantMatcher.getDynMatcher();
+ if (dynMatcher)
+ dynMatchers.push_back(dynMatcher.value());
+ }
+ auto result = DynMatcher::constructVariadic(varOp, dynMatchers);
+ return *result;
+ }
+
+ std::string getTypeAsString() const override {
+ std::string inner;
+ for (size_t i = 0, e = args.size(); i != e; ++i) {
----------------
jpienaar wrote:
llvm::interleave could help here. Is spaces needed around the & ?
https://github.com/llvm/llvm-project/pull/141423
More information about the Mlir-commits
mailing list