diff options
author | Lang Hames <lhames@gmail.com> | 2018-05-30 01:57:45 +0000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2018-05-30 01:57:45 +0000 |
commit | bd0cb787d05b555791a88640dcf9800bab54d4fa (patch) | |
tree | 54462834993763589d348390b6886b1fef1da6fe /llvm/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp | |
parent | b534510cd55dc979bf6eebd66140cda23ba1f163 (diff) | |
download | bcm5719-llvm-bd0cb787d05b555791a88640dcf9800bab54d4fa.tar.gz bcm5719-llvm-bd0cb787d05b555791a88640dcf9800bab54d4fa.zip |
[ORC] Update JITCompileCallbackManager to support multi-threaded code.
Previously JITCompileCallbackManager only supported single threaded code. This
patch embeds a VSO (see include/llvm/ExecutionEngine/Orc/Core.h) in the callback
manager. The VSO ensures that the compile callback is only executed once and that
the resulting address cached for use by subsequent re-entries.
llvm-svn: 333490
Diffstat (limited to 'llvm/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp')
-rw-r--r-- | llvm/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp b/llvm/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp index 833b7621674..0d2a712a9e8 100644 --- a/llvm/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp +++ b/llvm/unittests/ExecutionEngine/Orc/CompileOnDemandLayerTest.cpp @@ -18,7 +18,8 @@ namespace { class DummyCallbackManager : public orc::JITCompileCallbackManager { public: - DummyCallbackManager() : JITCompileCallbackManager(0) {} + DummyCallbackManager(ExecutionSession &ES) + : JITCompileCallbackManager(ES, 0) {} public: Error grow() override { llvm_unreachable("not implemented"); } @@ -57,9 +58,9 @@ TEST(CompileOnDemandLayerTest, FindSymbol) { return JITSymbol(nullptr); }; - DummyCallbackManager CallbackMgr; ExecutionSession ES(std::make_shared<SymbolStringPool>()); + DummyCallbackManager CallbackMgr(ES); auto GetResolver = [](orc::VModuleKey) -> std::shared_ptr<llvm::orc::SymbolResolver> { |