LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

llvm::DerivedType Class Reference

#include <DerivedTypes.h>

Inheritance diagram for llvm::DerivedType:

Inheritance graph
[legend]
Collaboration diagram for llvm::DerivedType:

Collaboration graph
[legend]
List of all members.

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

Detailed Description

Definition at line 33 of file DerivedTypes.h.


Constructor & Destructor Documentation

llvm::DerivedType::DerivedType TypeID  id  )  [inline, protected]
 

Definition at line 41 of file DerivedTypes.h.

llvm::DerivedType::~DerivedType  )  [inline, protected]
 

Definition at line 42 of file DerivedTypes.h.


Member Function Documentation

void llvm::DerivedType::addAbstractTypeUser AbstractTypeUser U  )  const [inline, virtual]
 

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().

static bool llvm::DerivedType::classof const Type T  )  [inline, static]
 

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().

static bool llvm::DerivedType::classof const DerivedType T  )  [inline, static]
 

Definition at line 97 of file DerivedTypes.h.

void DerivedType::dropAllTypeUses  )  [protected]
 

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().

void llvm::DerivedType::dump  )  const [inline, virtual]
 

Implements llvm::AbstractTypeUser.

Definition at line 94 of file DerivedTypes.h.

References llvm::Type::dump().

void DerivedType::notifyUsesThatTypeBecameConcrete  )  [protected]
 

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().

void llvm::DerivedType::RefCountIsZero  )  const [inline, protected, virtual]
 

Reimplemented from llvm::Type.

Definition at line 58 of file DerivedTypes.h.

void DerivedType::refineAbstractTypeTo const Type NewType  ) 
 

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().

void DerivedType::removeAbstractTypeUser AbstractTypeUser U  )  const [virtual]
 

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().


Friends And Related Function Documentation

friend class Type [friend]
 

Definition at line 38 of file DerivedTypes.h.


The documentation for this class was generated from the following files: