[all-commits] [llvm/llvm-project] c6ee71: [BOLT][AArch64] Relax calls and branches with frag...
Alexandros Lamprineas via All-commits
all-commits at lists.llvm.org
Thu Sep 24 05:42:33 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: c6ee71d5e8a5d53a24539dcd2a098e02e4e38a05
https://github.com/llvm/llvm-project/commit/c6ee71d5e8a5d53a24539dcd2a098e02e4e38a05
Author: Alexandros Lamprineas <alexandros.lamprineas at arm.com>
Date: 2026-09-24 (Thu, 24 Sep 2026)
Changed paths:
M bolt/include/bolt/Core/BinaryContext.h
M bolt/include/bolt/Core/BinaryFunction.h
M bolt/include/bolt/Passes/LongJmp.h
M bolt/lib/Core/BinaryContext.cpp
M bolt/lib/Passes/LongJmp.cpp
M bolt/lib/Rewrite/RewriteInstance.cpp
A bolt/test/AArch64/relax-branches-with-thunk-chain.s
A bolt/test/AArch64/relax-call-long-thunk-reuse.s
A bolt/test/AArch64/relax-call-short-thunk-reuse.s
A bolt/test/AArch64/relax-calls.s
A bolt/test/AArch64/relax-cross-fragment-calls.s
R bolt/test/AArch64/relax-exp.s
Log Message:
-----------
[BOLT][AArch64] Relax calls and branches with fragment clusters (#215825)
Build relaxation clusters from emitted function fragments instead
of whole functions, so split hot/cold code is modeled in the order
it will be emitted. Use those clusters to place short and long call
thunks, and to build forward/backward thunk chains for in-layout
inter-cluster branches.
Rely on relaxLocalBranches() to lower short local branches to local
stubs first, then relax the remaining direct 28-bit edges. Warn and
leave out-of-layout unconditional branches unrelaxed; route
out-of-layout calls through long thunks.
This lets the experimental AArch64 relaxation path handle large
split binaries where direct call/branch relocations can cross the
+/-128 MiB range after BOLT changes the layout. By default, it
does not assume PLT entries are near emitted code.
Tested with stage2-clang-bolt and Chromium using Speedometer
profile data, with lite mode disabled and no assumptions about
PLT proximity.
Assisted-by: Codex
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list