r234683 - Add Clang support for -mdirect-move on PPC
Nemanja Ivanovic
nemanja.i.ibm at gmail.com
Sat Apr 11 03:43:36 PDT 2015
Author: nemanjai
Date: Sat Apr 11 05:43:36 2015
New Revision: 234683
URL: http://llvm.org/viewvc/llvm-project?rev=234683&view=rev
Log:
Add Clang support for -mdirect-move on PPC
This patch corresponds to review:
http://reviews.llvm.org/D8930
This just adds a front end option to let the back end know the target has PPC
direct move instructions.
Modified:
cfe/trunk/include/clang/Driver/Options.td
cfe/trunk/lib/Basic/Targets.cpp
Modified: cfe/trunk/include/clang/Driver/Options.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Driver/Options.td?rev=234683&r1=234682&r2=234683&view=diff
==============================================================================
--- cfe/trunk/include/clang/Driver/Options.td (original)
+++ cfe/trunk/include/clang/Driver/Options.td Sat Apr 11 05:43:36 2015
@@ -1269,6 +1269,10 @@ def mpower8_crypto : Flag<["-"], "mcrypt
Group<m_ppc_Features_Group>;
def mnopower8_crypto : Flag<["-"], "mno-crypto">,
Group<m_ppc_Features_Group>;
+def mdirect_move : Flag<["-"], "mdirect-move">,
+ Group<m_ppc_Features_Group>;
+def mnodirect_move : Flag<["-"], "mno-direct-move">,
+ Group<m_ppc_Features_Group>;
def mhtm : Flag<["-"], "mhtm">, Group<m_ppc_Features_Group>;
def mno_htm : Flag<["-"], "mno-htm">, Group<m_ppc_Features_Group>;
def mfprnd : Flag<["-"], "mfprnd">, Group<m_ppc_Features_Group>;
Modified: cfe/trunk/lib/Basic/Targets.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?rev=234683&r1=234682&r2=234683&view=diff
==============================================================================
--- cfe/trunk/lib/Basic/Targets.cpp (original)
+++ cfe/trunk/lib/Basic/Targets.cpp Sat Apr 11 05:43:36 2015
@@ -743,6 +743,7 @@ class PPCTargetInfo : public TargetInfo
bool HasVSX;
bool HasP8Vector;
bool HasP8Crypto;
+ bool HasDirectMove;
bool HasQPX;
bool HasHTM;
bool HasBPERMD;
@@ -754,7 +755,7 @@ protected:
public:
PPCTargetInfo(const llvm::Triple &Triple)
: TargetInfo(Triple), HasVSX(false), HasP8Vector(false),
- HasP8Crypto(false), HasQPX(false), HasHTM(false),
+ HasP8Crypto(false), HasDirectMove(false), HasQPX(false), HasHTM(false),
HasBPERMD(false), HasExtDiv(false) {
BigEndian = (Triple.getArch() != llvm::Triple::ppc64le);
LongDoubleWidth = LongDoubleAlign = 128;
@@ -1035,6 +1036,11 @@ bool PPCTargetInfo::handleTargetFeatures
continue;
}
+ if (Feature == "direct-move") {
+ HasDirectMove = true;
+ continue;
+ }
+
if (Feature == "qpx") {
HasQPX = true;
continue;
@@ -1257,6 +1263,10 @@ void PPCTargetInfo::getDefaultFeatures(l
.Case("pwr8", true)
.Case("pwr7", true)
.Default(false);
+ Features["direct-move"] = llvm::StringSwitch<bool>(CPU)
+ .Case("ppc64le", true)
+ .Case("pwr8", true)
+ .Default(false);
}
bool PPCTargetInfo::hasFeature(StringRef Feature) const {
@@ -1265,6 +1275,7 @@ bool PPCTargetInfo::hasFeature(StringRef
.Case("vsx", HasVSX)
.Case("power8-vector", HasP8Vector)
.Case("crypto", HasP8Crypto)
+ .Case("direct-move", HasDirectMove)
.Case("qpx", HasQPX)
.Case("htm", HasHTM)
.Case("bpermd", HasBPERMD)
More information about the cfe-commits
mailing list