Don't require Registry specializations to define random static variables.

llvm-svn: 54902
This commit is contained in:
Gordon Henriksen 2008-08-17 19:08:34 +00:00
parent 86e7d0a1df
commit aa8ab4501a
4 changed files with 15 additions and 27 deletions

View File

@ -44,8 +44,8 @@ namespace llvm {
public:
typedef SimpleRegistryEntry<T> entry;
/// Accessors for .
///
/// nameof/descof - Accessors for name and description of entries. These are
// used to generate help for command-line options.
static const char *nameof(const entry &Entry) { return Entry.getName(); }
static const char *descof(const entry &Entry) { return Entry.getDesc(); }
};
@ -234,6 +234,19 @@ namespace llvm {
};
template <typename T, typename U>
typename Registry<T,U>::node *Registry<T,U>::Head;
template <typename T, typename U>
typename Registry<T,U>::node *Registry<T,U>::Tail;
template <typename T, typename U>
typename Registry<T,U>::listener *Registry<T,U>::ListenerHead;
template <typename T, typename U>
typename Registry<T,U>::listener *Registry<T,U>::ListenerTail;
}
#endif

View File

@ -15,17 +15,6 @@
using namespace llvm;
// -----------------------------------------------------------------------------
template<> GCMetadataPrinterRegistry::node *GCMetadataPrinterRegistry::Head = 0;
template<> GCMetadataPrinterRegistry::node *GCMetadataPrinterRegistry::Tail = 0;
template<> GCMetadataPrinterRegistry::listener *
GCMetadataPrinterRegistry::ListenerHead = 0;
template<> GCMetadataPrinterRegistry::listener *
GCMetadataPrinterRegistry::ListenerTail = 0;
// -----------------------------------------------------------------------------
GCMetadataPrinter::GCMetadataPrinter() { }
GCMetadataPrinter::~GCMetadataPrinter() { }

View File

@ -88,13 +88,6 @@ namespace {
// -----------------------------------------------------------------------------
template<> GCRegistry::node *GCRegistry::Head = 0;
template<> GCRegistry::node *GCRegistry::Tail = 0;
template<> GCRegistry::listener *GCRegistry::ListenerHead = 0;
template<> GCRegistry::listener *GCRegistry::ListenerTail = 0;
// -----------------------------------------------------------------------------
GCStrategy::GCStrategy() :
NeededSafePoints(0),
CustomReadBarriers(false),

View File

@ -18,13 +18,6 @@
#include <algorithm>
using namespace llvm;
template<> Registry<TargetMachine>::node *Registry<TargetMachine>::Head = 0;
template<> Registry<TargetMachine>::node *Registry<TargetMachine>::Tail = 0;
template<> Registry<TargetMachine>::listener *Registry<TargetMachine>::
ListenerHead = 0;
template<> Registry<TargetMachine>::listener *Registry<TargetMachine>::
ListenerTail = 0;
/// 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.