aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKito Cheng <kito.cheng@sifive.com>2023-03-03 15:32:44 +0800
committerKito Cheng <kito.cheng@sifive.com>2023-03-03 16:13:53 +0800
commitbe437f3bb8b657f4d2de4603734f24daa624d204 (patch)
tree00dea93102a3550dec203195755f89259a44c9ae
parente423885e272c0e57c6d240d07bc934e0a8649417 (diff)
downloadllvm-be437f3bb8b657f4d2de4603734f24daa624d204.zip
llvm-be437f3bb8b657f4d2de4603734f24daa624d204.tar.gz
llvm-be437f3bb8b657f4d2de4603734f24daa624d204.tar.bz2
[clang][RISCV] Enable -fasynchronous-unwind-tables by default on Linux
This could improve user experience for stack unwinding, and also this is enabled by default by X86 and AArch64 and RISC-V GCC. Reviewed By: luismarques, MaskRay Differential Revision: https://reviews.llvm.org/D145164
-rw-r--r--clang/lib/Driver/ToolChains/Gnu.cpp2
-rw-r--r--clang/test/Driver/riscv-features.c3
2 files changed, 4 insertions, 1 deletions
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index 3a69a29..24fbdcf 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -2900,6 +2900,8 @@ Generic_GCC::getDefaultUnwindTableLevel(const ArgList &Args) const {
case llvm::Triple::ppcle:
case llvm::Triple::ppc64:
case llvm::Triple::ppc64le:
+ case llvm::Triple::riscv32:
+ case llvm::Triple::riscv64:
case llvm::Triple::x86:
case llvm::Triple::x86_64:
return UnwindTableLevel::Asynchronous;
diff --git a/clang/test/Driver/riscv-features.c b/clang/test/Driver/riscv-features.c
index 37b6f86..98445b1 100644
--- a/clang/test/Driver/riscv-features.c
+++ b/clang/test/Driver/riscv-features.c
@@ -26,7 +26,8 @@
// RUN: %clang --target=riscv64-linux -### %s -fsyntax-only 2>&1 \
// RUN: | FileCheck %s -check-prefix=DEFAULT-LINUX
-// DEFAULT-LINUX: "-target-feature" "+m"
+// DEFAULT-LINUX: "-funwind-tables=2"
+// DEFAULT-LINUX-SAME: "-target-feature" "+m"
// DEFAULT-LINUX-SAME: "-target-feature" "+a"
// DEFAULT-LINUX-SAME: "-target-feature" "+f"
// DEFAULT-LINUX-SAME: "-target-feature" "+d"