[llvm] llvm-reduce: Make run-ir-passes error more consistent (PR #133564)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Sat Mar 29 00:11:22 PDT 2025


https://github.com/arsenm updated https://github.com/llvm/llvm-project/pull/133564

>From 7747fd7973fe4af08f02a2d1c9ee2e281eb6bb2c Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Sat, 29 Mar 2025 11:00:26 +0700
Subject: [PATCH] llvm-reduce: Make run-ir-passes error more consistent

Avoid capitalized Error. This loses the "Error constructing pass pipeline"
part, and just forwards the error to the default report_fatal_error case. Not
sure if it's worth trying to keep.
---
 .../tools/llvm-reduce/run-ir-passes-error.ll   | 18 ++++++++++++++++++
 llvm/tools/llvm-reduce/deltas/RunIRPasses.cpp  |  6 ++----
 2 files changed, 20 insertions(+), 4 deletions(-)
 create mode 100644 llvm/test/tools/llvm-reduce/run-ir-passes-error.ll

diff --git a/llvm/test/tools/llvm-reduce/run-ir-passes-error.ll b/llvm/test/tools/llvm-reduce/run-ir-passes-error.ll
new file mode 100644
index 0000000000000..772555d1ec5fb
--- /dev/null
+++ b/llvm/test/tools/llvm-reduce/run-ir-passes-error.ll
@@ -0,0 +1,18 @@
+; RUN: not llvm-reduce --abort-on-invalid-reduction --delta-passes=ir-passes --ir-passes=does-not-parse --test FileCheck --test-arg --check-prefixes=CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o /dev/null 2>&1 | FileCheck -check-prefix=ERR %s
+
+; CHECK-INTERESTINGNESS-LABEL: @f1
+; ERR: LLVM ERROR: unknown pass name 'does-not-parse'
+
+define i32 @f1(i32 %a) {
+  %b = add i32 %a, 5
+  %c = add i32 %b, 5
+  ret i32 %c
+}
+
+define i32 @f2(i32 %a) {
+  %b = add i32 %a, 5
+  %c = add i32 %b, 5
+  ret i32 %c
+}
+
+declare void @f3()
diff --git a/llvm/tools/llvm-reduce/deltas/RunIRPasses.cpp b/llvm/tools/llvm-reduce/deltas/RunIRPasses.cpp
index e3af05616fe04..f31c5d86dad1e 100644
--- a/llvm/tools/llvm-reduce/deltas/RunIRPasses.cpp
+++ b/llvm/tools/llvm-reduce/deltas/RunIRPasses.cpp
@@ -43,10 +43,8 @@ static void runPasses(Oracle &O, ReducerWorkItem &WorkItem) {
   PB.crossRegisterProxies(LAM, FAM, CGAM, MAM);
 
   ModulePassManager MPM;
-  if (auto Err = PB.parsePassPipeline(MPM, PassPipeline)) {
-    errs() << toString(std::move(Err)) << "\n";
-    report_fatal_error("Error constructing pass pipeline");
-  }
+  if (auto Err = PB.parsePassPipeline(MPM, PassPipeline))
+    report_fatal_error(std::move(Err), false);
   MPM.run(Program, MAM);
 }
 



More information about the llvm-commits mailing list