]> granicus.if.org Git - clang/commitdiff
[PowerPC] Default to -fomit-frame-pointer when optimization is enabled
authorFangrui Song <maskray@google.com>
Fri, 12 Jul 2019 02:14:08 +0000 (02:14 +0000)
committerFangrui Song <maskray@google.com>
Fri, 12 Jul 2019 02:14:08 +0000 (02:14 +0000)
NetBSD, Linux, CloudABI and Hurd already omit frame pointer for PowerPC.
Make it do so for other platforms.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@365862 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains/Clang.cpp
test/Driver/frame-pointer-elim.c

index bc5484538593bb9eeebb929786655348c92bfefa..16360189f141a19ea8d648abe702ff209ae92c4e 100644 (file)
@@ -528,6 +528,9 @@ 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:
     return !areOptimizationsEnabled(Args);
@@ -547,9 +550,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:
index 3e6df2aaf2e7c12a04e1f8fb4758db0ff3d92001..f035860bf0396dfacdbef06d590d0af54c56c6b0 100644 (file)
 // RUN: %clang -### -target x86_64-scei-ps4 -S -O2 %s 2>&1 | \
 // RUN:   FileCheck --check-prefix=KEEP-NON-LEAF %s
 
+// RUN: %clang -### -target powerpc64 -S %s 2>&1 | \
+// RUN:   FileCheck --check-prefix=KEEP-ALL %s
+// RUN: %clang -### -target powerpc64 -S -O1 %s 2>&1 | \
+// RUN:   FileCheck --check-prefix=KEEP-NONE %s
+
 void f0() {}
 void f1() { f0(); }