LLVM  3.7.0
Public Types | Public Member Functions | Public Attributes | List of all members
llvm::ValueEnumerator Class Reference

#include <ValueEnumerator.h>

Collaboration diagram for llvm::ValueEnumerator:
[legend]

Public Types

typedef std::vector< Type * > TypeList
 
typedef std::vector< std::pair
< const Value *, unsigned > > 
ValueList
 

Public Member Functions

 ValueEnumerator (const Module &M, bool ShouldPreserveUseListOrder)
 
void dump () const
 
void print (raw_ostream &OS, const ValueMapType &Map, const char *Name) const
 
void print (raw_ostream &OS, const MetadataMapType &Map, const char *Name) const
 
unsigned getValueID (const Value *V) const
 
unsigned getMetadataID (const Metadata *MD) const
 
unsigned getMetadataOrNullID (const Metadata *MD) const
 
bool hasMDString () const
 
bool hasDILocation () const
 
bool hasGenericDINode () const
 
bool shouldPreserveUseListOrder () const
 
unsigned getTypeID (Type *T) const
 
unsigned getInstructionID (const Instruction *I) const
 
void setInstructionID (const Instruction *I)
 
unsigned getAttributeID (AttributeSet PAL) const
 
unsigned getAttributeGroupID (AttributeSet PAL) const
 
void getFunctionConstantRange (unsigned &Start, unsigned &End) const
 getFunctionConstantRange - Return the range of values that corresponds to function-local constants. More...
 
const ValueListgetValues () const
 
const std::vector< const
Metadata * > & 
getMDs () const
 
const SmallVectorImpl< const
LocalAsMetadata * > & 
getFunctionLocalMDs () const
 
const TypeListgetTypes () const
 
const std::vector< const
BasicBlock * > & 
getBasicBlocks () const
 
const std::vector< AttributeSet > & getAttributes () const
 
const std::vector< AttributeSet > & getAttributeGroups () const
 
const ComdatSetTypegetComdats () const
 
unsigned getComdatID (const Comdat *C) const
 
unsigned getGlobalBasicBlockID (const BasicBlock *BB) const
 getGlobalBasicBlockID - This returns the function-specific ID for the specified basic block. More...
 
void incorporateFunction (const Function &F)
 incorporateFunction/purgeFunction - If you'd like to deal with a function, use these two methods to get its data into the ValueEnumerator! More...
 
void purgeFunction ()
 
uint64_t computeBitsRequiredForTypeIndicies () const
 

Public Attributes

UseListOrderStack UseListOrders
 

Detailed Description

Definition at line 42 of file ValueEnumerator.h.

Member Typedef Documentation

typedef std::vector<Type*> llvm::ValueEnumerator::TypeList

Definition at line 44 of file ValueEnumerator.h.

typedef std::vector<std::pair<const Value*, unsigned> > llvm::ValueEnumerator::ValueList

Definition at line 47 of file ValueEnumerator.h.

Constructor & Destructor Documentation

ValueEnumerator::ValueEnumerator ( const Module M,
bool  ShouldPreserveUseListOrder 
)

Member Function Documentation

uint64_t ValueEnumerator::computeBitsRequiredForTypeIndicies ( ) const

Definition at line 816 of file ValueEnumerator.cpp.

References getTypes(), llvm::Log2_32_Ceil(), and size.

Referenced by WriteBlockInfo(), and WriteTypeTable().

void ValueEnumerator::dump ( ) const

Definition at line 425 of file ValueEnumerator.cpp.

References llvm::dbgs(), and print().

unsigned llvm::ValueEnumerator::getAttributeGroupID ( AttributeSet  PAL) const
inline
const std::vector<AttributeSet>& llvm::ValueEnumerator::getAttributeGroups ( ) const
inline

Definition at line 171 of file ValueEnumerator.h.

Referenced by WriteAttributeGroupTable().

unsigned llvm::ValueEnumerator::getAttributeID ( AttributeSet  PAL) const
inline
const std::vector<AttributeSet>& llvm::ValueEnumerator::getAttributes ( ) const
inline

Definition at line 168 of file ValueEnumerator.h.

Referenced by WriteAttributeTable().

const std::vector<const BasicBlock*>& llvm::ValueEnumerator::getBasicBlocks ( ) const
inline

