[all-commits] [llvm/llvm-project] a3f67f: [lld-macho] Initial support for Linker Optimizatio...
Daniel Bertalan via All-commits
all-commits at lists.llvm.org
Wed Jun 29 21:29:51 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: a3f67f0920eaa111637b3411209213f46de202d7
https://github.com/llvm/llvm-project/commit/a3f67f0920eaa111637b3411209213f46de202d7
Author: Daniel Bertalan <dani at danielbertalan.dev>
Date: 2022-06-30 (Thu, 30 Jun 2022)
Changed paths:
M lld/MachO/Arch/ARM64.cpp
M lld/MachO/Config.h
M lld/MachO/Driver.cpp
M lld/MachO/InputFiles.cpp
M lld/MachO/InputFiles.h
M lld/MachO/InputSection.cpp
M lld/MachO/InputSection.h
M lld/MachO/Options.td
M lld/MachO/Relocations.h
M lld/MachO/Target.h
A lld/test/MachO/invalid/invalid-loh.s
A lld/test/MachO/loh-adrp-add.s
A lld/test/MachO/loh-adrp-adrp.s
M llvm/include/llvm/BinaryFormat/MachO.h
Log Message:
-----------
[lld-macho] Initial support for Linker Optimization Hints
Linker optimization hints mark a sequence of instructions used for
synthesizing an address, like ADRP+ADD. If the referenced symbol ends up
close enough, it can be replaced by a faster sequence of instructions
like ADR+NOP.
This commit adds support for 2 of the 7 defined ARM64 optimization
hints:
- LOH_ARM64_ADRP_ADD, which transforms a pair of ADRP+ADD into ADR+NOP
if the referenced address is within +/- 1 MiB
- LOH_ARM64_ADRP_ADRP, which transforms two ADRP instructions into
ADR+NOP if they reference the same page
These two kinds already cover more than 50% of all LOHs in
chromium_framework.
Differential Review: https://reviews.llvm.org/D128093
More information about the All-commits
mailing list