summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/WebAssembly
diff options
context:
space:
mode:
authorGuanzhong Chen <gzchen@google.com>2019-07-18 17:53:22 +0000
committerGuanzhong Chen <gzchen@google.com>2019-07-18 17:53:22 +0000
commit801fa8e6b9eb2398a051752bb0e9d81279360d14 (patch)
tree85dbbbc175c054a527d970f9ea819f05abd0880c /llvm/test/CodeGen/WebAssembly
parent05be1da24cd947187a8b750e9eca45e80d2e7414 (diff)
downloadbcm5719-llvm-801fa8e6b9eb2398a051752bb0e9d81279360d14.tar.gz
bcm5719-llvm-801fa8e6b9eb2398a051752bb0e9d81279360d14.zip
[WebAssembly] Implement __builtin_wasm_tls_base intrinsic
Summary: Add `__builtin_wasm_tls_base` so that LeakSanitizer can find the thread-local block and scan through it for memory leaks. Reviewers: tlively, aheejin, sbc100 Subscribers: dschuff, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D64900 llvm-svn: 366475
Diffstat (limited to 'llvm/test/CodeGen/WebAssembly')
-rw-r--r--llvm/test/CodeGen/WebAssembly/tls-general-dynamic.ll10
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/WebAssembly/tls-general-dynamic.ll b/llvm/test/CodeGen/WebAssembly/tls-general-dynamic.ll
index 3f6d9d325c6..975e2ce5569 100644
--- a/llvm/test/CodeGen/WebAssembly/tls-general-dynamic.ll
+++ b/llvm/test/CodeGen/WebAssembly/tls-general-dynamic.ll
@@ -75,6 +75,15 @@ define i32 @tls_size() {
ret i32 %1
}
+; CHECK-LABEL: tls_base:
+; CHECK-NEXT: .functype tls_base () -> (i32)
+define i8* @tls_base() {
+; CHECK-NEXT: global.get __tls_base
+; CHECK-NEXT: return
+ %1 = call i8* @llvm.wasm.tls.base()
+ ret i8* %1
+}
+
; CHECK: .type tls,@object
; TLS-NEXT: .section .tbss.tls,"",@
; NO-TLS-NEXT: .section .bss.tls,"",@
@@ -84,3 +93,4 @@ define i32 @tls_size() {
@tls = internal thread_local global i32 0
declare i32 @llvm.wasm.tls.size.i32()
+declare i8* @llvm.wasm.tls.base()
OpenPOWER on IntegriCloud