summaryrefslogtreecommitdiffstats
path: root/llvm/test
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@google.com>2018-03-20 22:01:32 +0000
committerDerek Schuff <dschuff@google.com>2018-03-20 22:01:32 +0000
commit39b5367cba5d706ece4091cb33e850b68486b53a (patch)
tree240c607188f3726a15877299e1bef4a8dd501390 /llvm/test
parente28ff4d43fb2f48f0c679a2305ea50aef1e8a456 (diff)
downloadbcm5719-llvm-39b5367cba5d706ece4091cb33e850b68486b53a.tar.gz
bcm5719-llvm-39b5367cba5d706ece4091cb33e850b68486b53a.zip
[WebAssembly] Strip threadlocal attribute from globals in single thread mode
The default thread model for wasm is single, and in this mode thread-local global variables can be lowered identically to non-thread-local variables. Differential Revision: https://reviews.llvm.org/D44703 llvm-svn: 328049
Diffstat (limited to 'llvm/test')
-rw-r--r--llvm/test/CodeGen/WebAssembly/tls.ll17
1 files changed, 17 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/tls.ll b/llvm/test/CodeGen/WebAssembly/tls.ll
new file mode 100644
index 00000000000..1c02f490e29
--- /dev/null
+++ b/llvm/test/CodeGen/WebAssembly/tls.ll
@@ -0,0 +1,17 @@
+; RUN: llc < %s -asm-verbose=false -disable-wasm-fallthrough-return-opt -disable-wasm-explicit-locals -thread-model=single | FileCheck --check-prefix=SINGLE %s
+target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
+target triple = "wasm32-unknown-unknown-wasm"
+
+; SINGLE-LABEL: address_of_tls:
+define i32 @address_of_tls() {
+ ; SINGLE: i32.const $push0=, tls
+ ; SINGLE-NEXT: return $pop0
+ ret i32 ptrtoint(i32* @tls to i32)
+}
+
+; SINGLE: .type tls,@object
+; SINGLE-NEXT: .section .bss.tls,"",@
+; SINGLE-NEXT: .p2align 2
+; SINGLE-NEXT: tls:
+; SINGLE-NEXT: .int32 0
+@tls = internal thread_local global i32 0
OpenPOWER on IntegriCloud