LLVM API Documentation

llvm::BitcodeReaderValueList Class Reference

#include <BitcodeReader.h>

Inheritance diagram for llvm::BitcodeReaderValueList:
[legend]
Collaboration diagram for llvm::BitcodeReaderValueList:
[legend]

List of all members.

Public Member Functions

 BitcodeReaderValueList ()
 ~BitcodeReaderValueList ()
 DECLARE_TRANSPARENT_OPERAND_ACCESSORS (Value)
 Provide fast operand accessors.
unsigned size () const
void resize (unsigned)
void push_back (Value *V)
void clear ()
Value * operator[] (unsigned i) const
Value * back () const
void pop_back ()
bool empty () const
void shrinkTo (unsigned N)
virtual void print (std::ostream &) const
Constant * getConstantFwdRef (unsigned Idx, const Type *Ty)
Value * getValueFwdRef (unsigned Idx, const Type *Ty)
void AssignValue (Value *V, unsigned Idx)
void ResolveConstantForwardRefs ()


Detailed Description

Definition at line 33 of file BitcodeReader.h.


Constructor & Destructor Documentation

llvm::BitcodeReaderValueList::BitcodeReaderValueList (  )  [inline]

Definition at line 46 of file BitcodeReader.h.

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

Definition at line 48 of file BitcodeReader.h.


Member Function Documentation

llvm::BitcodeReaderValueList::DECLARE_TRANSPARENT_OPERAND_ACCESSORS ( Value   ) 

Provide fast operand accessors.

unsigned llvm::BitcodeReaderValueList::size (  )  const [inline]

void BitcodeReaderValueList::resize ( unsigned  Desired  ) 

void llvm::BitcodeReaderValueList::push_back ( Value *  V  )  [inline]

Definition at line 58 of file BitcodeReader.h.

References llvm::User::NumOperands, llvm::User::OperandList, and resize().

Referenced by AssignValue().

void llvm::BitcodeReaderValueList::clear (  )  [inline]

Value* llvm::BitcodeReaderValueList::operator[] ( unsigned  i  )  const [inline]

Definition at line 71 of file BitcodeReader.h.

References llvm::User::getOperand().

Value* llvm::BitcodeReaderValueList::back (  )  const [inline]

Definition at line 73 of file BitcodeReader.h.

References llvm::User::getOperand(), and size().

void llvm::BitcodeReaderValueList::pop_back (  )  [inline]

Definition at line 74 of file BitcodeReader.h.

References llvm::User::NumOperands, llvm::User::setOperand(), and size().

Referenced by shrinkTo().

bool llvm::BitcodeReaderValueList::empty (  )  const [inline]

Definition at line 75 of file BitcodeReader.h.

References llvm::User::NumOperands.

void llvm::BitcodeReaderValueList::shrinkTo ( unsigned  N  )  [inline]

Definition at line 76 of file BitcodeReader.h.

References llvm::User::NumOperands, and pop_back().

virtual void llvm::BitcodeReaderValueList::print ( std::ostream &   )  const [inline, virtual]

Definition at line 81 of file BitcodeReader.h.

Constant * BitcodeReaderValueList::getConstantFwdRef ( unsigned  Idx,
const Type *  Ty 
)

Value * BitcodeReaderValueList::getValueFwdRef ( unsigned  Idx,
const Type *  Ty 
)

Definition at line 197 of file BitcodeReader.cpp.

References llvm::User::NumOperands, llvm::User::OperandList, resize(), size(), and V.

void llvm::BitcodeReaderValueList::AssignValue ( Value *  V,
unsigned  Idx 
) [inline]

void BitcodeReaderValueList::ResolveConstantForwardRefs (  ) 

ResolveConstantForwardRefs - Once all constants are read, this method bulk resolves any forward references.

ResolveConstantForwardRefs - Once all constants are read, this method bulk resolves any forward references. The idea behind this is that we sometimes get constants (such as large arrays) which reference *many* forward ref constants. Replacing each of these causes a lot of thrashing when building/reuniquing the constant. Instead of doing this, we look at all the uses and rewrite all the place holders at once for any constant that uses a placeholder.

Definition at line 225 of file BitcodeReader.cpp.

References llvm::Constant::destroyConstant(), E, llvm::ConstantVector::get(), llvm::ConstantStruct::get(), llvm::ConstantArray::get(), llvm::User::getOperand(), llvm::value_use_iterator< UserTy >::getUse(), llvm::User::op_begin(), llvm::User::op_end(), llvm::Value::replaceAllUsesWith(), and llvm::Use::set().


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