forked from OSchip/llvm-project
[X86] Use fallthroughs to reduce the number of calls to setFeatureEnabled for different CPUs.
llvm-svn: 221437
This commit is contained in:
parent
83f0ea8982
commit
db4dc08630
|
@ -2142,10 +2142,13 @@ void X86TargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features) const {
|
|||
break;
|
||||
case CK_PentiumMMX:
|
||||
case CK_Pentium2:
|
||||
case CK_K6:
|
||||
case CK_WinChipC6:
|
||||
setFeatureEnabledImpl(Features, "mmx", true);
|
||||
break;
|
||||
case CK_Pentium3:
|
||||
case CK_Pentium3M:
|
||||
case CK_C3_2:
|
||||
setFeatureEnabledImpl(Features, "sse", true);
|
||||
break;
|
||||
case CK_PentiumM:
|
||||
|
@ -2161,6 +2164,7 @@ void X86TargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features) const {
|
|||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
break;
|
||||
case CK_Core2:
|
||||
case CK_Atom:
|
||||
setFeatureEnabledImpl(Features, "ssse3", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
break;
|
||||
|
@ -2168,107 +2172,59 @@ void X86TargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features) const {
|
|||
setFeatureEnabledImpl(Features, "sse4.1", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
break;
|
||||
case CK_Atom:
|
||||
setFeatureEnabledImpl(Features, "ssse3", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
break;
|
||||
case CK_Silvermont:
|
||||
setFeatureEnabledImpl(Features, "sse4.2", true);
|
||||
setFeatureEnabledImpl(Features, "aes", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
setFeatureEnabledImpl(Features, "pclmul", true);
|
||||
break;
|
||||
case CK_Corei7:
|
||||
setFeatureEnabledImpl(Features, "sse4.2", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
break;
|
||||
case CK_Corei7AVX:
|
||||
setFeatureEnabledImpl(Features, "avx", true);
|
||||
setFeatureEnabledImpl(Features, "aes", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
setFeatureEnabledImpl(Features, "pclmul", true);
|
||||
break;
|
||||
case CK_CoreAVXi:
|
||||
setFeatureEnabledImpl(Features, "avx", true);
|
||||
setFeatureEnabledImpl(Features, "aes", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
setFeatureEnabledImpl(Features, "pclmul", true);
|
||||
setFeatureEnabledImpl(Features, "rdrnd", true);
|
||||
setFeatureEnabledImpl(Features, "f16c", true);
|
||||
setFeatureEnabledImpl(Features, "fsgsbase", true);
|
||||
break;
|
||||
case CK_CoreAVX2:
|
||||
setFeatureEnabledImpl(Features, "avx2", true);
|
||||
setFeatureEnabledImpl(Features, "aes", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
setFeatureEnabledImpl(Features, "pclmul", true);
|
||||
setFeatureEnabledImpl(Features, "lzcnt", true);
|
||||
setFeatureEnabledImpl(Features, "rdrnd", true);
|
||||
setFeatureEnabledImpl(Features, "f16c", true);
|
||||
setFeatureEnabledImpl(Features, "fsgsbase", true);
|
||||
setFeatureEnabledImpl(Features, "bmi", true);
|
||||
setFeatureEnabledImpl(Features, "bmi2", true);
|
||||
setFeatureEnabledImpl(Features, "rtm", true);
|
||||
setFeatureEnabledImpl(Features, "fma", true);
|
||||
break;
|
||||
case CK_Broadwell:
|
||||
setFeatureEnabledImpl(Features, "avx2", true);
|
||||
setFeatureEnabledImpl(Features, "aes", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
setFeatureEnabledImpl(Features, "pclmul", true);
|
||||
setFeatureEnabledImpl(Features, "lzcnt", true);
|
||||
setFeatureEnabledImpl(Features, "rdrnd", true);
|
||||
setFeatureEnabledImpl(Features, "f16c", true);
|
||||
setFeatureEnabledImpl(Features, "fsgsbase", true);
|
||||
setFeatureEnabledImpl(Features, "bmi", true);
|
||||
setFeatureEnabledImpl(Features, "bmi2", true);
|
||||
setFeatureEnabledImpl(Features, "rtm", true);
|
||||
setFeatureEnabledImpl(Features, "fma", true);
|
||||
setFeatureEnabledImpl(Features, "rdseed", true);
|
||||
setFeatureEnabledImpl(Features, "adx", true);
|
||||
break;
|
||||
case CK_KNL:
|
||||
setFeatureEnabledImpl(Features, "avx512f", true);
|
||||
setFeatureEnabledImpl(Features, "avx512cd", true);
|
||||
setFeatureEnabledImpl(Features, "avx512er", true);
|
||||
setFeatureEnabledImpl(Features, "avx512pf", true);
|
||||
setFeatureEnabledImpl(Features, "aes", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
setFeatureEnabledImpl(Features, "pclmul", true);
|
||||
setFeatureEnabledImpl(Features, "lzcnt", true);
|
||||
setFeatureEnabledImpl(Features, "rdrnd", true);
|
||||
setFeatureEnabledImpl(Features, "f16c", true);
|
||||
setFeatureEnabledImpl(Features, "fsgsbase", true);
|
||||
setFeatureEnabledImpl(Features, "bmi", true);
|
||||
setFeatureEnabledImpl(Features, "bmi2", true);
|
||||
setFeatureEnabledImpl(Features, "rtm", true);
|
||||
setFeatureEnabledImpl(Features, "fma", true);
|
||||
setFeatureEnabledImpl(Features, "rdseed", true);
|
||||
setFeatureEnabledImpl(Features, "adx", true);
|
||||
break;
|
||||
case CK_SKX:
|
||||
setFeatureEnabledImpl(Features, "avx512f", true);
|
||||
setFeatureEnabledImpl(Features, "avx512cd", true);
|
||||
setFeatureEnabledImpl(Features, "avx512dq", true);
|
||||
setFeatureEnabledImpl(Features, "avx512bw", true);
|
||||
setFeatureEnabledImpl(Features, "avx512vl", true);
|
||||
setFeatureEnabledImpl(Features, "aes", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
setFeatureEnabledImpl(Features, "pclmul", true);
|
||||
// FALLTHROUGH
|
||||
case CK_Broadwell:
|
||||
setFeatureEnabledImpl(Features, "rdseed", true);
|
||||
setFeatureEnabledImpl(Features, "adx", true);
|
||||
// FALLTHROUGH
|
||||
case CK_CoreAVX2:
|
||||
setFeatureEnabledImpl(Features, "avx2", true);
|
||||
setFeatureEnabledImpl(Features, "lzcnt", true);
|
||||
setFeatureEnabledImpl(Features, "rdrnd", true);
|
||||
setFeatureEnabledImpl(Features, "f16c", true);
|
||||
setFeatureEnabledImpl(Features, "fsgsbase", true);
|
||||
setFeatureEnabledImpl(Features, "bmi", true);
|
||||
setFeatureEnabledImpl(Features, "bmi2", true);
|
||||
setFeatureEnabledImpl(Features, "rtm", true);
|
||||
setFeatureEnabledImpl(Features, "fma", true);
|
||||
// FALLTHROUGH
|
||||
case CK_CoreAVXi:
|
||||
setFeatureEnabledImpl(Features, "rdrnd", true);
|
||||
setFeatureEnabledImpl(Features, "f16c", true);
|
||||
setFeatureEnabledImpl(Features, "fsgsbase", true);
|
||||
// FALLTHROUGH
|
||||
case CK_Corei7AVX:
|
||||
setFeatureEnabledImpl(Features, "avx", true);
|
||||
// FALLTHROUGH
|
||||
case CK_Silvermont:
|
||||
setFeatureEnabledImpl(Features, "aes", true);
|
||||
setFeatureEnabledImpl(Features, "pclmul", true);
|
||||
// FALLTHROUGH
|
||||
case CK_Corei7:
|
||||
setFeatureEnabledImpl(Features, "sse4.2", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
break;
|
||||
case CK_KNL:
|
||||
setFeatureEnabledImpl(Features, "avx512f", true);
|
||||
setFeatureEnabledImpl(Features, "avx512cd", true);
|
||||
setFeatureEnabledImpl(Features, "avx512er", true);
|
||||
setFeatureEnabledImpl(Features, "avx512pf", true);
|
||||
setFeatureEnabledImpl(Features, "rdseed", true);
|
||||
setFeatureEnabledImpl(Features, "adx", true);
|
||||
break;
|
||||
case CK_K6:
|
||||
case CK_WinChipC6:
|
||||
setFeatureEnabledImpl(Features, "mmx", true);
|
||||
setFeatureEnabledImpl(Features, "lzcnt", true);
|
||||
setFeatureEnabledImpl(Features, "bmi", true);
|
||||
setFeatureEnabledImpl(Features, "bmi2", true);
|
||||
setFeatureEnabledImpl(Features, "rtm", true);
|
||||
setFeatureEnabledImpl(Features, "fma", true);
|
||||
setFeatureEnabledImpl(Features, "rdrnd", true);
|
||||
setFeatureEnabledImpl(Features, "f16c", true);
|
||||
setFeatureEnabledImpl(Features, "fsgsbase", true);
|
||||
setFeatureEnabledImpl(Features, "aes", true);
|
||||
setFeatureEnabledImpl(Features, "pclmul", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
break;
|
||||
case CK_K6_2:
|
||||
case CK_K6_3:
|
||||
|
@ -2294,36 +2250,30 @@ void X86TargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features) const {
|
|||
setFeatureEnabledImpl(Features, "sse2", true);
|
||||
setFeatureEnabledImpl(Features, "3dnowa", true);
|
||||
break;
|
||||
case CK_AMDFAM10:
|
||||
setFeatureEnabledImpl(Features, "sse4a", true);
|
||||
setFeatureEnabledImpl(Features, "lzcnt", true);
|
||||
setFeatureEnabledImpl(Features, "popcnt", true);
|
||||
// FALLTHROUGH
|
||||
case CK_K8SSE3:
|
||||
case CK_OpteronSSE3:
|
||||
case CK_Athlon64SSE3:
|
||||
setFeatureEnabledImpl(Features, "sse3", true);
|
||||
setFeatureEnabledImpl(Features, "3dnowa", true);
|
||||
break;
|
||||
case CK_AMDFAM10:
|
||||
setFeatureEnabledImpl(Features, "sse3", true);
|
||||
setFeatureEnabledImpl(Features, "sse4a", true);
|
||||
setFeatureEnabledImpl(Features, "3dnowa", true);
|
||||
setFeatureEnabledImpl(Features, "lzcnt", true);
|
||||
setFeatureEnabledImpl(Features, "popcnt", true);
|
||||
break;
|
||||
case CK_BTVER2:
|
||||
setFeatureEnabledImpl(Features, "avx", true);
|
||||
setFeatureEnabledImpl(Features, "aes", true);
|
||||
setFeatureEnabledImpl(Features, "pclmul", true);
|
||||
setFeatureEnabledImpl(Features, "bmi", true);
|
||||
setFeatureEnabledImpl(Features, "f16c", true);
|
||||
// FALLTHROUGH
|
||||
case CK_BTVER1:
|
||||
setFeatureEnabledImpl(Features, "ssse3", true);
|
||||
setFeatureEnabledImpl(Features, "sse4a", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
setFeatureEnabledImpl(Features, "lzcnt", true);
|
||||
setFeatureEnabledImpl(Features, "popcnt", true);
|
||||
setFeatureEnabledImpl(Features, "prfchw", true);
|
||||
break;
|
||||
case CK_BTVER2:
|
||||
setFeatureEnabledImpl(Features, "avx", true);
|
||||
setFeatureEnabledImpl(Features, "sse4a", true);
|
||||
setFeatureEnabledImpl(Features, "lzcnt", true);
|
||||
setFeatureEnabledImpl(Features, "aes", true);
|
||||
setFeatureEnabledImpl(Features, "pclmul", true);
|
||||
setFeatureEnabledImpl(Features, "prfchw", true);
|
||||
setFeatureEnabledImpl(Features, "bmi", true);
|
||||
setFeatureEnabledImpl(Features, "f16c", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
break;
|
||||
case CK_BDVER1:
|
||||
|
@ -2353,9 +2303,6 @@ void X86TargetInfo::getDefaultFeatures(llvm::StringMap<bool> &Features) const {
|
|||
setFeatureEnabledImpl(Features, "tbm", true);
|
||||
setFeatureEnabledImpl(Features, "cx16", true);
|
||||
break;
|
||||
case CK_C3_2:
|
||||
setFeatureEnabledImpl(Features, "sse", true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue