summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py
diff options
context:
space:
mode:
authorGuanzhong Chen <gzchen@google.com>2019-07-16 22:22:08 +0000
committerGuanzhong Chen <gzchen@google.com>2019-07-16 22:22:08 +0000
commit0a8d4df7999eaa876ff7c7510c964f6ec127ffa8 (patch)
treef0aa91230a02df3a5a2b97839a76b84dfc8b413f /lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py
parentfe66fdb8f3076a5146c274bba1258b402cf4e726 (diff)
downloadbcm5719-llvm-0a8d4df7999eaa876ff7c7510c964f6ec127ffa8.tar.gz
bcm5719-llvm-0a8d4df7999eaa876ff7c7510c964f6ec127ffa8.zip
[WebAssembly] Compile all TLS on Emscripten as local-exec
Summary: Currently, on Emscripten, dynamic linking is not supported with threads. This means that if thread-local storage is used, it must be used in a statically-linked executable. Hence, local-exec is the only possible model. This diff compiles all TLS variables to use local-exec on Emscripten as a temporary measure until dynamic linking is supported with threads. The goal for this is to allow C++ types with constructors to be thread-local. Currently, when `clang` compiles a `thread_local` variable with a constructor, it generates `__tls_guard` variable: @__tls_guard = internal thread_local global i8 0, align 1 As no TLS model is specified, this is treated as general-dynamic, which we do not support (and cannot support without implementing dynamic linking support with threads in Emscripten). As a result, any C++ constructor in `thread_local` variables would not compile. By compiling all `thread_local` as local-exec, `__tls_guard` will compile and we can support C++ constructors with TLS without implementing dynamic linking with threads. Depends on D64537 Reviewers: tlively, aheejin, sbc100 Reviewed By: aheejin Subscribers: dschuff, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64776 llvm-svn: 366275
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/expression_command/call-function/TestCallUserDefinedFunction.py')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud