1//===- TargetRegistry.cpp -------------------------------------------------===// 2// 3// The MCLinker Project 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9#include <mcld/Support/TargetRegistry.h> 10 11 12mcld::TargetRegistry::TargetListTy mcld::TargetRegistry::s_TargetList; 13 14void mcld::TargetRegistry::RegisterTarget(mcld::Target &T) 15{ 16 s_TargetList.push_back(&T); 17} 18 19const mcld::Target* 20mcld::TargetRegistry::lookupTarget(const llvm::Target &pTarget) 21{ 22 mcld::Target *result = 0; 23 TargetListTy::const_iterator TIter, TEnd = s_TargetList.end(); 24 for (TIter=s_TargetList.begin(); TIter!=TEnd; ++TIter) { 25 if ((*TIter)->get()==&pTarget) { 26 result = (*TIter); 27 break; 28 } 29 } 30 return result; 31} 32 33const mcld::Target* 34mcld::TargetRegistry::lookupTarget(const std::string &pTriple, 35 std::string &pError) 36{ 37 const llvm::Target* target = llvm::TargetRegistry::lookupTarget(pTriple, pError); 38 if (!target) 39 return NULL; 40 41 return lookupTarget( *target ); 42} 43 44