mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-19 03:25:54 -04:00
![]() This commit adds a ManglingOptions struct to IRMaterializationUnit, and replaces IRCompileLayer::CompileFunction with a new IRCompileLayer::IRCompiler class. The ManglingOptions struct defines the emulated-TLS state (via a bool member, EmulatedTLS, which is true if emulated-TLS is enabled and false otherwise). The IRCompileLayer::IRCompiler class wraps an IRCompiler (the same way that the CompileFunction typedef used to), but adds a method to return the IRCompileLayer::ManglingOptions that the compiler will use. These changes allow us to correctly determine the symbols that will be produced when a thread local global variable defined at the IR level is compiled with or without emulated TLS. This is required for ORCv2, where MaterializationUnits must declare their interface up-front. Most ORCv2 clients should not require any changes. Clients writing custom IR compilers will need to wrap their compiler in an IRCompileLayer::IRCompiler, rather than an IRCompileLayer::CompileFunction, however this should be a straightforward change (see modifications to CompileUtils.* in this patch for an example). |
||
---|---|---|
.. | ||
CMakeLists.txt | ||
CoreAPIsTest.cpp | ||
GlobalMappingLayerTest.cpp | ||
IndirectionUtilsTest.cpp | ||
JITTargetMachineBuilderTest.cpp | ||
LazyCallThroughAndReexportsTest.cpp | ||
LazyEmittingLayerTest.cpp | ||
LegacyAPIInteropTest.cpp | ||
LegacyCompileOnDemandLayerTest.cpp | ||
LegacyRTDyldObjectLinkingLayerTest.cpp | ||
ObjectTransformLayerTest.cpp | ||
OrcCAPITest.cpp | ||
OrcTestCommon.cpp | ||
OrcTestCommon.h | ||
QueueChannel.cpp | ||
QueueChannel.h | ||
RemoteObjectLayerTest.cpp | ||
RPCUtilsTest.cpp | ||
RTDyldObjectLinkingLayerTest.cpp | ||
SymbolStringPoolTest.cpp | ||
ThreadSafeModuleTest.cpp |