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/CellSPU/TargetInfo/CellSPUTargetInfo.cpp b/lib/Target/CellSPU/TargetInfo/CellSPUTargetInfo.cpp
index ea3b8f9..049ea23 100644
--- a/lib/Target/CellSPU/TargetInfo/CellSPUTargetInfo.cpp
+++ b/lib/Target/CellSPU/TargetInfo/CellSPUTargetInfo.cpp
@@ -14,19 +14,7 @@
Target llvm::TheCellSPUTarget;
-static unsigned CellSPU_TripleMatchQuality(const std::string &TT) {
- // We strongly match "spu-*" or "cellspu-*".
- if ((TT.size() == 3 && std::string(TT.begin(), TT.begin()+3) == "spu") ||
- (TT.size() == 7 && std::string(TT.begin(), TT.begin()+7) == "cellspu") ||
- (TT.size() >= 4 && std::string(TT.begin(), TT.begin()+4) == "spu-") ||
- (TT.size() >= 8 && std::string(TT.begin(), TT.begin()+8) == "cellspu-"))
- return 20;
-
- return 0;
-}
-
extern "C" void LLVMInitializeCellSPUTargetInfo() {
- TargetRegistry::RegisterTarget(TheCellSPUTarget, "cellspu",
- "STI CBEA Cell SPU [experimental]",
- &CellSPU_TripleMatchQuality);
+ RegisterTarget<Triple::cellspu>
+ X(TheCellSPUTarget, "cellspu", "STI CBEA Cell SPU [experimental]");
}