aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/LoopVersioning.cpp
diff options
context:
space:
mode:
authorDaniel Bertalan <dani@danielbertalan.dev>2022-08-15 09:26:28 +0200
committerDaniel Bertalan <dani@danielbertalan.dev>2022-10-04 11:48:45 +0200
commit0d30e92f59589de44a185c53671b7fe2e83cd2ae (patch)
treecae42de35ab6c2c40418eeb10a8d107b7847a50d /llvm/lib/Transforms/Utils/LoopVersioning.cpp
parent8344dfab59c9ada81a912f5f68c483e4a04d3cb1 (diff)
downloadllvm-0d30e92f59589de44a185c53671b7fe2e83cd2ae.zip
llvm-0d30e92f59589de44a185c53671b7fe2e83cd2ae.tar.gz
llvm-0d30e92f59589de44a185c53671b7fe2e83cd2ae.tar.bz2
[lld-macho] Add support for emitting chained fixups
This commit adds support for chained fixups, which were introduced in Apple's late 2020 OS releases. This format replaces the dyld opcodes used for supplying rebase and binding information, and encodes most of that data directly in the memory location that will have the fixup applied. This reduces binary size and is a requirement for page-in linking, which will be available starting with macOS 13. A high-level overview of the format and my implementation can be found in SyntheticSections.h. This feature is currently gated behind the `-fixup_chains` flag, and will be enabled by default for supported targets in a later commit. Like in ld64, lazy binding is disabled when chained fixups are in use, and the `-init_offsets` transformation is performed by default. Differential Revision: https://reviews.llvm.org/D132560
Diffstat (limited to 'llvm/lib/Transforms/Utils/LoopVersioning.cpp')
0 files changed, 0 insertions, 0 deletions