summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/builtins-wasm.c
diff options
context:
space:
mode:
authorGuanzhong Chen <gzchen@google.com>2019-07-19 23:34:16 +0000
committerGuanzhong Chen <gzchen@google.com>2019-07-19 23:34:16 +0000
commit5204f7611f4ad6549921f9fa757823e77f39ce32 (patch)
treeef7917abad381f28851224e8fb5bf81db74902d5 /clang/test/CodeGen/builtins-wasm.c
parent604f802fd30d60226fca7d808b7e513e7f80c603 (diff)
downloadbcm5719-llvm-5204f7611f4ad6549921f9fa757823e77f39ce32.tar.gz
bcm5719-llvm-5204f7611f4ad6549921f9fa757823e77f39ce32.zip
[WebAssembly] Compute and export TLS block alignment
Summary: Add immutable WASM global `__tls_align` which stores the alignment requirements of the TLS segment. Add `__builtin_wasm_tls_align()` intrinsic to get this alignment in Clang. The expected usage has now changed to: __wasm_init_tls(memalign(__builtin_wasm_tls_align(), __builtin_wasm_tls_size())); Reviewers: tlively, aheejin, sbc100, sunfish, alexcrichton Reviewed By: tlively Subscribers: dschuff, jgravelle-google, hiraditya, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D65028 llvm-svn: 366624
Diffstat (limited to 'clang/test/CodeGen/builtins-wasm.c')
-rw-r--r--clang/test/CodeGen/builtins-wasm.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/clang/test/CodeGen/builtins-wasm.c b/clang/test/CodeGen/builtins-wasm.c
index 8f8e7a9e4d0..f3129b787ac 100644
--- a/clang/test/CodeGen/builtins-wasm.c
+++ b/clang/test/CodeGen/builtins-wasm.c
@@ -44,6 +44,12 @@ __SIZE_TYPE__ tls_size() {
// WEBASSEMBLY64: call i64 @llvm.wasm.tls.size.i64()
}
+__SIZE_TYPE__ tls_align() {
+ return __builtin_wasm_tls_align();
+ // WEBASSEMBLY32: call i32 @llvm.wasm.tls.align.i32()
+ // WEBASSEMBLY64: call i64 @llvm.wasm.tls.align.i64()
+}
+
void *tls_base() {
return __builtin_wasm_tls_base();
// WEBASSEMBLY: call i8* @llvm.wasm.tls.base()
OpenPOWER on IntegriCloud