aboutsummaryrefslogtreecommitdiff
path: root/lib/ExecutionEngine/JIT/NaClJITMemoryManager.cpp
diff options
context:
space:
mode:
authorMark Seaborn <mseaborn@chromium.org>2012-11-29 18:42:19 -0800
committerMark Seaborn <mseaborn@chromium.org>2012-11-29 18:42:19 -0800
commitffb0eedef4f034996ce59aac3176482617a8044c (patch)
tree03195b67f4e4770e961a4487fcdc5ac9e52bbb17 /lib/ExecutionEngine/JIT/NaClJITMemoryManager.cpp
parent7a51b9c26dfc7fb9df8047c553227b47d64ba5c6 (diff)
PNaCl: Add ExpandTls pass for expanding out static TLS variables
This replaces each reference to a TLS variable "foo" with the LLVM IR equivalent of the expression: ((struct tls_template *) __nacl_read_tp())->foo This pass fills out the global variables __tls_template_start, __tls_template_end etc. which are used by src/untrusted/nacl/tls.c. These are the symbols that are otherwise defined by a binutils linker script. In order to handle the case of TLS variables that occur inside ConstantExprs, we have a helper pass, ExpandTlsConstantExpr. BUG=http://code.google.com/p/nativeclient/issues/detail?id=2837 TEST=test/Transforms/NaCl/expand-tls*.ll Review URL: https://chromiumcodereview.appspot.com/10896042
Diffstat (limited to 'lib/ExecutionEngine/JIT/NaClJITMemoryManager.cpp')
0 files changed, 0 insertions, 0 deletions