summaryrefslogtreecommitdiffstats
path: root/llvm/lib/MC/SubtargetFeature.cpp
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2015-03-31 05:52:57 +0000
committerCraig Topper <craig.topper@gmail.com>2015-03-31 05:52:57 +0000
commitf8cfe1ded6adbde4b56f772dba1975544c653632 (patch)
treeb3757ff604f1587eb73ad629fa47de0dbd796f5d /llvm/lib/MC/SubtargetFeature.cpp
parenta8bd6008ee99a5b9a53d510a6523fe0a3109a0c6 (diff)
downloadbcm5719-llvm-f8cfe1ded6adbde4b56f772dba1975544c653632.tar.gz
bcm5719-llvm-f8cfe1ded6adbde4b56f772dba1975544c653632.zip
Make llc use getHostCPUFeatures when 'native' is specified for cpu.
This is necessary for x86 where not all Sandybridge, Ivybrige, Haswell, and Broadwell CPUs support AVX. Currently we modify the CPU name back to Nehalem for this case, but that turns off additional features for these CPUs. llvm-svn: 233673
Diffstat (limited to 'llvm/lib/MC/SubtargetFeature.cpp')
-rw-r--r--llvm/lib/MC/SubtargetFeature.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/MC/SubtargetFeature.cpp b/llvm/lib/MC/SubtargetFeature.cpp
index fcb43d63cb9..3880d883389 100644
--- a/llvm/lib/MC/SubtargetFeature.cpp
+++ b/llvm/lib/MC/SubtargetFeature.cpp
@@ -81,11 +81,12 @@ static std::string Join(const std::vector<std::string> &V) {
}
/// Adding features.
-void SubtargetFeatures::AddFeature(StringRef String) {
+void SubtargetFeatures::AddFeature(StringRef String, bool Enable) {
// Don't add empty features.
if (!String.empty())
// Convert to lowercase, prepend flag if we don't already have a flag.
- Features.push_back(hasFlag(String) ? String.lower() : "+" + String.lower());
+ Features.push_back(hasFlag(String) ? String.lower()
+ : (Enable ? "+" : "-") + String.lower());
}
/// Find KV in array using binary search.
OpenPOWER on IntegriCloud