[llvm] [BOLT][AArch64] Refuse to run simplify-rodata-loads pass (PR #195115)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 30 08:58:22 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-bolt
Author: Amina Chabane (Amichaxx)
<details>
<summary>Changes</summary>
`--simplify-rodata-loads` on AArch64 hits an unreachable because AArch64 does not implement replaceMemOperandWithImm.
- Add a guard to simplify-rodata-loads
- Update unsupported-passes.test
---
Full diff: https://github.com/llvm/llvm-project/pull/195115.diff
2 Files Affected:
- (modified) bolt/lib/Passes/BinaryPasses.cpp (+5)
- (modified) bolt/test/AArch64/unsupported-passes.test (+2)
``````````diff
diff --git a/bolt/lib/Passes/BinaryPasses.cpp b/bolt/lib/Passes/BinaryPasses.cpp
index 480d0cef58f43..7f9f31396d75e 100644
--- a/bolt/lib/Passes/BinaryPasses.cpp
+++ b/bolt/lib/Passes/BinaryPasses.cpp
@@ -1295,6 +1295,11 @@ bool SimplifyRODataLoads::simplifyRODataLoads(BinaryFunction &BF) {
}
Error SimplifyRODataLoads::runOnFunctions(BinaryContext &BC) {
+ if (!BC.isX86()) {
+ BC.errs() << "BOLT-ERROR: " << getName() << " is supported only on X86\n";
+ exit(1);
+ }
+
for (auto &It : BC.getBinaryFunctions()) {
BinaryFunction &Function = It.second;
if (shouldOptimize(Function) && simplifyRODataLoads(Function))
diff --git a/bolt/test/AArch64/unsupported-passes.test b/bolt/test/AArch64/unsupported-passes.test
index ef3e434c4ba06..056aacb0b4638 100644
--- a/bolt/test/AArch64/unsupported-passes.test
+++ b/bolt/test/AArch64/unsupported-passes.test
@@ -7,11 +7,13 @@ RUN: not llvm-bolt %t -o %t.bolt --frame-opt=all 2>&1 | FileCheck %s --check-pre
RUN: not llvm-bolt %t -o %t.bolt --three-way-branch 2>&1 | FileCheck %s --check-prefix=CHECK-THREE-WAY
RUN: not llvm-bolt %t -o %t.bolt --jt-footprint-reduction 2>&1 | FileCheck %s --check-prefix=CHECK-JT-FOOTPRINT-REDUCTION
RUN: not llvm-bolt %t -o %t.bolt --indirect-call-promotion=all 2>&1 | FileCheck %s --check-prefix=CHECK-INDIRECT-CALL-PROMOTION
+RUN: not llvm-bolt %t -o %t.bolt --simplify-rodata-loads 2>&1 | FileCheck %s --check-prefix=CHECK-SIMPLIFY-RODATA-LOADS
CHECK-FRAME-OPT: BOLT-ERROR: frame-optimizer is supported only on X86
CHECK-THREE-WAY: BOLT-ERROR: three way branch is supported only on X86
CHECK-JT-FOOTPRINT-REDUCTION: BOLT-ERROR: jt-footprint-reduction is supported only on X86
CHECK-INDIRECT-CALL-PROMOTION: BOLT-ERROR: indirect-call-promotion is supported only on X86
+CHECK-SIMPLIFY-RODATA-LOADS: BOLT-ERROR: simplify-read-only-loads is supported only on X86
// Passes specific to X86 arch
RUN: not llvm-bolt %t -o %t.bolt --cmov-conversion 2>&1 | FileCheck %s --check-prefix=CHECK-CMOV-CONV
``````````
</details>
https://github.com/llvm/llvm-project/pull/195115
More information about the llvm-commits
mailing list