diff options
author | wanglei <wanglei@loongson.cn> | 2024-06-12 17:41:26 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-12 17:41:26 +0800 |
commit | 7a4fab410124144f0196bdee6645b649799dec15 (patch) | |
tree | 58d18cbba153b2d87727f596a0a0c67320339838 | |
parent | ea6577a74baebcc287f8b24d8b098f1d70085911 (diff) | |
download | llvm-7a4fab410124144f0196bdee6645b649799dec15.zip llvm-7a4fab410124144f0196bdee6645b649799dec15.tar.gz llvm-7a4fab410124144f0196bdee6645b649799dec15.tar.bz2 |
[LoongArch] Emit error messages when using emulated TLS
Reviewed By: SixWeining
Pull Request: https://github.com/llvm/llvm-project/pull/92483
-rw-r--r-- | llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp | 4 | ||||
-rw-r--r-- | llvm/test/CodeGen/LoongArch/emutls.ll | 11 |
2 files changed, 15 insertions, 0 deletions
diff --git a/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp b/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp index 9d7e463..1721287 100644 --- a/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp +++ b/llvm/lib/Target/LoongArch/LoongArchISelLowering.cpp @@ -945,6 +945,10 @@ LoongArchTargetLowering::lowerGlobalTLSAddress(SDValue Op, GlobalAddressSDNode *N = cast<GlobalAddressSDNode>(Op); assert(N->getOffset() == 0 && "unexpected offset in global node"); + if (DAG.getTarget().useEmulatedTLS()) + report_fatal_error("the emulated TLS is prohibited", + /*GenCrashDiag=*/false); + bool IsDesc = DAG.getTarget().useTLSDESC(); switch (getTargetMachine().getTLSModel(N->getGlobal())) { diff --git a/llvm/test/CodeGen/LoongArch/emutls.ll b/llvm/test/CodeGen/LoongArch/emutls.ll new file mode 100644 index 0000000..7824ce3 --- /dev/null +++ b/llvm/test/CodeGen/LoongArch/emutls.ll @@ -0,0 +1,11 @@ +; RUN: not llc --mtriple=loongarch64 -emulated-tls -mattr=+d \ +; RUN: -relocation-model=pic < %s 2>&1 | FileCheck %s + +; CHECK: LLVM ERROR: the emulated TLS is prohibited + +@x = thread_local global i8 7, align 2 + +define ptr @get_x() nounwind { +entry: + ret ptr @x +} |