[MLIR] Print more user-friendly error message when generating local reproducer and threading is enabled (#144905)

This commit is contained in:
Artemiy Bulavin
2025-06-20 13:45:17 +01:00
committed by GitHub
parent 6c0ac888c5
commit 6edf2eb364
2 changed files with 15 additions and 0 deletions

View File

@@ -146,6 +146,14 @@ LogicalResult mlir::applyPassManagerCLOptions(PassManager &pm) {
if (!options.isConstructed())
return failure();
if (options->reproducerFile.getNumOccurrences() && options->localReproducer &&
pm.getContext()->isMultithreadingEnabled()) {
emitError(UnknownLoc::get(pm.getContext()))
<< "Local crash reproduction may not be used without disabling "
"mutli-threading first.";
return failure();
}
// Generate a reproducer on crash/failure.
if (options->reproducerFile.getNumOccurrences())
pm.enableCrashReproducerGeneration(options->reproducerFile,

View File

@@ -0,0 +1,7 @@
// Test that attempting to create a local crash reproducer without disabling threading
// prints an error from the pass manager (as opposed to crashing with a stack trace).
// RUN: mlir-opt --verify-diagnostics --mlir-pass-pipeline-local-reproducer \
// RUN: --mlir-pass-pipeline-crash-reproducer=%t %s
// expected-error@unknown {{Local crash reproduction may not be used without disabling mutli-threading first.}}