summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CodeGenModule.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2018-09-26 04:18:30 +0000
committerLang Hames <lhames@gmail.com>2018-09-26 04:18:30 +0000
commitc1275e72cb47b7a9ef5a6a2ffe1961f3e0025528 (patch)
treeee4cec8e7dd8a4ce68e2948d094aaf23a6a4ebbb /clang/lib/CodeGen/CodeGenModule.cpp
parentea0b7bb548befa8539ce3a9b02584fa001fd89f3 (diff)
downloadbcm5719-llvm-c1275e72cb47b7a9ef5a6a2ffe1961f3e0025528.tar.gz
bcm5719-llvm-c1275e72cb47b7a9ef5a6a2ffe1961f3e0025528.zip
[ORC] Add a "lazy call-through" utility based on the same underlying trampoline
implementation as lazy compile callbacks, and a "lazy re-exports" utility that builds lazy call-throughs. Lazy call-throughs are similar to lazy compile callbacks (and are based on the same underlying state saving/restoring trampolines) but resolve their targets by performing a standard ORC lookup rather than invoking a user supplied compiler callback. This allows them to inherit the thread-safety of ORC lookups while blocking only the calling thread (whereas compile callbacks also block one compile thread). Lazy re-exports provide a simple way of building lazy call-throughs. Unlike a regular re-export, a lazy re-export generates a new address (a stub entry point) that will act like the re-exported symbol when called. The first call via a lazy re-export will trigger compilation of the re-exported symbol before calling through to it. llvm-svn: 343061
Diffstat (limited to 'clang/lib/CodeGen/CodeGenModule.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud