[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