LLVM API Documentation

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 refineAbstractTypeTo (const Type *NewType)
void dump () const
 Debugging support: print to stderr.

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)
void notifyUsesThatTypeBecameConcrete ()
void dropAllTypeUses ()

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 37 of file DerivedTypes.h.


Member Function Documentation

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 69 of file DerivedTypes.h.

References llvm::Type::isDerivedType(), and T.

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

Definition at line 68 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 477 of file Type.cpp.

References llvm::Type::ContainedTys, llvm::OpaqueType::get(), and llvm::Type::IntTy.

Referenced by refineAbstractTypeTo().

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

Debugging support: print to stderr.

Reimplemented from llvm::Type.

Definition at line 65 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 1323 of file Type.cpp.

References llvm::Type::AbstractTypeUsers.

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 1256 of file Type.cpp.

References AbstractTypeDescriptions, llvm::Type::AbstractTypeUsers, llvm::Type::addRef(), dropAllTypeUses(), llvm::Type::ForwardType, llvm::PATypeHolder::get(), and llvm::Type::isAbstract().


Friends And Related Function Documentation

friend class Type [friend]

Definition at line 34 of file DerivedTypes.h.


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