]> granicus.if.org Git - clang/commitdiff
Merging r310057:
authorHans Wennborg <hans@hanshq.net>
Fri, 4 Aug 2017 17:19:44 +0000 (17:19 +0000)
committerHans Wennborg <hans@hanshq.net>
Fri, 4 Aug 2017 17:19:44 +0000 (17:19 +0000)
------------------------------------------------------------------------
r310057 | smaksimovic | 2017-08-04 05:37:34 -0700 (Fri, 04 Aug 2017) | 8 lines

Revert r304953 for release 5.0.0

This is causing failures when compiling clang with -O3
as one of the structures used by clang is passed by
value and uses the fastcc calling convention.

Faliures manifest for stage2 mips build.

------------------------------------------------------------------------

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

include/clang/Driver/Options.td
lib/Basic/Targets.cpp
lib/Driver/ToolChains/Arch/Mips.cpp
test/CodeGen/mips-madd4.c [deleted file]
test/Preprocessor/init.c

index 753c178eec6aefb61220d3cb1c7c04ab0f11664c..3c0674f598d1a905bf8b7acd3647d1e27e842dc3 100644 (file)
@@ -2019,10 +2019,6 @@ def mdspr2 : Flag<["-"], "mdspr2">, Group<m_Group>;
 def mno_dspr2 : Flag<["-"], "mno-dspr2">, Group<m_Group>;
 def msingle_float : Flag<["-"], "msingle-float">, Group<m_Group>;
 def mdouble_float : Flag<["-"], "mdouble-float">, Group<m_Group>;
-def mmadd4 : Flag<["-"], "mmadd4">, Group<m_Group>,
-  HelpText<"Enable the generation of 4-operand madd.s, madd.d and related instructions.">;
-def mno_madd4 : Flag<["-"], "mno-madd4">, Group<m_Group>,
-  HelpText<"Disable the generation of 4-operand madd.s, madd.d and related instructions.">;
 def mmsa : Flag<["-"], "mmsa">, Group<m_Group>,
   HelpText<"Enable MSA ASE (MIPS only)">;
 def mno_msa : Flag<["-"], "mno-msa">, Group<m_Group>,
index 5d75aa5a752889fe58f18244d06c204ccd7a4ea3..73be2e173fda96dd33c4c3fdb5a8deb5eae4503e 100644 (file)
@@ -8050,7 +8050,6 @@ class MipsTargetInfo : public TargetInfo {
     NoDSP, DSP1, DSP2
   } DspRev;
   bool HasMSA;
-  bool DisableMadd4;
 
 protected:
   bool HasFP64;
@@ -8061,7 +8060,7 @@ public:
       : TargetInfo(Triple), IsMips16(false), IsMicromips(false),
         IsNan2008(false), IsSingleFloat(false), IsNoABICalls(false),
         CanUseBSDABICalls(false), FloatABI(HardFloat), DspRev(NoDSP),
