diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp --- a/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyLowerEmscriptenEHSjLj.cpp @@ -422,7 +422,7 @@ // shared-memory module, which we don't want to be responsible for. auto *Subtarget = TM.getSubtargetImpl(); auto TLS = Subtarget->hasAtomics() && Subtarget->hasBulkMemory() - ? GlobalValue::LocalExecTLSModel + ? GlobalValue::GeneralDynamicTLSModel : GlobalValue::NotThreadLocal; GV->setThreadLocalMode(TLS); return GV; diff --git a/llvm/test/CodeGen/WebAssembly/lower-em-exceptions.ll b/llvm/test/CodeGen/WebAssembly/lower-em-exceptions.ll --- a/llvm/test/CodeGen/WebAssembly/lower-em-exceptions.ll +++ b/llvm/test/CodeGen/WebAssembly/lower-em-exceptions.ll @@ -9,8 +9,8 @@ @_ZTIc = external constant i8* ; NO-TLS-DAG: __THREW__ = external global [[PTR]] ; NO-TLS-DAG: __threwValue = external global i32 -; TLS-DAG: __THREW__ = external thread_local(localexec) global [[PTR]] -; TLS-DAG: __threwValue = external thread_local(localexec) global i32 +; TLS-DAG: __THREW__ = external thread_local global [[PTR]] +; TLS-DAG: __threwValue = external thread_local global i32 ; Test invoke instruction with clauses (try-catch block) define void @clause() personality i8* bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { diff --git a/llvm/test/CodeGen/WebAssembly/lower-em-sjlj.ll b/llvm/test/CodeGen/WebAssembly/lower-em-sjlj.ll --- a/llvm/test/CodeGen/WebAssembly/lower-em-sjlj.ll +++ b/llvm/test/CodeGen/WebAssembly/lower-em-sjlj.ll @@ -10,8 +10,8 @@ @global_var = global i32 0, align 4 ; NO-TLS-DAG: __THREW__ = external global [[PTR]] ; NO-TLS-DAG: __threwValue = external global [[PTR]] -; TLS-DAG: __THREW__ = external thread_local(localexec) global i32 -; TLS-DAG: __threwValue = external thread_local(localexec) global i32 +; TLS-DAG: __THREW__ = external thread_local global i32 +; TLS-DAG: __threwValue = external thread_local global i32 @global_longjmp_ptr = global void (%struct.__jmp_buf_tag*, i32)* @longjmp, align 4 ; CHECK-DAG: @global_longjmp_ptr = global void (%struct.__jmp_buf_tag*, i32)* bitcast (void ([[PTR]], i32)* @emscripten_longjmp to void (%struct.__jmp_buf_tag*, i32)*)