Index: tools/llvm-exegesis/llvm-exegesis.cpp =================================================================== --- tools/llvm-exegesis/llvm-exegesis.cpp +++ tools/llvm-exegesis/llvm-exegesis.cpp @@ -200,7 +200,7 @@ llvm::errs() << "unknown target '" << Points[0].LLVMTriple << "'\n"; return; } - const auto Clustering = llvm::cantFail(InstructionBenchmarkClustering::create( + const auto Clustering = ExitOnErr(InstructionBenchmarkClustering::create( Points, AnalysisNumPoints, AnalysisEpsilon)); const Analysis Analyzer(*TheTarget, Clustering); @@ -217,6 +217,12 @@ int main(int Argc, char **Argv) { llvm::cl::ParseCommandLineOptions(Argc, Argv, ""); + exegesis::ExitOnErr.setExitCodeMapper([](const llvm::Error &Err) { + if (Err.isA()) + return EXIT_SUCCESS; + return 1; + }); + if (BenchmarkMode == BenchmarkModeE::Analysis) { exegesis::analysisMain(); } else {