[llvm] [BOLT][AArch64] Refuse to run RegReAssign pass (PR #194866)
via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 29 07:01:02 PDT 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-bolt
Author: Amina Chabane (Amichaxx)
<details>
<summary>Changes</summary>
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
---
Full diff: https://github.com/llvm/llvm-project/pull/194866.diff
2 Files Affected:
- (modified) bolt/lib/Passes/RegReAssign.cpp (+5)
- (modified) bolt/test/AArch64/unsupported-passes.test (+2)
``````````diff
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'
``````````
</details>
https://github.com/llvm/llvm-project/pull/194866
More information about the llvm-commits
mailing list