aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/Utils/BuildLibCalls.cpp
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2010-03-11 01:18:13 +0000
committerBill Wendling <isanbard@gmail.com>2010-03-11 01:18:13 +0000
commit52a50e5d0e6ac08d86706dbdd8f4a5dbb44da4cb (patch)
treea0be3ecbe9544fc90df00fdc4b5bb820e39f05d2 /lib/Transforms/Utils/BuildLibCalls.cpp
parentae1757b4527715564c8db95049286cc2c3cdece4 (diff)
When outputing a non-lazy pointer for a stub, we may need to fill in the value
for the NLP because the object it's pointing to may be internal to the file. This seems counter-intuitive, but bear with me. When we place the LSDA into the TEXT section, the type info pointers need to be indirect and pc-rel. We accomplish this by using NLPs. However, sometimes the types are local to the file. GCC gets around this by not using a NLP in this case, but a "regular" indirection like this: GCC_except_tbl: .long Lfoo-. __ZTIA: @ This is local ... Lfoo: .long __ZTIA LLVM prefers NLPs on Darwin. In fact, it's more optimal for load performance to use them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98218 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Utils/BuildLibCalls.cpp')
0 files changed, 0 insertions, 0 deletions