aboutsummaryrefslogtreecommitdiff
path: root/lldb/unittests/ScriptInterpreter/Python
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2020-09-25 11:45:16 -0700
committerThomas Lively <tlively@google.com>2020-09-25 11:45:16 -0700
commit89fe083c197951a1380ee70e9e36e2aa95659da5 (patch)
tree1b693e4b33b4ba3adfb84bb1457bc23c69a2eb8f /lldb/unittests/ScriptInterpreter/Python
parentd2166076b882e38becf3657ea830ffd2b6a5695e (diff)
downloadllvm-89fe083c197951a1380ee70e9e36e2aa95659da5.zip
llvm-89fe083c197951a1380ee70e9e36e2aa95659da5.tar.gz
llvm-89fe083c197951a1380ee70e9e36e2aa95659da5.tar.bz2
[WebAssembly] Check features before making SjLj vars thread-local
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
Diffstat (limited to 'lldb/unittests/ScriptInterpreter/Python')
0 files changed, 0 insertions, 0 deletions