summaryrefslogtreecommitdiffstats
path: root/clang/lib/Driver/Tools.cpp
diff options
context:
space:
mode:
authorAkira Hatanaka <ahatanaka@mips.com>2013-10-16 17:13:08 +0000
committerAkira Hatanaka <ahatanaka@mips.com>2013-10-16 17:13:08 +0000
commit3764e6c112bcca4b66c974378140b5e9b24038f8 (patch)
tree16c055fd4af9a4451498164f2154a267edfc2a70 /clang/lib/Driver/Tools.cpp
parent1aeda01c441cd696e7fac21a238564f9a7987eb0 (diff)
downloadbcm5719-llvm-3764e6c112bcca4b66c974378140b5e9b24038f8.tar.gz
bcm5719-llvm-3764e6c112bcca4b66c974378140b5e9b24038f8.zip
[mips] Enable frame-pointer elimination for -O1 and above.
llvm-svn: 192815
Diffstat (limited to 'clang/lib/Driver/Tools.cpp')
-rw-r--r--clang/lib/Driver/Tools.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 9b23cbf9319..52efc1c654b 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -1794,7 +1794,11 @@ static bool shouldUseFramePointer(const ArgList &Args,
// Don't use a frame pointer on linux x86, x86_64 and z if optimizing.
if ((Triple.getArch() == llvm::Triple::x86_64 ||
Triple.getArch() == llvm::Triple::x86 ||
- Triple.getArch() == llvm::Triple::systemz) &&
+ Triple.getArch() == llvm::Triple::systemz ||
+ Triple.getArch() == llvm::Triple::mips ||
+ Triple.getArch() == llvm::Triple::mipsel ||
+ Triple.getArch() == llvm::Triple::mips64 ||
+ Triple.getArch() == llvm::Triple::mips64el) &&
Triple.isOSLinux()) {
if (Arg *A = Args.getLastArg(options::OPT_O_Group))
if (!A->getOption().matches(options::OPT_O0))
@@ -1816,7 +1820,11 @@ static bool shouldUseLeafFramePointer(const ArgList &Args,
// Don't use a leaf frame pointer on linux x86, x86_64 and z if optimizing.
if ((Triple.getArch() == llvm::Triple::x86_64 ||
Triple.getArch() == llvm::Triple::x86 ||
- Triple.getArch() == llvm::Triple::systemz) &&
+ Triple.getArch() == llvm::Triple::systemz ||
+ Triple.getArch() == llvm::Triple::mips ||
+ Triple.getArch() == llvm::Triple::mipsel ||
+ Triple.getArch() == llvm::Triple::mips64 ||
+ Triple.getArch() == llvm::Triple::mips64el) &&
Triple.isOSLinux()) {
if (Arg *A = Args.getLastArg(options::OPT_O_Group))
if (!A->getOption().matches(options::OPT_O0))
OpenPOWER on IntegriCloud