[llvm] [BOLT][AArch64] Add support for LDR relaxation on LDRSl/LDRDl/LDRQl (PR #196983)
Rafael Auler via llvm-commits
llvm-commits at lists.llvm.org
Wed Aug 12 15:02:50 PDT 2026
rafaelauler wrote:
Another thing I forgot to mention is that the NOP ladder strategy where we replace a long ladder of NOPS with the long access sequence on non-simple functions is not very realistic. I understand it was an extension of the old code that would replace old instruction + one adjacent NOP with 2 instructions, but that was only a thing because the linker might have performed relaxation where it converts an original sequence of two instructions into one and, being a linker, it is not allowed to change offsets, so it is forced to insert a NOP in place of the old extra instruction. BOLT can then take advantage of that and re-use that tombstone NOP to convert back to the non-relaxed, long-range access pattern when it is important to not change offsets (non-simple functions). But that will just never happen in this new scenario where we need multiple instructions. It will just never trigger in reality, so feel free to drop it and just refuse to continue with an error I guess (fallback to the case where the NOPs are not there).
https://github.com/llvm/llvm-project/pull/196983
More information about the llvm-commits
mailing list