llvm-project/compiler-rt/lib/orc
Lang Hames e7707464a3 [ORC-RT][MachO] Unlock JDStatesMutex during push-initializers to avoid deadlock.
During __orc_rt_macho_jit_dlopen the ORC runtime will make a request to the JIT
to push any new initializers. Since this call may add new JD-state to the
runtime (and is expected to in general) we need to unlock the JDStatesMutex
during this operation (and similarly when running initializers and atexits, as
these may call trigger push-initializers recursively).

No testcase yet: I haven't been able to reproduce the deadlock when running
llvm-jitlink in in-process mode, and we don't support out-of-process mode in
regression tests yet.
2022-11-11 16:01:25 -08:00
..
tests [ORC-RT] Add a SymbolStringPool class to the ORC runtime. 2022-11-09 21:26:18 -08:00
CMakeLists.txt [ORC-RT] Drop the 'clang_rt.' prefix from the ORC runtime. 2022-09-12 16:48:20 -07:00
adt.h [ORC-RT] Remove a stray __orc_rt::string_view helper. 2022-08-07 11:23:09 -07:00
coff_platform.cpp [ORC-RT] Update COFF, ELF support after ExecutorAddrDiff change in 4c43483186. 2022-09-15 22:26:36 -07:00
coff_platform.h Ensure newlines at the end of files (NFC) 2022-08-13 12:55:45 -07:00
coff_platform.per_jd.cpp Ensure newlines at the end of files (NFC) 2022-10-22 09:29:40 -07:00
common.h [ORC-RT] Update headers for rename of include/orc in a85e4aa37d. 2022-09-12 17:09:06 -07:00
compiler.h [ORC_RT][COFF] Initial platform support for COFF/x86_64. 2022-08-13 13:48:40 +09:00
debug.cpp [ORC-RT] Add missing headers from 1d82e19f37. 2022-01-08 17:46:14 +11:00
debug.h [ORC-RT] Add debug logging macros. 2022-01-08 17:28:02 +11:00
dlfcn_wrapper.cpp [ORC][ORC_RT] Integrate ORC platforms with LLJIT and lli 2022-06-09 22:47:58 -07:00
elfnix_platform.cpp [ORC-RT] Remove wrong getValue of ExecutorAddrDiff. 2022-09-16 11:18:27 +08:00
elfnix_platform.h [ORC][ORC_RT] Handle ELF .init_array with non-default priority 2022-06-09 22:47:58 -07:00
elfnix_tls.aarch64.S [ORC][ORC_RT][AArch64] Implement TLS descriptor in ELFNixPlatform. 2022-07-06 20:12:22 +09:00
elfnix_tls.x86-64.S Reapply [ORC-RT] Configure the ORC runtime for more architectures and platforms 2021-10-21 09:00:18 -07: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][COFF] Initial platform support for COFF/x86_64. 2022-08-13 13:48:40 +09:00
executor_address.h [ORC-RT] Make ExecutorAddrDiff an alias for uint64_t. 2022-09-15 19:11:51 -07: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_ehframe_registration.cpp [ORC-RT] Update headers for rename of include/orc in a85e4aa37d. 2022-09-12 17:09:06 -07:00
macho_platform.cpp [ORC-RT][MachO] Unlock JDStatesMutex during push-initializers to avoid deadlock. 2022-11-11 16:01:25 -08:00
macho_platform.h [ORC][ORC-RT] Rewrite the MachO platform to use allocation actions. 2022-02-08 17:28:13 +11:00
macho_tlv.arm64.S [ORC][ORC-RT] Enable the MachO platform for arm64 2021-10-27 13:36:03 -07:00
macho_tlv.x86-64.S Reapply [ORC-RT] Configure the ORC runtime for more architectures and platforms 2021-10-21 09:00:18 -07:00
run_program_wrapper.cpp [ORC-RT] Drop __orc_rt::string_view now that we have c++17. 2022-08-07 09:37:09 -07:00
simple_packed_serialization.h [ORC-RT] Fix missing #include <string_view>s. 2022-08-07 14:32:28 -07:00
stl_extras.h [ORC-RT] Remove __orc_rt::apply_tuple. 2022-08-26 17:06:56 -07:00
string_pool.h [ORC-RT] Add a SymbolStringPool class to the ORC runtime. 2022-11-09 21:26:18 -08:00
wrapper_function_utils.h [ORC][ORC-RT] Make WrapperFunctionCall::Create support void functions. 2022-09-18 17:53:45 -07:00