Files
archived-llvm/test/CodeGen/WebAssembly/tls.ll
Derek Schuff c3f6be5350 [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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@328049 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-20 22:01:32 +00:00

18 lines
608 B
LLVM

; 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