LLVM: llvm::ValueEnumerator Class Reference (original) (raw)

#include "[Bitcode/Writer/ValueEnumerator.h](ValueEnumerator%5F8h%5Fsource.html)"

Public Types
using TypeList = std::vector<Type *>
using ValueList = std::vector<std::pair<const Value *, unsigned>>
using IndexAndAttrSet = std::pair<unsigned, AttributeSet>
Attribute groups as encoded in bitcode are almost AttributeSets, but they include the AttributeList index, so we have to track that in our map.
Public Member Functions
ValueEnumerator (const Module &M, bool ShouldPreserveUseListOrder)
ValueEnumerator (const ValueEnumerator &)=delete
ValueEnumerator & operator= (const ValueEnumerator &)=delete
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
unsigned numMDs () const
bool shouldPreserveUseListOrder () const
unsigned getTypeID (Type *T) const
unsigned getInstructionID (const Instruction *I) const
void setInstructionID (const Instruction *I)
unsigned getAttributeListID (AttributeList PAL) const
unsigned getAttributeGroupID (IndexAndAttrSet Group) const
void getFunctionConstantRange (unsigned &Start, unsigned &End) const
getFunctionConstantRange - Return the range of values that corresponds to function-local constants.
const ValueList & getValues () const
bool hasMDs () const
Check whether the current block has any metadata to emit.
ArrayRef< const Metadata * > getMDStrings () const
Get the MDString metadata for this block.
ArrayRef< const Metadata * > getNonMDStrings () const
Get the non-MDString metadata for this block.
const TypeList & getTypes () const
const std::vector< const BasicBlock * > & getBasicBlocks () const
const std::vector< AttributeList > & getAttributeLists () const
const std::vector< IndexAndAttrSet > & getAttributeGroups () const
const ComdatSetType & getComdats () 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.
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!
void purgeFunction ()
uint64_t computeBitsRequiredForTypeIndices () const

Definition at line 43 of file ValueEnumerator.h.

IndexAndAttrSet

Attribute groups as encoded in bitcode are almost AttributeSets, but they include the AttributeList index, so we have to track that in our map.

Definition at line 52 of file ValueEnumerator.h.

TypeList

ValueList

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

Definition at line 339 of file ValueEnumerator.cpp.

References A(), assert(), Call, llvm::cast(), llvm::dyn_cast(), F, for(), GEP, llvm::DbgVariableRecord::getAddressExpression(), llvm::DbgVariableRecord::getAssignID(), llvm::DbgRecord::getDebugLoc(), llvm::DbgVariableRecord::getExpression(), llvm::Type::getMetadataTy(), llvm::DbgVariableRecord::getRawAddress(), llvm::DbgVariableRecord::getRawLocation(), llvm::DbgVariableRecord::getVariable(), I, llvm::isa(), llvm::DbgVariableRecord::isDbgAssign(), predictUseListOrder(), and UseListOrders.

Referenced by operator=(), and ValueEnumerator().

ValueEnumerator() [2/2]

computeBitsRequiredForTypeIndices()

uint64_t ValueEnumerator::computeBitsRequiredForTypeIndices ( ) const

dump()

getAttributeGroupID()

unsigned llvm::ValueEnumerator::getAttributeGroupID ( IndexAndAttrSet Group) const inline

getAttributeGroups()

const std::vector< IndexAndAttrSet > & llvm::ValueEnumerator::getAttributeGroups ( ) const inline

getAttributeListID()

unsigned llvm::ValueEnumerator::getAttributeListID ( AttributeList PAL) const inline

getAttributeLists()

const std::vector< AttributeList > & llvm::ValueEnumerator::getAttributeLists ( ) const inline

getBasicBlocks()

getComdatID()

getComdats()

getFunctionConstantRange()

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 192 of file ValueEnumerator.h.

getGlobalBasicBlockID()

getInstructionID()

getMDStrings()

getMetadataID()

getMetadataOrNullID()

getNonMDStrings()

getTypeID()

unsigned llvm::ValueEnumerator::getTypeID ( Type * T) const inline

getTypes()

const TypeList & llvm::ValueEnumerator::getTypes ( ) const inline

getValueID()

getValues()

const ValueList & llvm::ValueEnumerator::getValues ( ) const inline

hasMDs()

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

incorporateFunction()

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

RemoveDIs: Add non-instruction function-local metadata uses.

Definition at line 1066 of file ValueEnumerator.cpp.

References assert(), llvm::dyn_cast(), F, llvm::filterDbgVars(), llvm::DIArgList::getArgs(), I, llvm::isa(), Local, and llvm::SmallVectorTemplateBase< T, bool >::push_back().

numMDs()

unsigned llvm::ValueEnumerator::numMDs ( ) const inline

operator=()

print() [1/2]

print() [2/2]

purgeFunction()

void ValueEnumerator::purgeFunction ( )

setInstructionID()

shouldPreserveUseListOrder()

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

UseListOrders


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