summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Analysis/DemandedBits.cpp
diff options
context:
space:
mode:
authorPeter Smith <peter.smith@linaro.org>2017-06-26 10:22:17 +0000
committerPeter Smith <peter.smith@linaro.org>2017-06-26 10:22:17 +0000
commit113a59e7db394ba54dafb1e2aafd46d13b212980 (patch)
treea45ab8fb70ab3a477e473ab62a55c401c1b26c5d /llvm/lib/Analysis/DemandedBits.cpp
parent1158fe9715d1686025ba09d74676c429e60f968d (diff)
downloadbcm5719-llvm-113a59e7db394ba54dafb1e2aafd46d13b212980.tar.gz
bcm5719-llvm-113a59e7db394ba54dafb1e2aafd46d13b212980.zip
[ELF] Define _GLOBAL_OFFSET_TABLE_ symbol relative to .got
On many architectures gcc and clang will recognize _GLOBAL_OFFSET_TABLE_ - . and produce a relocation that can be processed without needing to know the value of _GLOBAL_OFFSET_TABLE_. This is not always the case; for example ARM gcc produces R_ARM_BASE_PREL but clang produces the more general R_ARM_REL32 to _GLOBAL_OFFSET_TABLE_. To evaluate this relocation correctly _GLOBAL_OFFSET_TABLE_ must be defined to be the either the base of the GOT or end of the GOT dependent on architecture.. If/when llvm-mc is changed to recognize _GLOBAL_OFFSET_TABLE_ - . this change will not be necessary for new objects. However there may still be old objects and versions of clang. Differential Revision: https://reviews.llvm.org/D34355 llvm-svn: 306282
Diffstat (limited to 'llvm/lib/Analysis/DemandedBits.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud