* 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
This commit is contained in:
Chris Lattner 2002-04-05 22:21:08 +00:00
parent cecb520d1c
commit 1602560ef9

View File

@ -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<AbstractTypeUser *> 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