diff options
author | Craig Topper <craig.topper@intel.com> | 2017-07-13 06:34:10 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@intel.com> | 2017-07-13 06:34:10 +0000 |
commit | 719506a866bb3dd9b60110a8d6dd29c9aa461ec6 (patch) | |
tree | 513226f3a5b8199899f5958277fae0a6ce730d83 | |
parent | 8ca723ae601b3626fb9864ecd1e7d69be020f597 (diff) |
[X86] Simplify the getHostCPUName for AMD family 6 and 15.
As far as I can tell we can simply distinguish based on features rather than model number. Many of the strings we were previously using are treated the same by the backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307884 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Support/Host.cpp | 49 |
1 files changed, 11 insertions, 38 deletions
diff --git a/lib/Support/Host.cpp b/lib/Support/Host.cpp index e8cbdce5113..9f22f89b3c9 100644 --- a/lib/Support/Host.cpp +++ b/lib/Support/Host.cpp @@ -336,13 +336,10 @@ enum ProcessorSubtypes { AMDPENTIUM_K62, AMDPENTIUM_K63, AMDPENTIUM_GEODE, - AMDATHLON_TBIRD, - AMDATHLON_MP, + AMDATHLON_CLASSIC, AMDATHLON_XP, + AMDATHLON_K8, AMDATHLON_K8SSE3, - AMDATHLON_OPTERON, - AMDATHLON_FX, - AMDATHLON_64, CPU_SUBTYPE_MAX }; @@ -868,38 +865,20 @@ static void getAMDProcessorTypeAndSubtype(unsigned Family, unsigned Model, break; case 6: *Type = AMDATHLON; - switch (Model) { - case 4: - *Subtype = AMDATHLON_TBIRD; - break; // "athlon-tbird" - case 6: - case 7: - case 8: - *Subtype = AMDATHLON_MP; - break; // "athlon-mp" - case 10: + if (Features & (1 << FEATURE_SSE)) { *Subtype = AMDATHLON_XP; break; // "athlon-xp" } - break; + *Subtype = AMDATHLON_CLASSIC; + break; // "athlon" case 15: *Type = AMDATHLON; if (Features & (1 << FEATURE_SSE3)) { *Subtype = AMDATHLON_K8SSE3; break; // "k8-sse3" } - switch (Model) { - case 1: - *Subtype = AMDATHLON_OPTERON; - break; // "opteron" - case 5: - *Subtype = AMDATHLON_FX; - break; // "athlon-fx"; also opteron - default: - *Subtype = AMDATHLON_64; - break; // "athlon64" - } - break; + *Subtype = AMDATHLON_K8; + break; // "k8" case 16: *Type = AMDFAM10H; // "amdfam10" switch (Model) { @@ -1168,20 +1147,14 @@ StringRef sys::getHostCPUName() { } case AMDATHLON: switch (Subtype) { - case AMDATHLON_TBIRD: - return "athlon-tbird"; - case AMDATHLON_MP: - return "athlon-mp"; + case AMDATHLON_CLASSIC: + return "athlon"; case AMDATHLON_XP: return "athlon-xp"; + case AMDATHLON_K8: + return "k8"; case AMDATHLON_K8SSE3: return "k8-sse3"; - case AMDATHLON_OPTERON: - return "opteron"; - case AMDATHLON_FX: - return "athlon-fx"; - case AMDATHLON_64: - return "athlon64"; default: llvm_unreachable("Unexpected subtype!"); } |