diff options
author | Lang Hames <lhames@gmail.com> | 2021-07-20 16:41:34 +1000 |
---|---|---|
committer | Lang Hames <lhames@gmail.com> | 2021-07-21 09:10:10 +1000 |
commit | fe1fa43f16beac1506a2e73a9f7b3c81179744eb (patch) | |
tree | f6fd9b6b823241f49402b8b7cd0550cb19740cd9 /lldb/source/Commands/CommandObjectThread.cpp | |
parent | ca4a9386170e656b22773b09f240d26f49a8877c (diff) | |
download | llvm-fe1fa43f16beac1506a2e73a9f7b3c81179744eb.zip llvm-fe1fa43f16beac1506a2e73a9f7b3c81179744eb.tar.gz llvm-fe1fa43f16beac1506a2e73a9f7b3c81179744eb.tar.bz2 |
[ORC][ORC-RT] Add initial native-TLV support to MachOPlatform.
Adds code to LLVM (MachOPlatform) and the ORC runtime to support native MachO
thread local variables. Adding new TLVs to a JITDylib at runtime is supported.
On the LLVM side MachOPlatform is updated to:
1. Identify thread local variables in the LinkGraph and lower them to GOT
accesses to data in the __thread_data or __thread_bss sections.
2. Merge and report the address range of __thread_data and thread_bss sections
to the runtime.
On the ORC runtime a MachOTLVManager class introduced which records the address
range of thread data/bss sections, and creates thread-local instances from the
initial data on demand. An orc-runtime specific tlv_get_addr implementation is
included which saves all register state then calls the MachOTLVManager to get
the address of the requested variable for the current thread.
Diffstat (limited to 'lldb/source/Commands/CommandObjectThread.cpp')
0 files changed, 0 insertions, 0 deletions