mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
6b02a146a7
switch to using one indirect stub manager per logical dylib rather than one per input module. LogicalDylib is a helper class used by the CompileOnDemandLayer to manage symbol resolution between modules during lazy compilation. In particular, it ensures that internal symbols resolve correctly even in the case where multiple input modules contain the same internal symbol name (which must to be promoted to external hidden linkage so that functions in any given module can be split out by lazy compilation). LogicalDylib's resolution scheme (before this commit) required one stub-manager per input module. This made recompilation of functions (by adding a module containing a new definition) difficult, as the stub manager for any given symbol was bound to the module that supplied the original definition. By using one stubs manager for the whole logical dylib symbols can be more easily replaced, although support for doing this is not included in this patch (it will be implemented in a follow up). llvm-svn: 279952
25 lines
424 B
CMake
25 lines
424 B
CMake
|
|
set(LLVM_LINK_COMPONENTS
|
|
Core
|
|
ExecutionEngine
|
|
Object
|
|
OrcJIT
|
|
RuntimeDyld
|
|
Support
|
|
native
|
|
)
|
|
|
|
add_llvm_unittest(OrcJITTests
|
|
CompileOnDemandLayerTest.cpp
|
|
IndirectionUtilsTest.cpp
|
|
GlobalMappingLayerTest.cpp
|
|
LazyEmittingLayerTest.cpp
|
|
ObjectLinkingLayerTest.cpp
|
|
ObjectTransformLayerTest.cpp
|
|
OrcCAPITest.cpp
|
|
OrcTestCommon.cpp
|
|
RPCUtilsTest.cpp
|
|
)
|
|
|
|
target_link_libraries(OrcJITTests ${PTHREAD_LIB})
|