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) _______________________________________________ cfe-commits mailing list cfe-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits