From e414b525f1919e5ee2148eea139121736eed8613 Mon Sep 17 00:00:00 2001
From: Stefan Hepp <stefan@stefant.org>
Date: Fri, 19 Jul 2013 10:26:37 +0000
Subject: [PATCH] Disable FP by default for Patmos when optimizing

---
 lib/Driver/ToolChains.cpp | 7 +++++++
 lib/Driver/ToolChains.h   | 4 ++++
 2 files changed, 11 insertions(+)

diff --git a/lib/Driver/ToolChains.cpp b/lib/Driver/ToolChains.cpp
index 427b3409e4..9c1ad9e597 100644
--- a/lib/Driver/ToolChains.cpp
+++ b/lib/Driver/ToolChains.cpp
@@ -1818,6 +1818,13 @@ const char *PatmosToolChain::GetForcedPicModel() const {
   return 0;
 }
 
+bool PatmosToolChain::UseFramePointerDefault() const {
+  if (Arg *A = getArgs().getLastArg(options::OPT_O_Group))
+    if (A->getOption().matches(options::OPT_O0))
+      return true;
+  return false;
+}
+
 void PatmosToolChain::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
                                                 ArgStringList &CC1Args) const
 {
diff --git a/lib/Driver/ToolChains.h b/lib/Driver/ToolChains.h
index e8efbe343e..783ca67a40 100644
--- a/lib/Driver/ToolChains.h
+++ b/lib/Driver/ToolChains.h
@@ -606,6 +606,10 @@ public:
   }
   virtual bool IsUsingLTODefault() const { return true; }
 
+  virtual bool UseFramePointerDefault() const;
+  virtual bool UseLeafFramePointerDefault() const {
+    return UseFramePointerDefault();
+  }
 
   virtual bool isPICDefault() const { return false; }
   virtual bool isPIEDefault() const { return false; }
-- 
GitLab