summaryrefslogtreecommitdiffstats
path: root/clang/lib
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2013-03-28 13:51:36 +0000
committerHal Finkel <hfinkel@anl.gov>2013-03-28 13:51:36 +0000
commit1fe8b3dd4b99b4782c093720ee50a84664a69e86 (patch)
tree10d49b8c3950d7ce849efe86e922c039decb2569 /clang/lib
parent584da4043ea7762612fb1ac0a4d36f1fffe27a12 (diff)
downloadbcm5719-llvm-1fe8b3dd4b99b4782c093720ee50a84664a69e86.tar.gz
bcm5719-llvm-1fe8b3dd4b99b4782c093720ee50a84664a69e86.zip
Add support for gcc-compatible -mpopcntd -mno-popcntd PPC options
gcc provides -mpopcntd and -mno-popcntd for controlling the popcntd target feature; support these options as well. llvm-svn: 178235
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Basic/Targets.cpp3
-rw-r--r--clang/lib/Driver/Tools.cpp4
2 files changed, 6 insertions, 1 deletions
diff --git a/clang/lib/Basic/Targets.cpp b/clang/lib/Basic/Targets.cpp
index 8dc9b20f4cb..4ca8fbf7736 100644
--- a/clang/lib/Basic/Targets.cpp
+++ b/clang/lib/Basic/Targets.cpp
@@ -1029,7 +1029,8 @@ void PPCTargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features) const {
bool PPCTargetInfo::setFeatureEnabled(llvm::StringMap<bool> &Features,
StringRef Name,
bool Enabled) const {
- if (Name == "altivec" || Name == "mfocrf" || Name == "qpx") {
+ if (Name == "altivec" || Name == "mfocrf" || Name == "popcntd" ||
+ Name == "qpx") {
Features[Name] = Enabled;
return true;
}
diff --git a/clang/lib/Driver/Tools.cpp b/clang/lib/Driver/Tools.cpp
index 1c455eda4af..578651fd801 100644
--- a/clang/lib/Driver/Tools.cpp
+++ b/clang/lib/Driver/Tools.cpp
@@ -1106,6 +1106,10 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
options::OPT_mmfcrf, options::OPT_mno_mfcrf,
"mfocrf");
+ AddTargetFeature(Args, CmdArgs,
+ options::OPT_mpopcntd, options::OPT_mno_popcntd,
+ "popcntd");
+
// It is really only possible to turn qpx off because turning qpx on is tied
// to using the a2q CPU.
if (Args.hasFlag(options::OPT_mno_qpx, options::OPT_mqpx, false)) {
OpenPOWER on IntegriCloud