Factor commonality in triple match routines into helper template for registering
classes, and migrate existing targets over.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77126 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/Alpha/TargetInfo/AlphaTargetInfo.cpp b/lib/Target/Alpha/TargetInfo/AlphaTargetInfo.cpp
index 1e4db94..f7099b9 100644
--- a/lib/Target/Alpha/TargetInfo/AlphaTargetInfo.cpp
+++ b/lib/Target/Alpha/TargetInfo/AlphaTargetInfo.cpp
@@ -14,18 +14,7 @@
 
 llvm::Target llvm::TheAlphaTarget;
 
-static unsigned Alpha_TripleMatchQuality(const std::string &TT) {
-  // We strongly match "alpha*".
-  if (TT.size() >= 5 && TT[0] == 'a' && TT[1] == 'l' && TT[2] == 'p' &&
-      TT[3] == 'h' && TT[4] == 'a')
-    return 20;
-
-  return 0;
-}
-
 extern "C" void LLVMInitializeAlphaTargetInfo() { 
-  TargetRegistry::RegisterTarget(TheAlphaTarget, "alpha",
-                                  "Alpha [experimental]",
-                                  &Alpha_TripleMatchQuality,
-                                  /*HasJIT=*/true);
+  RegisterTarget<Triple::alpha, /*HasJIT=*/true>
+    X(TheAlphaTarget, "alpha", "Alpha [experimental]");
 }