LLVM API Documentation
#include <DerivedTypes.h>
Inheritance diagram for llvm::DerivedType:
Public Member Functions | |
void | addAbstractTypeUser (AbstractTypeUser *U) const |
void | removeAbstractTypeUser (AbstractTypeUser *U) const |
void | refineAbstractTypeTo (const Type *NewType) |
void | dump () const |
Static Public Member Functions | |
static bool | classof (const DerivedType *T) |
static bool | classof (const Type *T) |
Methods for support type inquiry through isa, cast, and dyn_cast:. | |
Protected Member Functions | |
DerivedType (TypeID id) | |
~DerivedType () | |
void | notifyUsesThatTypeBecameConcrete () |
void | dropAllTypeUses () |
void | RefCountIsZero () const |
Friends | |
class | Type |
Definition at line 33 of file DerivedTypes.h.
|
Definition at line 41 of file DerivedTypes.h. |
|
Definition at line 42 of file DerivedTypes.h. |
|
addAbstractTypeUser - Notify an abstract type that there is a new user of it. This function is called primarily by the PATypeHandle class. Reimplemented from llvm::Type. Definition at line 74 of file DerivedTypes.h. References llvm::Type::isAbstract(). |
|
Methods for support type inquiry through isa, cast, and dyn_cast:.
Reimplemented from llvm::Type. Reimplemented in llvm::FunctionType, llvm::CompositeType, llvm::StructType, llvm::SequentialType, llvm::ArrayType, llvm::PackedType, llvm::PointerType, and llvm::OpaqueType. Definition at line 98 of file DerivedTypes.h. References llvm::Type::isDerivedType(). |
|
Definition at line 97 of file DerivedTypes.h. |
|
dropAllTypeUses - When this (abstract) type is resolved to be equal to another (more concrete) type, we must eliminate all references to other types, to avoid some circular reference problems. Definition at line 437 of file Type.cpp. References llvm::Type::ContainedTys, and llvm::OpaqueType::get(). Referenced by refineAbstractTypeTo(). |
|
Implements llvm::AbstractTypeUser. Definition at line 94 of file DerivedTypes.h. References llvm::Type::dump(). |
|
notifyUsesThatTypeBecameConcrete - Notify AbstractTypeUsers of this type that the current type has transitioned from being abstract to being concrete. Definition at line 1206 of file Type.cpp. References llvm::AbstractTypeUser::typeBecameConcrete(). |
|
Reimplemented from llvm::Type. Definition at line 58 of file DerivedTypes.h. |
|
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 type NewType and for 'this' to be deleted. Definition at line 1139 of file Type.cpp. References AbstractTypeDescriptions, llvm::Type::addRef(), dropAllTypeUses(), llvm::Type::ForwardType, llvm::PATypeHolder::get(), llvm::Type::isAbstract(), and llvm::AbstractTypeUser::refineAbstractType(). Referenced by HandleUpRefs(). |
|
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 the PATypeHandle class. When there are no users of the abstract type, it is annihilated, because there is no way to get a reference to it ever again. Reimplemented from llvm::Type. Definition at line 1105 of file Type.cpp. References llvm::Type::getRefCount(), and llvm::Type::isAbstract(). |
|
Definition at line 38 of file DerivedTypes.h. |