diff options
author | Lang Hames <lhames@gmail.com> | 2018-09-26 04:18:30 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2018-09-26 04:18:30 +0000 |
commit | c1275e72cb47b7a9ef5a6a2ffe1961f3e0025528 (patch) | |
tree | ee4cec8e7dd8a4ce68e2948d094aaf23a6a4ebbb /clang/lib/CodeGen/CodeGenModule.cpp | |
parent | ea0b7bb548befa8539ce3a9b02584fa001fd89f3 (diff) | |
download | bcm5719-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