[Mlir-commits] [mlir] [MLIR] Add options to generate-runtime-verification to enable faster pass running (PR #160331)

Mehdi Amini llvmlistbot at llvm.org
Mon Oct 6 07:48:08 PDT 2025


================
@@ -36,10 +44,47 @@ void GenerateRuntimeVerificationPass::runOnOperation() {
     ops.push_back(verifiableOp);
   });
 
+  // Create error message generator based on verboseLevel
+  auto errorMsgGenerator = [vLevel = verboseLevel.getValue()](
+                               Operation *op, StringRef msg) -> std::string {
+    std::string buffer;
+    llvm::raw_string_ostream stream(buffer);
+    OpPrintingFlags flags;
+    // We may generate a lot of error messages and so we need to ensure the
+    // printing is fast.
+    flags.elideLargeElementsAttrs();
+    flags.printGenericOpForm();
+    flags.skipRegions();
+    flags.useLocalScope();
+    stream << "ERROR: Runtime op verification failed\n";
+    if (vLevel == 2) {
+      // print full op including operand names, very expensive
+      op->print(stream, flags);
+      stream << "\n " << msg;
+    } else if (vLevel == 1) {
+      // print op name and operand types
+      stream << "Op: " << op->getName().getStringRef() << "\n";
+      stream << "Operand Types:";
+      for (const auto &operand : op->getOpOperands()) {
+        stream << " " << operand.get().getType();
+      }
+      stream << "\n" << msg;
+      stream << "Result Types:";
+      for (const auto &result : op->getResults()) {
+        stream << " " << result.getType();
+      }
----------------
joker-eph wrote:

```suggestion
      for (const auto &result : op->getResults())
        stream << " " << result.getType();
```

Nit: no trivial braces (here and elsewhere)

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


More information about the Mlir-commits mailing list