summaryrefslogtreecommitdiffstats
path: root/clang
diff options
context:
space:
mode:
authorStefan Maksimovic <stefan.maksimovic@imgtec.com>2017-08-04 12:37:34 +0000
committerStefan Maksimovic <stefan.maksimovic@imgtec.com>2017-08-04 12:37:34 +0000
commit5c7aaa5ff399b4a770347dcc2d6ed2a2c0e9c654 (patch)
tree4700f1adbece79a6927881ef7cfdf40475342d62 /clang
parenta9a7086319f5c4951bbe3f94051d4c6dc647b23a (diff)
downloadbcm5719-llvm-5c7aaa5ff399b4a770347dcc2d6ed2a2c0e9c654.tar.gz
bcm5719-llvm-5c7aaa5ff399b4a770347dcc2d6ed2a2c0e9c654.zip
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. llvm-svn: 310057
Diffstat (limited to 'clang')
-rw-r--r--clang/include/clang/Driver/Options.td4
-rw-r--r--clang/lib/Basic/Targets/Mips.cpp3
-rw-r--r--clang/lib/Basic/Targets/Mips.h5
-rw-r--r--clang/lib/Driver/ToolChains/Arch/Mips.cpp2
-rw-r--r--clang/test/CodeGen/mips-madd4.c87
-rw-r--r--clang/test/Preprocessor/init.c10
6 files changed, 1 insertions, 110 deletions
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
index 571d52fc0aa..4350f6361e5 100644
--- a/clang/include/clang/Driver/Options.td
+++ b/clang/include/clang/Driver/Options.td
@@ -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>,
diff --git a/clang/lib/Basic/Targets/Mips.cpp b/clang/lib/Basic/Targets/Mips.cpp
index 065138b1448..798345546b4 100644
--- a/clang/lib/Basic/Targets/Mips.cpp
+++ b/clang/lib/Basic/Targets/Mips.cpp
@@ -166,9 +166,6 @@ void MipsTargetInfo::getTargetDefines(const LangOptions &Opts,
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()));
diff --git a/clang/lib/Basic/Targets/Mips.h b/clang/lib/Basic/Targets/Mips.h
index 20382b280a6..e5e5e4bab41 100644
--- a/clang/lib/Basic/Targets/Mips.h
+++ b/clang/lib/Basic/Targets/Mips.h
@@ -52,7 +52,6 @@ class LLVM_LIBRARY_VISIBILITY MipsTargetInfo : public TargetInfo {
enum MipsFloatABI { HardFloat, SoftFloat } FloatABI;
enum DspRevEnum { NoDSP, DSP1, DSP2 } DspRev;
bool HasMSA;
- bool DisableMadd4;
protected:
bool HasFP64;
@@ -63,7 +62,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 ||
@@ -320,8 +319,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")
diff --git a/clang/lib/Driver/ToolChains/Arch/Mips.cpp b/clang/lib/Driver/ToolChains/Arch/Mips.cpp
index c0e5c2e7a4f..c11e2518354 100644
--- a/clang/lib/Driver/ToolChains/Arch/Mips.cpp
+++ b/clang/lib/Driver/ToolChains/Arch/Mips.cpp
@@ -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/clang/test/CodeGen/mips-madd4.c b/clang/test/CodeGen/mips-madd4.c
deleted file mode 100644
index bc7bb593f95..00000000000
--- a/clang/test/CodeGen/mips-madd4.c
+++ /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
-
diff --git a/clang/test/Preprocessor/init.c b/clang/test/Preprocessor/init.c
index 11f05e6241e..dd213308d61 100644
--- a/clang/test/Preprocessor/init.c
+++ b/clang/test/Preprocessor/init.c
@@ -4840,16 +4840,6 @@
// 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
OpenPOWER on IntegriCloud