From: Akira Hatanaka Date: Fri, 26 Feb 2016 05:07:00 +0000 (+0000) Subject: [Driver] Disable frame pointer elimination by default if target is X-Git-Tag: llvmorg-3.9.0-rc1~13161 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8f5866a7a8088b1dede1d03c7a280b254d2ecaa1;p=platform%2Fupstream%2Fllvm.git [Driver] Disable frame pointer elimination by default if target is x86_64-pc-win32-macho. rdar://problem/24470634 llvm-svn: 261976 --- diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp index 0cb49af..d81b0ae 100644 --- a/clang/lib/Driver/Tools.cpp +++ b/clang/lib/Driver/Tools.cpp @@ -2955,6 +2955,8 @@ static bool shouldUseFramePointerForTarget(const ArgList &Args, switch (Triple.getArch()) { case llvm::Triple::x86: return !areOptimizationsEnabled(Args); + case llvm::Triple::x86_64: + return Triple.isOSBinFormatMachO(); case llvm::Triple::arm: case llvm::Triple::thumb: // Windows on ARM builds with FPO disabled to aid fast stack walking diff --git a/clang/test/Driver/frame-pointer.c b/clang/test/Driver/frame-pointer.c index 1d63f2c..cec1686 100644 --- a/clang/test/Driver/frame-pointer.c +++ b/clang/test/Driver/frame-pointer.c @@ -10,6 +10,7 @@ // RUN: %clang -target x86_64-pc-linux -### -S -O2 %s -o %t.s 2>&1 | FileCheck -check-prefix=CHECK2-64 %s // RUN: %clang -target x86_64-pc-linux -### -S -O3 %s -o %t.s 2>&1 | FileCheck -check-prefix=CHECK3-64 %s // RUN: %clang -target x86_64-pc-linux -### -S -Os %s -o %t.s 2>&1 | FileCheck -check-prefix=CHECKs-64 %s +// RUN: %clang -target x86_64-pc-win32-macho -### -S -O3 %s -o %t.s 2>&1 | FileCheck -check-prefix=CHECK-MACHO-64 %s // Trust the above to get the optimizations right, and just test other targets // that want this by default. @@ -36,3 +37,4 @@ // CHECK2-64-NOT: -mdisable-fp-elim // CHECK3-64-NOT: -mdisable-fp-elim // CHECKs-64-NOT: -mdisable-fp-elim +// CHECK-MACHO-64: -mdisable-fp-elim