llvm-project/lld/MachO/Arch
Daniel Bertalan ecb14fd872 [lld-macho] Add LOH_ARM64_ADRP_LDR_GOT_LDR optimization hint support
This hint instructs the linker to relax a GOT-indirect load.
If the referenced symbol is external and its GOT entry is within +/- 1
MiB, the GOT entry can be loaded with a single literal ldr instruction.
If the referenced symbol is local, its address may be loaded directly if
it's close enough, or with an adr(p) + ldr pair if it's not.

This type accounts for more than half of all LOHs in chromium_framework.

This commit moves the eligibility checks into helper functions to
improve the readability of the LOH processing code. Ho functional
changes are intended to the previously implemented LOH types.

Differential Revision: https://reviews.llvm.org/D129427
2022-07-13 12:20:14 +02:00
..
ARM.cpp [lld-macho] Handle user-provided dtrace symbols to avoid linking failure 2022-07-11 15:32:26 -04:00
ARM64.cpp [lld-macho] Add LOH_ARM64_ADRP_LDR_GOT_LDR optimization hint support 2022-07-13 12:20:14 +02:00
ARM64Common.cpp [lld-macho] Handle user-provided dtrace symbols to avoid linking failure 2022-07-11 15:32:26 -04:00
ARM64Common.h [lld-macho] Handle user-provided dtrace symbols to avoid linking failure 2022-07-11 15:32:26 -04:00
ARM64_32.cpp [lld-macho][reland] Initial support for EH Frames 2022-06-13 07:45:16 -04:00
X86_64.cpp [lld-macho] Handle user-provided dtrace symbols to avoid linking failure 2022-07-11 15:32:26 -04:00