OSDN Git Service

Simplify this logic of creating a default Features object.
authorBill Wendling <isanbard@gmail.com>
Tue, 11 May 2010 20:46:04 +0000 (20:46 +0000)
committerBill Wendling <isanbard@gmail.com>
Tue, 11 May 2010 20:46:04 +0000 (20:46 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103507 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SubtargetFeature.cpp

index 113cd5b..b35190a 100644 (file)
@@ -370,32 +370,14 @@ void SubtargetFeatures::getDefaultSubtargetFeatures(const std::string &CPU,
                                                     const Triple& Triple) {
   setCPU(CPU);
 
-  const char *Attrs = 0;
-
-  switch (Triple.getVendor()) {
-  case Triple::Apple:
-    switch (Triple.getArch()) {
-    case Triple::ppc:   // powerpc-apple-*
-      Attrs = "altivec";
-      break;
-    case Triple::ppc64: // powerpc64-apple-*
-      Attrs = "64bit,altivec";
-      break;
-    default:
-      break;
+  if (Triple.getVendor() == Triple::Apple) {
+    if (Triple.getArch() == Triple::ppc) {
+      // powerpc-apple-*
+      AddFeature("altivec");
+    } else if (Triple.getArch() == Triple::ppc64) {
+      // powerpc64-apple-*
+      AddFeature("64bit");
+      AddFeature("altivec");
     }
-    break;
-  default:
-    break;
-  }
-
-  if (!Attrs) return;
-
-  StringRef SR(Attrs);
-
-  while (!SR.empty()) {
-    std::pair<StringRef, StringRef> Res = SR.split(',');
-    AddFeature(Res.first);
-    SR = Res.second;
   }
 }