LLVM API Documentation

llvm::DerivedType Class Reference

#include <DerivedTypes.h>

Inheritance diagram for llvm::DerivedType:
[legend]
Collaboration diagram for llvm::DerivedType:
[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 *)
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 35 of file DerivedTypes.h.


Constructor & Destructor Documentation

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

Definition at line 39 of file DerivedTypes.h.


Member Function Documentation

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

References llvm::Type::AbstractTypeUsers, DOUT, and llvm::AbstractTypeUser::typeBecameConcrete().

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

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

Referenced by refineAbstractTypeTo().

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

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

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

Debugging support: print to stderr.

Reimplemented from llvm::Type.

Definition at line 67 of file DerivedTypes.h.

References llvm::dump().

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

Definition at line 70 of file DerivedTypes.h.

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

Methods for support type inquiry through isa, cast, and dyn_cast:.

Reimplemented from llvm::Type.

Reimplemented in llvm::IntegerType, llvm::FunctionType, llvm::CompositeType, llvm::StructType, llvm::SequentialType, llvm::ArrayType, llvm::VectorType, llvm::PointerType, and llvm::OpaqueType.

Definition at line 71 of file DerivedTypes.h.

References llvm::Type::isDerivedType().


Friends And Related Function Documentation

friend class Type [friend]

Definition at line 36 of file DerivedTypes.h.


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