diff options
author | Lang Hames <lhames@gmail.com> | 2017-07-07 02:59:13 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2017-07-07 02:59:13 +0000 |
commit | 4ce98662e7d109b4579c35945345db685ae5b3fb (patch) | |
tree | 4538ca3c0131f3275286aac4347bf712ed0068e7 /llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp | |
parent | b909f11a319ae62e683d1f9d82e28a05b360b8ae (diff) | |
download | bcm5719-llvm-4ce98662e7d109b4579c35945345db685ae5b3fb.tar.gz bcm5719-llvm-4ce98662e7d109b4579c35945345db685ae5b3fb.zip |
[ORC] Errorize the ORC APIs.
This patch updates the ORC layers and utilities to return and propagate
llvm::Errors where appropriate. This is necessary to allow ORC to safely handle
error cases in cross-process and remote JITing.
llvm-svn: 307350
Diffstat (limited to 'llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp')
-rw-r--r-- | llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp b/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp index 2900a9c9276..5a4d6b4a225 100644 --- a/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp +++ b/llvm/unittests/ExecutionEngine/Orc/OrcCAPITest.cpp @@ -66,10 +66,11 @@ protected: auto *ET = CCtx->APIExecTest; CCtx->M = ET->createTestModule(ET->TM->getTargetTriple()); LLVMSharedModuleRef SM = LLVMOrcMakeSharedModule(wrap(CCtx->M.release())); - CCtx->H = LLVMOrcAddEagerlyCompiledIR(JITStack, SM, myResolver, nullptr); + LLVMOrcAddEagerlyCompiledIR(JITStack, &CCtx->H, SM, myResolver, nullptr); LLVMOrcDisposeSharedModuleRef(SM); CCtx->Compiled = true; - LLVMOrcTargetAddress MainAddr = LLVMOrcGetSymbolAddress(JITStack, "main"); + LLVMOrcTargetAddress MainAddr; + LLVMOrcGetSymbolAddress(JITStack, &MainAddr, "main"); LLVMOrcSetIndirectStubPointer(JITStack, "foo", MainAddr); return MainAddr; } @@ -89,10 +90,12 @@ TEST_F(OrcCAPIExecutionTest, TestEagerIRCompilation) { LLVMOrcGetMangledSymbol(JIT, &testFuncName, "testFunc"); LLVMSharedModuleRef SM = LLVMOrcMakeSharedModule(wrap(M.release())); - LLVMOrcModuleHandle H = - LLVMOrcAddEagerlyCompiledIR(JIT, SM, myResolver, nullptr); + LLVMOrcModuleHandle H; + LLVMOrcAddEagerlyCompiledIR(JIT, &H, SM, myResolver, nullptr); LLVMOrcDisposeSharedModuleRef(SM); - MainFnTy MainFn = (MainFnTy)LLVMOrcGetSymbolAddress(JIT, "main"); + LLVMOrcTargetAddress MainAddr; + LLVMOrcGetSymbolAddress(JIT, &MainAddr, "main"); + MainFnTy MainFn = (MainFnTy)MainAddr; int Result = MainFn(); EXPECT_EQ(Result, 42) << "Eagerly JIT'd code did not return expected result"; @@ -115,10 +118,12 @@ TEST_F(OrcCAPIExecutionTest, TestLazyIRCompilation) { LLVMOrcGetMangledSymbol(JIT, &testFuncName, "testFunc"); LLVMSharedModuleRef SM = LLVMOrcMakeSharedModule(wrap(M.release())); - LLVMOrcModuleHandle H = - LLVMOrcAddLazilyCompiledIR(JIT, SM, myResolver, nullptr); + LLVMOrcModuleHandle H; + LLVMOrcAddLazilyCompiledIR(JIT, &H, SM, myResolver, nullptr); LLVMOrcDisposeSharedModuleRef(SM); - MainFnTy MainFn = (MainFnTy)LLVMOrcGetSymbolAddress(JIT, "main"); + LLVMOrcTargetAddress MainAddr; + LLVMOrcGetSymbolAddress(JIT, &MainAddr, "main"); + MainFnTy MainFn = (MainFnTy)MainAddr; int Result = MainFn(); EXPECT_EQ(Result, 42) << "Lazily JIT'd code did not return expected result"; @@ -140,11 +145,12 @@ TEST_F(OrcCAPIExecutionTest, TestDirectCallbacksAPI) { CompileContext C; C.APIExecTest = this; - LLVMOrcCreateIndirectStub(JIT, "foo", - LLVMOrcCreateLazyCompileCallback(JIT, - myCompileCallback, - &C)); - MainFnTy FooFn = (MainFnTy)LLVMOrcGetSymbolAddress(JIT, "foo"); + LLVMOrcTargetAddress CCAddr; + LLVMOrcCreateLazyCompileCallback(JIT, &CCAddr, myCompileCallback, &C); + LLVMOrcCreateIndirectStub(JIT, "foo", CCAddr); + LLVMOrcTargetAddress MainAddr; + LLVMOrcGetSymbolAddress(JIT, &MainAddr, "foo"); + MainFnTy FooFn = (MainFnTy)MainAddr; int Result = FooFn(); EXPECT_TRUE(C.Compiled) << "Function wasn't lazily compiled"; |