[llvm] r317184 - [X86] Simplify the detection of pentium-mmx in Host.cpp.

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 1 20:32:49 PDT 2017


Author: ctopper
Date: Wed Nov  1 20:32:49 2017
New Revision: 317184

URL: http://llvm.org/viewvc/llvm-project?rev=317184&view=rev
Log:
[X86] Simplify the detection of pentium-mmx in Host.cpp.

Rather than looking at model numbers just check for the mmx feature flag. While there promote INTEL_PENTIUM_MMX to a CPU type instead of a subtype so that we don't have weird type with only one subtype.

Modified:
    llvm/trunk/lib/Support/Host.cpp

Modified: llvm/trunk/lib/Support/Host.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Host.cpp?rev=317184&r1=317183&r2=317184&view=diff
==============================================================================
--- llvm/trunk/lib/Support/Host.cpp (original)
+++ llvm/trunk/lib/Support/Host.cpp Wed Nov  1 20:32:49 2017
@@ -344,6 +344,7 @@ enum ProcessorTypes {
   INTEL_i386,
   INTEL_i486,
   INTEL_PENTIUM,
+  INTEL_PENTIUM_MMX,
   INTEL_PENTIUM_PRO,
   INTEL_PENTIUM_II,
   INTEL_PENTIUM_III,
@@ -378,7 +379,6 @@ enum ProcessorSubtypes {
   INTEL_COREI7_SKYLAKE,
   INTEL_COREI7_SKYLAKE_AVX512,
   // Entries below this are not in libgcc/compiler-rt.
-  INTEL_PENTIUM_MMX,
   INTEL_CORE2_65,
   INTEL_CORE2_45,
   AMDPENTIUM_K6,
@@ -603,26 +603,11 @@ getIntelProcessorTypeAndSubtype(unsigned
     }
     break;
   case 5:
-    switch (Model) {
-    case 1: // Pentium OverDrive processor for Pentium processor (60, 66),
-            // Pentium processors (60, 66)
-    case 2: // Pentium OverDrive processor for Pentium processor (75, 90,
-            // 100, 120, 133), Pentium processors (75, 90, 100, 120, 133,
-            // 150, 166, 200)
-    case 3: // Pentium OverDrive processors for Intel486 processor-based
-            // systems
-      *Type = INTEL_PENTIUM;
-      break;
-    case 4: // Pentium OverDrive processor with MMX technology for Pentium
-            // processor (75, 90, 100, 120, 133), Pentium processor with
-            // MMX technology (166, 200)
-      *Type = INTEL_PENTIUM;
-      *Subtype = INTEL_PENTIUM_MMX;
-      break;
-    default:
-      *Type = INTEL_PENTIUM;
+    if (Features & (1 << FEATURE_MMX)) {
+      *Type = INTEL_PENTIUM_MMX;
       break;
     }
+    *Type = INTEL_PENTIUM;
     break;
   case 6:
     switch (Model) {
@@ -1118,9 +1103,9 @@ StringRef sys::getHostCPUName() {
     case INTEL_i486:
       return "i486";
     case INTEL_PENTIUM:
-      if (Subtype == INTEL_PENTIUM_MMX)
-        return "pentium-mmx";
       return "pentium";
+    case INTEL_PENTIUM_MMX:
+      return "pentium-mmx";
     case INTEL_PENTIUM_PRO:
       return "pentiumpro";
     case INTEL_PENTIUM_II:




More information about the llvm-commits mailing list