Definition at line 165 of file ValueEnumerator.h.

Referenced by WriteFunction().

unsigned ValueEnumerator::getComdatID ( const Comdat C) const

Definition at line 406 of file ValueEnumerator.cpp.

References llvm::UniqueVector< T >::idFor().

Referenced by WriteModuleInfo().

const ComdatSetType& llvm::ValueEnumerator::getComdats ( ) const
inline

Definition at line 175 of file ValueEnumerator.h.

Referenced by writeComdats().

void llvm::ValueEnumerator::getFunctionConstantRange ( unsigned Start,
unsigned End 
) const
inline

getFunctionConstantRange - Return the range of values that corresponds to function-local constants.

Definition at line 154 of file ValueEnumerator.h.

Referenced by WriteFunction().

const SmallVectorImpl<const LocalAsMetadata *>& llvm::ValueEnumerator::getFunctionLocalMDs ( ) const
inline

Definition at line 161 of file ValueEnumerator.h.

Referenced by WriteFunctionLocalMetadata().

unsigned ValueEnumerator::getGlobalBasicBlockID ( const BasicBlock BB) const

getGlobalBasicBlockID - This returns the function-specific ID for the specified basic block.

This is relatively expensive information, so it should only be used by rare constructs such as address-of-label.

Definition at line 807 of file ValueEnumerator.cpp.

References llvm::BasicBlock::getParent(), and IncorporateFunctionInfoGlobalBBIDs().

Referenced by WriteConstants().

unsigned ValueEnumerator::getInstructionID ( const Instruction I) const
const std::vector<const Metadata *>& llvm::ValueEnumerator::getMDs ( ) const
inline

Definition at line 160 of file ValueEnumerator.h.

Referenced by WriteModuleMetadata().

unsigned llvm::ValueEnumerator::getMetadataID ( const Metadata MD) const
inline
unsigned llvm::ValueEnumerator::getMetadataOrNullID ( const Metadata MD) const
inline
unsigned llvm::ValueEnumerator::getTypeID ( Type T) const
inline
const TypeList& llvm::ValueEnumerator::getTypes ( ) const
inline
unsigned ValueEnumerator::getValueID ( const Value V) const
const ValueList& llvm::ValueEnumerator::getValues ( ) const
inline

Definition at line 159 of file ValueEnumerator.h.

Referenced by WriteConstants(), and WriteModuleConstants().

bool llvm::ValueEnumerator::hasDILocation ( ) const
inline

Definition at line 124 of file ValueEnumerator.h.

Referenced by WriteModuleMetadata().

bool llvm::ValueEnumerator::hasGenericDINode ( ) const
inline

Definition at line 125 of file ValueEnumerator.h.

Referenced by WriteModuleMetadata().

bool llvm::ValueEnumerator::hasMDString ( ) const
inline

Definition at line 123 of file ValueEnumerator.h.

Referenced by WriteModuleMetadata().

void ValueEnumerator::incorporateFunction ( const Function F)

incorporateFunction/purgeFunction - If you'd like to deal with a function, use these two methods to get its data into the ValueEnumerator!

Definition at line 726 of file ValueEnumerator.cpp.

References llvm::Function::arg_begin(), llvm::Function::arg_end(), llvm::Function::begin(), llvm::Function::end(), llvm::Function::getAttributes(), I, llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), and llvm::SmallVectorTemplateCommon< T >::size().

Referenced by WriteFunction().

void ValueEnumerator::print ( raw_ostream OS,
const ValueMapType Map,
const char *  Name 
) const
void ValueEnumerator::print ( raw_ostream OS,
const MetadataMapType Map,
const char *  Name 
) const
void ValueEnumerator::purgeFunction ( )
void ValueEnumerator::setInstructionID ( const Instruction I)

Definition at line 412 of file ValueEnumerator.cpp.

References I.

Referenced by WriteInstruction().

bool llvm::ValueEnumerator::shouldPreserveUseListOrder ( ) const
inline

Definition at line 127 of file ValueEnumerator.h.

Referenced by WriteFunction(), WriteModule(), and WriteUseListBlock().

Member Data Documentation

UseListOrderStack llvm::ValueEnumerator::UseListOrders

Definition at line 49 of file ValueEnumerator.h.

Referenced by ValueEnumerator(), and WriteUseListBlock().


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