-        HasMSA(false), DisableMadd4(false), HasFP64(false) {
+        HasMSA(false), HasFP64(false) {
     TheCXXABI.set(TargetCXXABI::GenericMIPS);
 
     setABI((getTriple().getArch() == llvm::Triple::mips ||
@@ -8307,9 +8306,6 @@ public:
     if (HasMSA)
       Builder.defineMacro("__mips_msa", Twine(1));
 
-    if (DisableMadd4)
-      Builder.defineMacro("__mips_no_madd4", Twine(1));
-
     Builder.defineMacro("_MIPS_SZPTR", Twine(getPointerWidth(0)));
     Builder.defineMacro("_MIPS_SZINT", Twine(getIntWidth()));
     Builder.defineMacro("_MIPS_SZLONG", Twine(getLongWidth()));
@@ -8472,8 +8468,6 @@ public:
         DspRev = std::max(DspRev, DSP2);
       else if (Feature == "+msa")
         HasMSA = true;
-      else if (Feature == "+nomadd4")
-        DisableMadd4 = true;
       else if (Feature == "+fp64")
         HasFP64 = true;
       else if (Feature == "-fp64")
index b45dcd6db678075cd28057592686a3fba7c18e48..1da90d1dc7ba483e9f5817281961cb0ab9b02ab9 100644 (file)
@@ -297,8 +297,6 @@ void mips::getMIPSTargetFeatures(const Driver &D, const llvm::Triple &Triple,
 
   AddTargetFeature(Args, Features, options::OPT_mno_odd_spreg,
                    options::OPT_modd_spreg, "nooddspreg");
-  AddTargetFeature(Args, Features, options::OPT_mno_madd4, options::OPT_mmadd4,
-                   "nomadd4");
   AddTargetFeature(Args, Features, options::OPT_mlong_calls,
                    options::OPT_mno_long_calls, "long-calls");
   AddTargetFeature(Args, Features, options::OPT_mmt, options::OPT_mno_mt,"mt");
diff --git a/test/CodeGen/mips-madd4.c b/test/CodeGen/mips-madd4.c
deleted file mode 100644 (file)
index bc7bb59..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-// REQUIRES: mips-registered-target
-// RUN: %clang --target=mips64-unknown-linux -S -mmadd4    %s -o -| FileCheck %s -check-prefix=MADD4
-// RUN: %clang --target=mips64-unknown-linux -S -mno-madd4 %s -o -| FileCheck %s -check-prefix=NOMADD4
-// RUN: %clang --target=mips64-unknown-linux -S -mmadd4    -fno-honor-nans %s -o -| FileCheck %s -check-prefix=MADD4-NONAN
-// RUN: %clang --target=mips64-unknown-linux -S -mno-madd4 -fno-honor-nans %s -o -| FileCheck %s -check-prefix=NOMADD4-NONAN
-float madd_s (float f, float g, float h)
-{
-  return (f * g) + h;
-}
-// MADD4:   madd.s
-// NOMADD4: mul.s
-// NOMADD4: add.s
-
-float msub_s (float f, float g, float h)
-{
-  return (f * g) - h;
-}
-// MADD4:   msub.s
-// NOMADD4: mul.s
-// NOMADD4: sub.s
-
-double madd_d (double f, double g, double h)
-{
-  return (f * g) + h;
-}
-// MADD4:   madd.d
-// NOMADD4: mul.d
-// NOMADD4: add.d
-
-double msub_d (double f, double g, double h)
-{
-  return (f * g) - h;
-}
-// MADD4:   msub.d
-// NOMADD4: mul.d
-// NOMADD4: sub.d
-
-
-float nmadd_s (float f, float g, float h)
-{
-  // FIXME: Zero has been explicitly placed to force generation of a positive
-  // zero in IR until pattern used to match this instruction is changed to
-  // comply with negative zero as well.
-  return 0-((f * g) + h);
-}
-// MADD4-NONAN:   nmadd.s
-// NOMADD4-NONAN: mul.s
-// NOMADD4-NONAN: add.s
-// NOMADD4-NONAN: sub.s
-
-float nmsub_s (float f, float g, float h)
-{
-  // FIXME: Zero has been explicitly placed to force generation of a positive
-  // zero in IR until pattern used to match this instruction is changed to
-  // comply with negative zero as well.
-  return 0-((f * g) - h);
-}
-// MADD4-NONAN:   nmsub.s
-// NOMADD4-NONAN: mul.s
-// NOMADD4-NONAN: sub.s
-// NOMADD4-NONAN: sub.s
-
-double nmadd_d (double f, double g, double h)
-{
-  // FIXME: Zero has been explicitly placed to force generation of a positive
-  // zero in IR until pattern used to match this instruction is changed to
-  // comply with negative zero as well.
-  return 0-((f * g) + h);
-}
-// MADD4-NONAN:   nmadd.d
-// NOMADD4-NONAN: mul.d
-// NOMADD4-NONAN: add.d
-// NOMADD4-NONAN: sub.d
-
-double nmsub_d (double f, double g, double h)
-{
-  // FIXME: Zero has been explicitly placed to force generation of a positive
-  // zero in IR until pattern used to match this instruction is changed to
-  // comply with negative zero as well.
-  return 0-((f * g) - h);
-}
-// MADD4-NONAN:   nmsub.d
-// NOMADD4-NONAN: mul.d
-// NOMADD4-NONAN: sub.d
-// NOMADD4-NONAN: sub.d
-
index 5a77d06d240356f36b29514f3354d7abaecf8432..3a8e5dbd3fd89b85e60f594304d324d38c2ed2c3 100644 (file)
 // RUN:   | FileCheck -match-full-lines -check-prefix MIPS-MSA %s
 // MIPS-MSA:#define __mips_msa 1
 //
-// RUN: %clang_cc1 -target-feature +nomadd4 \
-// RUN:   -E -dM -triple=mips-none-none < /dev/null \
-// RUN:   | FileCheck -match-full-lines -check-prefix MIPS-NOMADD4 %s
-// MIPS-NOMADD4:#define __mips_no_madd4 1
-//
-// RUN: %clang_cc1 \
-// RUN:   -E -dM -triple=mips-none-none < /dev/null \
-// RUN:   | FileCheck -match-full-lines -check-prefix MIPS-MADD4 %s
-// MIPS-MADD4-NOT:#define __mips_no_madd4 1
-//
 // RUN: %clang_cc1 -target-cpu mips32r3 -target-feature +nan2008 \
 // RUN:   -E -dM -triple=mips-none-none < /dev/null \
 // RUN:   | FileCheck -match-full-lines -check-prefix MIPS-NAN2008 %s