[llvm] [BOLT][AArch64] Refuse to run RegReAssign pass (PR #194866)
Amina Chabane via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 29 07:00:22 PDT 2026
https://github.com/Amichaxx created https://github.com/llvm/llvm-project/pull/194866
RegReAssign hits an unreachable on AArch64 as it is a pass (conceptually) specific to X86.
- Add a guard to RegReAssign for non-X86
- Update unsupported-passes.test
>From 3dc61186cae26cb2d86ee7359d1d90d540234bbe Mon Sep 17 00:00:00 2001
From: Amichaxx <amina.chabane at arm.com>
Date: Wed, 29 Apr 2026 13:52:09 +0000
Subject: [PATCH] [BOLT][AArch64] Refuse to run RegReAssign pass
RegReAssign hits an unreachable on AArch64 as it is a pass
specific to X86.
---
bolt/lib/Passes/RegReAssign.cpp | 5 +++++
bolt/test/AArch64/unsupported-passes.test | 2 ++
2 files changed, 7 insertions(+)
diff --git a/bolt/lib/Passes/RegReAssign.cpp b/bolt/lib/Passes/RegReAssign.cpp
index 54eff51bfee68..85c01ee6e2558 100644
--- a/bolt/lib/Passes/RegReAssign.cpp
+++ b/bolt/lib/Passes/RegReAssign.cpp
@@ -449,6 +449,11 @@ void RegReAssign::setupConservativePass(
}
Error RegReAssign::runOnFunctions(BinaryContext &BC) {
+ if (!BC.isX86()) {
+ BC.errs() << "BOLT-ERROR: " << getName() << " is supported only on X86\n";
+ exit(1);
+ }
+
RegScore = std::vector<int64_t>(BC.MRI->getNumRegs(), 0);
RankedRegs = std::vector<size_t>(BC.MRI->getNumRegs(), 0);
diff --git a/bolt/test/AArch64/unsupported-passes.test b/bolt/test/AArch64/unsupported-passes.test
index 58dcb89e6596f..aba9a9e2ac0a9 100644
--- a/bolt/test/AArch64/unsupported-passes.test
+++ b/bolt/test/AArch64/unsupported-passes.test
@@ -15,7 +15,9 @@ CHECK-INDIRECT-CALL-PROMOTION: BOLT-ERROR: indirect-call-promotion is supported
// Passes specific to X86 arch
RUN: not llvm-bolt %t -o %t.bolt --cmov-conversion 2>&1 | FileCheck %s --check-prefix=CHECK-CMOV-CONV
+RUN: not llvm-bolt %t -o %t.bolt --reg-reassign 2>&1 | FileCheck %s --check-prefix=CHECK-REG-REASSIGN
CHECK-CMOV-CONV: BOLT-ERROR: CMOV conversion is supported only on X86
+CHECK-REG-REASSIGN: BOLT-ERROR: regreassign is supported only on X86
RUN: not llvm-bolt %t -o %t.bolt split-functions --split-strategy=cdsplit 2>&1 | FileCheck %s --check-prefix=CHECK-CDSPLIT
CHECK-CDSPLIT: BOLT-ERROR: CDSplit is not supported with LongJmp. Try with '--compact-code-model'
More information about the llvm-commits
mailing list