LLVM API Documentation

llvm::PATypeHolder Class Reference

#include <AbstractTypeUser.h>

Collaboration diagram for llvm::PATypeHolder:
[legend]

List of all members.

Public Member Functions

 PATypeHolder (const Type *ty)
 PATypeHolder (const PATypeHolder &T)
 ~PATypeHolder ()
 operator Type * () const
Type * get () const
Type * operator-> () const
Type * operator= (const Type *ty)
Type * operator= (const PATypeHolder &H)
const Type * getRawType () const


Detailed Description

PATypeHolder - Holder class for a potentially abstract type. This uses efficient union-find techniques to handle dynamic type resolution. Unless you need to do custom processing when types are resolved, you should always use PATypeHolders in preference to PATypeHandles.

Definition at line 138 of file AbstractTypeUser.h.


Constructor & Destructor Documentation

llvm::PATypeHolder::PATypeHolder ( const Type *  ty  )  [inline]

Definition at line 141 of file AbstractTypeUser.h.

llvm::PATypeHolder::PATypeHolder ( const PATypeHolder &  T  )  [inline]

Definition at line 144 of file AbstractTypeUser.h.

llvm::PATypeHolder::~PATypeHolder (  )  [inline]

Definition at line 148 of file AbstractTypeUser.h.


Member Function Documentation

llvm::PATypeHolder::operator Type * (  )  const [inline]

Definition at line 150 of file AbstractTypeUser.h.

Type * llvm::PATypeHolder::get (  )  const [inline]

get - This implements the forwarding part of the union-find algorithm for abstract types. Before every access to the Type*, we check to see if the type we are pointing to is forwarding to a new type. If so, we drop our reference to the type.

Definition at line 405 of file Type.h.

References llvm::Type::getForwardedType(), and Ty.

Referenced by llvm::simplify_type< const PATypeHolder >::getSimplifiedValue(), llvm::simplify_type< PATypeHolder >::getSimplifiedValue(), and llvm::DerivedType::refineAbstractTypeTo().

Type* llvm::PATypeHolder::operator-> (  )  const [inline]

Definition at line 154 of file AbstractTypeUser.h.

Type* llvm::PATypeHolder::operator= ( const Type *  ty  )  [inline]

Definition at line 157 of file AbstractTypeUser.h.

Referenced by operator=().

Type* llvm::PATypeHolder::operator= ( const PATypeHolder &  H  )  [inline]

Definition at line 165 of file AbstractTypeUser.h.

References operator=(), and Ty.

const Type* llvm::PATypeHolder::getRawType (  )  const [inline]

getRawType - This should only be used to implement the vmcore library.

Definition at line 171 of file AbstractTypeUser.h.

Referenced by llvm::Value::getRawType().


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