[Mlir-commits] [mlir] Improve mlir-query by adding matcher combinators (PR #141423)

Denzel-Brian Budii llvmlistbot at llvm.org
Tue May 27 08:51:09 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) {
----------------
chios202 wrote:

Thanks for the suggestion. Some space around & would be nicer too

https://github.com/llvm/llvm-project/pull/141423


More information about the Mlir-commits mailing list