[PATCH] D37941: [X86] Move even more of our CPU to feature mapping switch to use fallthroughs

2017-09-17 Thread Phabricator via Phabricator via cfe-commits
This revision was automatically updated to reflect the committed changes.
Closed by commit rL313497: [X86] Move even more of our CPU to feature mapping 
switch to use fallthroughs (authored by ctopper).

Changed prior to commit:
  https://reviews.llvm.org/D37941?vs=115517=115585#toc

Repository:
  rL LLVM

https://reviews.llvm.org/D37941

Files:
  cfe/trunk/lib/Basic/Targets/X86.cpp

Index: cfe/trunk/lib/Basic/Targets/X86.cpp
===
--- cfe/trunk/lib/Basic/Targets/X86.cpp
+++ cfe/trunk/lib/Basic/Targets/X86.cpp
@@ -123,40 +123,14 @@
   case CK_PentiumPro:
   case CK_Lakemont:
 break;
+
   case CK_PentiumMMX:
   case CK_Pentium2:
   case CK_K6:
   case CK_WinChipC6:
 setFeatureEnabledImpl(Features, "mmx", true);
 break;
-  case CK_Pentium3:
-  case CK_C3_2:
-setFeatureEnabledImpl(Features, "sse", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-break;
-  case CK_PentiumM:
-  case CK_Pentium4:
-  case CK_x86_64:
-setFeatureEnabledImpl(Features, "sse2", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-break;
-  case CK_Yonah:
-  case CK_Prescott:
-  case CK_Nocona:
-setFeatureEnabledImpl(Features, "sse3", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-setFeatureEnabledImpl(Features, "cx16", true);
-break;
-  case CK_Core2:
-setFeatureEnabledImpl(Features, "ssse3", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-setFeatureEnabledImpl(Features, "cx16", true);
-break;
-  case CK_Penryn:
-setFeatureEnabledImpl(Features, "sse4.1", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-setFeatureEnabledImpl(Features, "cx16", true);
-break;
+
   case CK_Cannonlake:
 setFeatureEnabledImpl(Features, "avx512ifma", true);
 setFeatureEnabledImpl(Features, "avx512vbmi", true);
@@ -207,9 +181,30 @@
 LLVM_FALLTHROUGH;
   case CK_Nehalem:
 setFeatureEnabledImpl(Features, "sse4.2", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
+LLVM_FALLTHROUGH;
+  case CK_Penryn:
+setFeatureEnabledImpl(Features, "sse4.1", true);
+LLVM_FALLTHROUGH;
+  case CK_Core2:
+setFeatureEnabledImpl(Features, "ssse3", true);
+LLVM_FALLTHROUGH;
+  case CK_Yonah:
+  case CK_Prescott:
+  case CK_Nocona:
+setFeatureEnabledImpl(Features, "sse3", true);
 setFeatureEnabledImpl(Features, "cx16", true);
+LLVM_FALLTHROUGH;
+  case CK_PentiumM:
+  case CK_Pentium4:
+  case CK_x86_64:
+setFeatureEnabledImpl(Features, "sse2", true);
+LLVM_FALLTHROUGH;
+  case CK_Pentium3:
+  case CK_C3_2:
+setFeatureEnabledImpl(Features, "sse", true);
+setFeatureEnabledImpl(Features, "fxsr", true);
 break;
+
   case CK_Goldmont:
 setFeatureEnabledImpl(Features, "sha", true);
 setFeatureEnabledImpl(Features, "rdrnd", true);
@@ -232,6 +227,7 @@
 setFeatureEnabledImpl(Features, "fxsr", true);
 setFeatureEnabledImpl(Features, "cx16", true);
 break;
+
   case CK_KNL:
 setFeatureEnabledImpl(Features, "avx512f", true);
 setFeatureEnabledImpl(Features, "avx512cd", true);
@@ -256,36 +252,34 @@
 setFeatureEnabledImpl(Features, "xsave", true);
 setFeatureEnabledImpl(Features, "movbe", true);
 break;
+
   case CK_K6_2:
   case CK_K6_3:
   case CK_WinChip2:
   case CK_C3:
 setFeatureEnabledImpl(Features, "3dnow", true);
 break;
-  case CK_Athlon:
-  case CK_Geode:
-setFeatureEnabledImpl(Features, "3dnowa", true);
-break;
-  case CK_AthlonXP:
-setFeatureEnabledImpl(Features, "sse", true);
-setFeatureEnabledImpl(Features, "3dnowa", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-break;
-  case CK_K8:
-setFeatureEnabledImpl(Features, "sse2", true);
-setFeatureEnabledImpl(Features, "3dnowa", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-break;
+
   case CK_AMDFAM10:
 setFeatureEnabledImpl(Features, "sse4a", true);
 setFeatureEnabledImpl(Features, "lzcnt", true);
 setFeatureEnabledImpl(Features, "popcnt", true);
 LLVM_FALLTHROUGH;
   case CK_K8SSE3:
 setFeatureEnabledImpl(Features, "sse3", true);
-setFeatureEnabledImpl(Features, "3dnowa", true);
+LLVM_FALLTHROUGH;
+  case CK_K8:
+setFeatureEnabledImpl(Features, "sse2", true);
+LLVM_FALLTHROUGH;
+  case CK_AthlonXP:
+setFeatureEnabledImpl(Features, "sse", true);
 setFeatureEnabledImpl(Features, "fxsr", true);
+LLVM_FALLTHROUGH;
+  case CK_Athlon:
+  case CK_Geode:
+setFeatureEnabledImpl(Features, "3dnowa", true);
 break;
+
   case CK_BTVER2:
 setFeatureEnabledImpl(Features, "avx", true);
 setFeatureEnabledImpl(Features, "aes", true);
@@ -304,6 +298,7 @@
 setFeatureEnabledImpl(Features, "cx16", true);
 setFeatureEnabledImpl(Features, "fxsr", true);
 break;
+
   case CK_ZNVER1:
 setFeatureEnabledImpl(Features, "adx", true);
 setFeatureEnabledImpl(Features, "aes", true);
@@ -332,6 +327,7 @@
 

[PATCH] D37941: [X86] Move even more of our CPU to feature mapping switch to use fallthroughs

2017-09-16 Thread Simon Pilgrim via Phabricator via cfe-commits
RKSimon accepted this revision.
RKSimon added a comment.
This revision is now accepted and ready to land.

LGTM, there are a couple of other fall-throughs that could still be done.




Comment at: lib/Basic/Targets/X86.cpp:141
 setFeatureEnabledImpl(Features, "sse2", true);
 setFeatureEnabledImpl(Features, "fxsr", true);
 break;

CK_Pentium3/CK_C3_2/CK_PentiumM/CK_Pentium4/CK_x86_64 can be put below Yonah et 
al. (unless you're worried about including non-Intel enums)?


https://reviews.llvm.org/D37941



___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


[PATCH] D37941: [X86] Move even more of our CPU to feature mapping switch to use fallthroughs

2017-09-15 Thread Craig Topper via Phabricator via cfe-commits
craig.topper created this revision.

This arranges more of the Intel and AMD CPUs into fallthrough positions based 
on their features. We may be able to merge this new AMD set with the BTVER or 
BDVER sets but I didn't look that closely.


https://reviews.llvm.org/D37941

Files:
  lib/Basic/Targets/X86.cpp


Index: lib/Basic/Targets/X86.cpp
===
--- lib/Basic/Targets/X86.cpp
+++ lib/Basic/Targets/X86.cpp
@@ -140,23 +140,6 @@
 setFeatureEnabledImpl(Features, "sse2", true);
 setFeatureEnabledImpl(Features, "fxsr", true);
 break;
-  case CK_Yonah:
-  case CK_Prescott:
-  case CK_Nocona:
-setFeatureEnabledImpl(Features, "sse3", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-setFeatureEnabledImpl(Features, "cx16", true);
-break;
-  case CK_Core2:
-setFeatureEnabledImpl(Features, "ssse3", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-setFeatureEnabledImpl(Features, "cx16", true);
-break;
-  case CK_Penryn:
-setFeatureEnabledImpl(Features, "sse4.1", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-setFeatureEnabledImpl(Features, "cx16", true);
-break;
   case CK_Cannonlake:
 setFeatureEnabledImpl(Features, "avx512ifma", true);
 setFeatureEnabledImpl(Features, "avx512vbmi", true);
@@ -207,6 +190,17 @@
 LLVM_FALLTHROUGH;
   case CK_Nehalem:
 setFeatureEnabledImpl(Features, "sse4.2", true);
+LLVM_FALLTHROUGH;
+  case CK_Penryn:
+setFeatureEnabledImpl(Features, "sse4.1", true);
+LLVM_FALLTHROUGH;
+  case CK_Core2:
+setFeatureEnabledImpl(Features, "ssse3", true);
+LLVM_FALLTHROUGH;
+  case CK_Yonah:
+  case CK_Prescott:
+  case CK_Nocona:
+setFeatureEnabledImpl(Features, "sse3", true);
 setFeatureEnabledImpl(Features, "fxsr", true);
 setFeatureEnabledImpl(Features, "cx16", true);
 break;
@@ -262,29 +256,24 @@
   case CK_C3:
 setFeatureEnabledImpl(Features, "3dnow", true);
 break;
-  case CK_Athlon:
-  case CK_Geode:
-setFeatureEnabledImpl(Features, "3dnowa", true);
-break;
-  case CK_AthlonXP:
-setFeatureEnabledImpl(Features, "sse", true);
-setFeatureEnabledImpl(Features, "3dnowa", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-break;
-  case CK_K8:
-setFeatureEnabledImpl(Features, "sse2", true);
-setFeatureEnabledImpl(Features, "3dnowa", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-break;
   case CK_AMDFAM10:
 setFeatureEnabledImpl(Features, "sse4a", true);
 setFeatureEnabledImpl(Features, "lzcnt", true);
 setFeatureEnabledImpl(Features, "popcnt", true);
 LLVM_FALLTHROUGH;
   case CK_K8SSE3:
 setFeatureEnabledImpl(Features, "sse3", true);
-setFeatureEnabledImpl(Features, "3dnowa", true);
+LLVM_FALLTHROUGH;
+  case CK_K8:
+setFeatureEnabledImpl(Features, "sse2", true);
+LLVM_FALLTHROUGH;
+  case CK_AthlonXP:
+setFeatureEnabledImpl(Features, "sse", true);
 setFeatureEnabledImpl(Features, "fxsr", true);
+LLVM_FALLTHROUGH;
+  case CK_Athlon:
+  case CK_Geode:
+setFeatureEnabledImpl(Features, "3dnowa", true);
 break;
   case CK_BTVER2:
 setFeatureEnabledImpl(Features, "avx", true);


Index: lib/Basic/Targets/X86.cpp
===
--- lib/Basic/Targets/X86.cpp
+++ lib/Basic/Targets/X86.cpp
@@ -140,23 +140,6 @@
 setFeatureEnabledImpl(Features, "sse2", true);
 setFeatureEnabledImpl(Features, "fxsr", true);
 break;
-  case CK_Yonah:
-  case CK_Prescott:
-  case CK_Nocona:
-setFeatureEnabledImpl(Features, "sse3", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-setFeatureEnabledImpl(Features, "cx16", true);
-break;
-  case CK_Core2:
-setFeatureEnabledImpl(Features, "ssse3", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-setFeatureEnabledImpl(Features, "cx16", true);
-break;
-  case CK_Penryn:
-setFeatureEnabledImpl(Features, "sse4.1", true);
-setFeatureEnabledImpl(Features, "fxsr", true);
-setFeatureEnabledImpl(Features, "cx16", true);
-break;
   case CK_Cannonlake:
 setFeatureEnabledImpl(Features, "avx512ifma", true);
 setFeatureEnabledImpl(Features, "avx512vbmi", true);
@@ -207,6 +190,17 @@
 LLVM_FALLTHROUGH;
   case CK_Nehalem:
 setFeatureEnabledImpl(Features, "sse4.2", true);
+LLVM_FALLTHROUGH;
+  case CK_Penryn:
+setFeatureEnabledImpl(Features, "sse4.1", true);
+LLVM_FALLTHROUGH;
+  case CK_Core2:
+setFeatureEnabledImpl(Features, "ssse3", true);
+LLVM_FALLTHROUGH;
+  case CK_Yonah:
+  case CK_Prescott:
+  case CK_Nocona:
+setFeatureEnabledImpl(Features, "sse3", true);
 setFeatureEnabledImpl(Features, "fxsr", true);
 setFeatureEnabledImpl(Features, "cx16", true);
 break;
@@ -262,29 +256,24 @@
   case CK_C3:
 setFeatureEnabledImpl(Features, "3dnow", true);
 break;
-  case CK_Athlon:
-  case CK_Geode:
-