diff --git a/lib/Support/Annotation.cpp b/lib/Support/Annotation.cpp index fabf34b2db7..65a049d42dc 100644 --- a/lib/Support/Annotation.cpp +++ b/lib/Support/Annotation.cpp @@ -28,6 +28,16 @@ AnnotationID AnnotationManager::getID(const string &Name) { // Name -> ID return I->second; } +// getID - Name -> ID + registration of a factory function for demand driven +// annotation support. +AnnotationID AnnotationManager::getID(const string &Name, Factory Fact, + void *Data=0) { + AnnotationID Result(getID(Name)); + registerAnnotationFactory(Result, Fact, Data); + return Result; +} + + // getName - This function is especially slow, but that's okay because it should // only be used for debugging. // diff --git a/lib/VMCore/Type.cpp b/lib/VMCore/Type.cpp index 033ca952c4c..87fa581a573 100644 --- a/lib/VMCore/Type.cpp +++ b/lib/VMCore/Type.cpp @@ -29,7 +29,6 @@ Type::Type(const string &name, PrimitiveID id) setDescription(name); ID = id; Abstract = false; - ConstRulesImpl = 0; UID = CurUID++; // Assign types UID's as they are created UIDMappings.push_back(this); } diff --git a/support/lib/Support/Annotation.cpp b/support/lib/Support/Annotation.cpp index fabf34b2db7..65a049d42dc 100644 --- a/support/lib/Support/Annotation.cpp +++ b/support/lib/Support/Annotation.cpp @@ -28,6 +28,16 @@ AnnotationID AnnotationManager::getID(const string &Name) { // Name -> ID return I->second; } +// getID - Name -> ID + registration of a factory function for demand driven +// annotation support. +AnnotationID AnnotationManager::getID(const string &Name, Factory Fact, + void *Data=0) { + AnnotationID Result(getID(Name)); + registerAnnotationFactory(Result, Fact, Data); + return Result; +} + + // getName - This function is especially slow, but that's okay because it should // only be used for debugging. //