From 1602560ef95436076c84680ade3ae9a03d2ee922 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 5 Apr 2002 22:21:08 +0000 Subject: [PATCH] * Delete getNumAbstractTypeUsers method * Move addAbstractTypeUser method to Type.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2120 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/DerivedTypes.h | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/include/llvm/DerivedTypes.h b/include/llvm/DerivedTypes.h index 1a8bf9019c8..9e01ba37c90 100644 --- a/include/llvm/DerivedTypes.h +++ b/include/llvm/DerivedTypes.h @@ -14,17 +14,20 @@ #include "llvm/Type.h" class DerivedType : public Type { + char isRefining; // Used for recursive types + // AbstractTypeUsers - Implement a list of the users that need to be notified // if I am a type, and I get resolved into a more concrete type. // ///// FIXME: kill mutable nonsense when Type's are not const mutable std::vector AbstractTypeUsers; - char isRefining; // Used for recursive types - protected: inline DerivedType(PrimitiveID id) : Type("", id) { - isRefining = false; + isRefining = 0; + } + ~DerivedType() { + assert(AbstractTypeUsers.empty()); } // typeIsRefined - Notify AbstractTypeUsers of this type that the current type @@ -50,14 +53,7 @@ public: // addAbstractTypeUser - Notify an abstract type that there is a new user of // it. This function is called primarily by the PATypeHandle class. // - void addAbstractTypeUser(AbstractTypeUser *U) const { - assert(isAbstract() && "addAbstractTypeUser: Current type not abstract!"); -#if 0 - cerr << " addAbstractTypeUser[" << (void*)this << ", " << getDescription() - << "][" << AbstractTypeUsers.size() << "] User = " << U << endl; -#endif - AbstractTypeUsers.push_back(U); - } + void addAbstractTypeUser(AbstractTypeUser *U) const; // removeAbstractTypeUser - Notify an abstract type that a user of the class // no longer has a handle to the type. This function is called primarily by @@ -66,12 +62,6 @@ public: // void removeAbstractTypeUser(AbstractTypeUser *U) const; - // getNumAbstractTypeUsers - Return the number of users registered to the type - inline unsigned getNumAbstractTypeUsers() const { - assert(isAbstract() && "getNumAbstractTypeUsers: Type not abstract!"); - return AbstractTypeUsers.size(); - } - // refineAbstractTypeTo - This function is used to when it is discovered that // the 'this' abstract type is actually equivalent to the NewType specified. // This causes all users of 'this' to switch to reference the more concrete