mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-10-19 02:52:53 +02:00
06c1a3680b
1c5a3c4d3823 updated the variables inserted by Emscripten SjLj lowering to be thread-local, depending on the CoalesceFeaturesAndStripAtomics pass to downgrade them to normal globals if the target features did not support TLS. However, this had the unintended side effect of preventing all non-TLS-supporting objects from being linked into modules with shared memory, because stripping TLS marks an object as thread-unsafe. This patch fixes the problem by only making the SjLj lowering variables thread-local if the target machine supports TLS so that it never introduces new usage of TLS that will be stripped. Since SjLj lowering works on Modules instead of Functions, this required that the WebAssemblyTargetMachine have its feature string updated to reflect the coalesced features collected from all the functions so that a WebAssemblySubtarget can be created without using any particular function. Differential Revision: https://reviews.llvm.org/D88323 |
||
---|---|---|
.. | ||
llvm | ||
llvm-c |