diff options
| author | 2019-05-31 19:17:39 +0000 | |
|---|---|---|
| committer | 2019-05-31 19:17:39 +0000 | |
| commit | d39340439da6e6fb94fdd0e18d45fc6ce403ecbb (patch) | |
| tree | 31d83de3e56b5679904719161f0f74b516212e82 /gnu/llvm/tools/clang/lib/Driver | |
| parent | Re-enable RETGUARD leaf function optimization for arm64. (diff) | |
| download | wireguard-openbsd-d39340439da6e6fb94fdd0e18d45fc6ce403ecbb.tar.xz wireguard-openbsd-d39340439da6e6fb94fdd0e18d45fc6ce403ecbb.zip | |
Re-enable frame pointer elimination for x86 and mips64 if optimizations are
enabled.
ok visa@
Diffstat (limited to 'gnu/llvm/tools/clang/lib/Driver')
| -rw-r--r-- | gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp b/gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp index 8f69d78d79c..06e98b7c403 100644 --- a/gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp +++ b/gnu/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp @@ -528,6 +528,18 @@ static bool useFramePointerForTargetByDefault(const ArgList &Args, return !areOptimizationsEnabled(Args); } + if (Triple.getOS() == llvm::Triple::OpenBSD) { + switch (Triple.getArch()) { + case llvm::Triple::mips64: + case llvm::Triple::mips64el: + case llvm::Triple::x86: + case llvm::Triple::x86_64: + return !areOptimizationsEnabled(Args); + default: + return true; + } + } + if (Triple.isOSLinux() || Triple.getOS() == llvm::Triple::CloudABI) { switch (Triple.getArch()) { // Don't use a frame pointer on linux if optimizing for certain targets. |
