[llvm] [BOLT][AArch64] Fix strict usage during ADR Relax (PR #71377)
Maksim Panchenko via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 10 12:37:20 PST 2024
================
@@ -72,14 +72,17 @@ void ADRRelaxationPass::runOnFunction(BinaryFunction &BF) {
if (It != BB.begin() && BC.MIB->isNoop(*std::prev(It))) {
It = BB.eraseInstruction(std::prev(It));
- } else if (opts::StrictMode && !BF.isSimple()) {
+ } else if (std::next(It) != BB.end() && BC.MIB->isNoop(*std::next(It))) {
+ BB.eraseInstruction(std::next(It));
+ } else if (!opts::StrictMode && !BF.isSimple()) {
----------------
maksfb wrote:
@yota9, I don't think it's safe to allow code size expansion for non-simple functions in strict mode. Do you remember why this change was needed?
https://github.com/llvm/llvm-project/pull/71377
More information about the llvm-commits
mailing list