diff options
author | Lang Hames <lhames@gmail.com> | 2015-10-30 03:20:21 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2015-10-30 03:20:21 +0000 |
commit | fd6e8dc36948766db07f7f469c151dad01e45a1a (patch) | |
tree | e3253fb71adc8b859a23e36d2a858a5fe90d3154 /llvm/include/llvm-c/OrcBindings.h | |
parent | 9ef327c962b392eac8edb03507818d0dc11932a5 (diff) | |
download | bcm5719-llvm-fd6e8dc36948766db07f7f469c151dad01e45a1a.tar.gz bcm5719-llvm-fd6e8dc36948766db07f7f469c151dad01e45a1a.zip |
[Orc] Expose the compile callback API through the C bindings.
llvm-svn: 251683
Diffstat (limited to 'llvm/include/llvm-c/OrcBindings.h')
-rw-r--r-- | llvm/include/llvm-c/OrcBindings.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/llvm/include/llvm-c/OrcBindings.h b/llvm/include/llvm-c/OrcBindings.h index 6b7284adb31..78a7bc146ee 100644 --- a/llvm/include/llvm-c/OrcBindings.h +++ b/llvm/include/llvm-c/OrcBindings.h @@ -35,6 +35,8 @@ typedef uint32_t LLVMOrcModuleHandle; typedef uint64_t LLVMOrcTargetAddress; typedef uint64_t (*LLVMOrcSymbolResolverFn)(const char *Name, void *LookupCtx); +typedef uint64_t (*LLVMOrcLazyCompileCallbackFn)(LLVMOrcJITStackRef JITStack, + void *CallbackCtx); /** * Create an ORC JIT stack. @@ -62,6 +64,28 @@ void LLVMOrcGetMangledSymbol(LLVMOrcJITStackRef JITStack, char **MangledSymbol, void LLVMOrcDisposeMangledSymbol(char *MangledSymbol); /** + * Create a lazy compile callback. + */ +LLVMOrcTargetAddress +LLVMOrcCreateLazyCompileCallback(LLVMOrcJITStackRef JITStack, + LLVMOrcLazyCompileCallbackFn Callback, + void *CallbackCtx); + +/** + * Create a named indirect call stub. + */ +void LLVMOrcCreateIndirectStub(LLVMOrcJITStackRef JITStack, + const char *StubName, + LLVMOrcTargetAddress InitAddr); + +/** + * Set the pointer for the given indirect stub. + */ +void LLVMOrcSetIndirectStubPointer(LLVMOrcJITStackRef JITStack, + const char *StubName, + LLVMOrcTargetAddress NewAddr); + +/** * Add module to be eagerly compiled. */ LLVMOrcModuleHandle |