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

llvm-svn: 77126
diff --git a/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp b/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp
index 451a864..75200ab 100644
--- a/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp
+++ b/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp
@@ -14,15 +14,6 @@
 
 Target llvm::TheSparcTarget;
 
-static unsigned Sparc_TripleMatchQuality(const std::string &TT) {
-  if (TT.size() >= 6 && std::string(TT.begin(), TT.begin()+6) == "sparc-")
-    return 20;
-
-  return 0;
-}
-
 extern "C" void LLVMInitializeSparcTargetInfo() { 
-  TargetRegistry::RegisterTarget(TheSparcTarget, "sparc",
-                                  "Sparc",
-                                  &Sparc_TripleMatchQuality);
+  RegisterTarget<Triple::sparc> (TheSparcTarget, "sparc", "Sparc");
 }