diff options
Diffstat (limited to 'llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp')
-rw-r--r-- | llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp b/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp index de80cb1d0dd..f945acaf95e 100644 --- a/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp +++ b/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp @@ -20,16 +20,6 @@ void LLVMOrcDisposeSharedModuleRef(LLVMSharedModuleRef SharedMod) { delete unwrap(SharedMod); } -LLVMSharedObjectBufferRef -LLVMOrcMakeSharedObjectBuffer(LLVMMemoryBufferRef ObjBuffer) { - return wrap(new std::shared_ptr<MemoryBuffer>(unwrap(ObjBuffer))); -} - -void -LLVMOrcDisposeSharedObjectBufferRef(LLVMSharedObjectBufferRef SharedObjBuffer) { - delete unwrap(SharedObjBuffer); -} - LLVMOrcJITStackRef LLVMOrcCreateInstance(LLVMTargetMachineRef TM) { TargetMachine *TM2(unwrap(TM)); @@ -105,6 +95,18 @@ LLVMOrcAddLazilyCompiledIR(LLVMOrcJITStackRef JITStack, return J.addIRModuleLazy(*RetHandle, *M, SymbolResolver, SymbolResolverCtx); } +LLVMOrcErrorCode +LLVMOrcAddObjectFile(LLVMOrcJITStackRef JITStack, + LLVMOrcModuleHandle *RetHandle, + LLVMMemoryBufferRef Obj, + LLVMOrcSymbolResolverFn SymbolResolver, + void *SymbolResolverCtx) { + OrcCBindingsStack &J = *unwrap(JITStack); + std::unique_ptr<MemoryBuffer> O(unwrap(Obj)); + return J.addObject(*RetHandle, std::move(O), SymbolResolver, + SymbolResolverCtx); +} + LLVMOrcErrorCode LLVMOrcRemoveModule(LLVMOrcJITStackRef JITStack, LLVMOrcModuleHandle H) { OrcCBindingsStack &J = *unwrap(JITStack); |