forked from OSchip/llvm-project
ce2207abaf
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). |
||
---|---|---|
.. | ||
Inputs | ||
anonymous_globals.ll | ||
bad-object-file.ll | ||
basic-object-file-loading.ll | ||
basic-whole-module-partitions.ll | ||
common-symbols.ll | ||
emulated-tls.ll | ||
global-ctors-and-dtors.ll | ||
global_aliases.ll | ||
hidden-visibility.ll | ||
lit.local.cfg | ||
minimal.ll | ||
module-flags.ll | ||
multiple-compile-threads-basic.ll | ||
printargv.ll | ||
private_linkage.ll | ||
single-function-call.ll | ||
static-library-support.ll | ||
weak-function.ll | ||
weak-non-materialization.ll |