Kill off unused TargetMachineRegistry methods and ivars.

llvm-svn: 75774
This commit is contained in:
Daniel Dunbar 2009-07-15 11:48:36 +00:00
parent 5eb9700578
commit 88f8559261
3 changed files with 7 additions and 78 deletions

View File

@ -30,17 +30,10 @@ namespace llvm {
const Target &TheTarget; const Target &TheTarget;
const char *Name; const char *Name;
const char *ShortDesc; const char *ShortDesc;
TargetMachine *(*CtorFn)(const Module &, const std::string &);
unsigned (*ModuleMatchQualityFn)(const Module &M);
unsigned (*JITMatchQualityFn)();
public: public:
TargetMachineRegistryEntry(const Target &T, const char *N, const char *SD, TargetMachineRegistryEntry(const Target &T, const char *N, const char *SD)
TargetMachine *(*CF)(const Module &, const std::string &), : TheTarget(T), Name(N), ShortDesc(SD) {}
unsigned (*MMF)(const Module &M),
unsigned (*JMF)())
: TheTarget(T), Name(N), ShortDesc(SD), CtorFn(CF),
ModuleMatchQualityFn(MMF), JITMatchQualityFn(JMF) {}
}; };
template<> template<>
@ -53,24 +46,15 @@ namespace llvm {
}; };
struct TargetMachineRegistry : public Registry<TargetMachine> { struct TargetMachineRegistry : public Registry<TargetMachine> {
/// getClosestStaticTargetForModule - Given an LLVM module, pick the best
/// target that is compatible with the module. If no close target can be
/// found, this returns null and sets the Error string to a reason.
static const entry *getClosestStaticTargetForModule(const Module &M,
std::string &Error);
/// getClosestTargetForJIT - Pick the best target that is compatible with
/// the current host. If no close target can be found, this returns null
/// and sets the Error string to a reason.
static const entry *getClosestTargetForJIT(std::string &Error);
}; };
//===--------------------------------------------------------------------===// //===--------------------------------------------------------------------===//
/// RegisterTarget - This class is used to make targets automatically register /// RegisterTarget - This class is used to make targets automatically register
/// themselves with the tool they are linked. Targets should define an /// themselves with the tools they are linked with. Targets should define an
/// instance of this and implement the static methods described in the /// single global Target instance and register it using the TargetRegistry
/// TargetMachine comments. /// interfaces. Targets must also include a static instance of this class.
///
/// The type 'TargetMachineImpl' should provide a constructor with two /// The type 'TargetMachineImpl' should provide a constructor with two
/// parameters: /// parameters:
/// - const Module& M: the module that is being compiled: /// - const Module& M: the module that is being compiled:
@ -80,9 +64,7 @@ namespace llvm {
template<class TargetMachineImpl> template<class TargetMachineImpl>
struct RegisterTarget { struct RegisterTarget {
RegisterTarget(Target &T, const char *Name, const char *ShortDesc) RegisterTarget(Target &T, const char *Name, const char *ShortDesc)
: Entry(T, Name, ShortDesc, &Allocator, : Entry(T, Name, ShortDesc),
&TargetMachineImpl::getModuleMatchQuality,
&TargetMachineImpl::getJITMatchQuality),
Node(Entry) { Node(Entry) {
TargetRegistry::RegisterTargetMachine(T, &Allocator); TargetRegistry::RegisterTargetMachine(T, &Allocator);
} }

View File

@ -49,8 +49,6 @@ namespace llvm {
bool); bool);
friend struct TargetRegistry; friend struct TargetRegistry;
// FIXME: Temporary hack, please remove.
friend struct TargetMachineRegistry;
/// Next - The next registered target in the linked list, maintained by the /// Next - The next registered target in the linked list, maintained by the
/// TargetRegistry. /// TargetRegistry.

View File

@ -1,51 +0,0 @@
//===-- TargetMachineRegistry.cpp - Target Auto Registration Impl ---------===//
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file exposes the RegisterTarget class, which TargetMachine
// implementations should use to register themselves with the system. This file
// also exposes the TargetMachineRegistry class, which allows tools to inspect
// all of registered targets.
//
//===----------------------------------------------------------------------===//
#include "llvm/Target/TargetMachineRegistry.h"
#include <algorithm>
using namespace llvm;
/// getClosestStaticTargetForModule - Given an LLVM module, pick the best target
/// that is compatible with the module. If no close target can be found, this
/// returns null and sets the Error string to a reason.
const TargetMachineRegistry::entry *
TargetMachineRegistry::getClosestStaticTargetForModule(const Module &M,
std::string &Error) {
const Target *T = TargetRegistry::getClosestStaticTargetForModule(M, Error);
if (!T)
return 0;
// FIXME: Temporary hack, please remove.
return new TargetMachineRegistry::entry(*T, T->Name, T->ShortDesc,
T->TargetMachineCtorFn,
T->ModuleMatchQualityFn,
T->JITMatchQualityFn);
}
/// getClosestTargetForJIT - Pick the best target that is compatible with
/// the current host. If no close target can be found, this returns null
/// and sets the Error string to a reason.
const TargetMachineRegistry::entry *
TargetMachineRegistry::getClosestTargetForJIT(std::string &Error) {
const Target *T = TargetRegistry::getClosestTargetForJIT(Error);
if (!T)
return 0;
// FIXME: Temporary hack, please remove.
return new TargetMachineRegistry::entry(*T, T->Name, T->ShortDesc,
T->TargetMachineCtorFn,
T->ModuleMatchQualityFn,
T->JITMatchQualityFn);
}