hanchenye-llvm-project/compiler-rt/lib/orc
luxufan ff6069b891 [JITLink] Add initial native TLS support to ELFNix platform
This patch use the same way as the https://reviews.llvm.org/rGfe1fa43f16beac1506a2e73a9f7b3c81179744eb to handle the thread local variable.

It allocates 2 * pointerSize space in GOT to represent the thread key and data address. Instead of using the _tls_get_addr function, I customed a function __orc_rt_elfnix_tls_get_addr to get the address of thread local varible. Currently, this is a wip patch, only one TLS relocation R_X86_64_TLSGD is supported and I need to add the corresponding test cases.

To allocate the TLS  descriptor in GOT, I need to get the edge kind information in PerGraphGOTAndPLTStubBuilder, So I add a `Edge::Kind K` argument in some functions in PerGraphGOTAndPLTStubBuilder.h. If it is not suitable, I can think further to solve this problem.

Differential Revision: https://reviews.llvm.org/D109293
2021-09-13 14:35:49 +08:00
..
unittests [orc] Fix unit tests that use ORC C API 2021-08-24 14:19:46 -07:00
CMakeLists.txt [JITLink] Add initial native TLS support to ELFNix platform 2021-09-13 14:35:49 +08:00
adt.h [ORC-RT] Add equality/inequality comparison to string_view. 2021-06-01 11:24:19 -07:00
c_api.h [orc] Fix unit tests that use ORC C API 2021-08-24 14:19:46 -07:00
common.h [ORC-RT] Introduce a ORC_RT_JIT_DISPATCH_TAG macro. 2021-07-20 11:30:54 +10:00
compiler.h [ORC-RT] Add ORC_RT prefix to WEAK_IMPORT macro. 2021-07-20 11:30:54 +10:00
elfnix_platform.cpp [JITLink] Add initial native TLS support to ELFNix platform 2021-09-13 14:35:49 +08:00
elfnix_platform.h [ORC][ORC-RT] Reapply "Introduce ELF/*nix Platform and runtime..." with fixes. 2021-08-27 14:41:58 +10:00
elfnix_tls.x86-64.S [JITLink] Add initial native TLS support to ELFNix platform 2021-09-13 14:35:49 +08:00
endianness.h Rename compiler-rt/lib/orc/endian.h to endianness.h to avoid conflict with system headers 2021-06-08 17:53:58 -07:00
error.h [ORC-RT] Add ORC runtime error and expected types. 2021-05-19 13:31:25 -07:00
executor_address.h [ORC][ORC-RT] Introduce ORC-runtime based MachO-Platform. 2021-07-19 19:50:16 +10:00
extensible_rtti.cpp Re-apply "[ORC-RT] Add unit test infrastructure, extensible_rtti..." 2021-05-11 10:28:33 -07:00
extensible_rtti.h Re-apply "[ORC-RT] Add unit test infrastructure, extensible_rtti..." 2021-05-11 10:28:33 -07:00
log_error_to_stderr.cpp [ORC][ORC-RT] Introduce ORC-runtime based MachO-Platform. 2021-07-19 19:50:16 +10:00
macho_platform.cpp [ORC][ORC-RT] Add initial Objective-C and Swift support to MachOPlatform. 2021-07-26 18:02:01 +10:00
macho_platform.h [ORC][ORC-RT] Add initial Objective-C and Swift support to MachOPlatform. 2021-07-26 18:02:01 +10:00
macho_tlv.x86-64.S Re-re-re-apply "[ORC][ORC-RT] Add initial native-TLV support to MachOPlatform." 2021-07-24 13:16:12 +10:00
run_program_wrapper.cpp [ORC][ORC-RT] Introduce ORC-runtime based MachO-Platform. 2021-07-19 19:50:16 +10:00
simple_packed_serialization.h [ORC][ORC-RT] Introduce ORC-runtime based MachO-Platform. 2021-07-19 19:50:16 +10:00
stl_extras.h Add a couple of missing includes 2021-06-08 17:53:58 -07:00
wrapper_function_utils.h [ORC-RT] Add non-const WrapperFunctionResult data access, simplify allocate. 2021-08-24 17:34:59 +10:00