diff options
author | Craig Topper <craig.topper@gmail.com> | 2015-03-31 05:52:57 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2015-03-31 05:52:57 +0000 |
commit | f8cfe1ded6adbde4b56f772dba1975544c653632 (patch) | |
tree | b3757ff604f1587eb73ad629fa47de0dbd796f5d /llvm/lib/MC/SubtargetFeature.cpp | |
parent | a8bd6008ee99a5b9a53d510a6523fe0a3109a0c6 (diff) | |
download | bcm5719-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.cpp | 5 |
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. |