diff options
| author | 2020-05-25 21:36:31 +0000 | |
|---|---|---|
| committer | 2020-05-25 21:36:31 +0000 | |
| commit | fc80bb454272d95873f0fcb9cae4ef92ee9133f4 (patch) | |
| tree | c09893dd38875eec045efa9ee535b627e6cce4b2 /gnu/llvm/tools/clang/lib/Driver | |
| parent | sync from MAKEDEV.md (diff) | |
| download | wireguard-openbsd-fc80bb454272d95873f0fcb9cae4ef92ee9133f4.tar.xz wireguard-openbsd-fc80bb454272d95873f0fcb9cae4ef92ee9133f4.zip | |
PowerPC: optimize away the frame pointer.
clang defaulted to -fomit-frame-pointer when optimizing PowerPC code
for Linux and NetBSD. Now do it for all systems, including OpenBSD.
This affects both 32-bit and powerpc64 code.
ok kettenis@
Diffstat (limited to 'gnu/llvm/tools/clang/lib/Driver')
| -rw-r--r-- | gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp b/gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp index f155c409f9a..fc9a145db0c 100644 --- a/gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp +++ b/gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp @@ -523,8 +523,12 @@ static bool useFramePointerForTargetByDefault(const ArgList &Args, // XCore never wants frame pointers, regardless of OS. // WebAssembly never wants frame pointers. return false; + case llvm::Triple::ppc: + case llvm::Triple::ppc64: + case llvm::Triple::ppc64le: case llvm::Triple::riscv32: case llvm::Triple::riscv64: + // PowerPC's frame pointer is often an extra copy of the stack pointer. return !areOptimizationsEnabled(Args); default: break; @@ -542,9 +546,6 @@ static bool useFramePointerForTargetByDefault(const ArgList &Args, case llvm::Triple::mips64el: case llvm::Triple::mips: case llvm::Triple::mipsel: - case llvm::Triple::ppc: - case llvm::Triple::ppc64: - case llvm::Triple::ppc64le: case llvm::Triple::systemz: case llvm::Triple::x86: case llvm::Triple::x86_64: |
