[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