[ORC] Add orc::SymbolResolver, a Orc/Legacy API interop header, and an
authorLang Hames <lhames@gmail.com>
Mon, 22 Jan 2018 03:00:31 +0000 (03:00 +0000)
committerLang Hames <lhames@gmail.com>
Mon, 22 Jan 2018 03:00:31 +0000 (03:00 +0000)
commit635fd9092b059b1fb7327f83963c5009d3edef0e
treef04170cc4a08f403f92ae07b35b59a3fadff616b
parentac471d6db2674ffd74a8be1680ae1e6e2bef50b8
[ORC] Add orc::SymbolResolver, a Orc/Legacy API interop header, and an
orc::SymbolResolver to JITSymbolResolver adapter.

The new orc::SymbolResolver interface uses asynchronous queries for better
performance. (Asynchronous queries with bulk lookup minimize RPC/IPC overhead,
support parallel incoming queries, and expose more available work for
distribution). Existing ORC layers will soon be updated to use the
orc::SymbolResolver API rather than the legacy llvm::JITSymbolResolver API.

Because RuntimeDyld still uses JITSymbolResolver, this patch also includes an
adapter that wraps an orc::SymbolResolver with a JITSymbolResolver API.

llvm-svn: 323073
llvm/include/llvm/ExecutionEngine/JITSymbol.h
llvm/include/llvm/ExecutionEngine/Orc/Core.h
llvm/include/llvm/ExecutionEngine/Orc/Legacy.h [new file with mode: 0644]
llvm/lib/ExecutionEngine/Orc/CMakeLists.txt
llvm/lib/ExecutionEngine/Orc/Core.cpp
llvm/lib/ExecutionEngine/Orc/Legacy.cpp [new file with mode: 0644]
llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp
llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldChecker.cpp
llvm/unittests/ExecutionEngine/Orc/CMakeLists.txt
llvm/unittests/ExecutionEngine/Orc/LegacyAPIInteropTest.cpp [new file with mode: 0644]