14 #ifndef VALUE_ENUMERATOR_H
15 #define VALUE_ENUMERATOR_H
33 class ValueSymbolTable;
42 typedef std::vector<std::pair<const Value*, unsigned> >
ValueList;
57 std::vector<AttributeSet> AttributeGroups;
69 unsigned InstructionCount;
73 std::vector<const BasicBlock*> BasicBlocks;
77 unsigned NumModuleValues;
81 unsigned NumModuleMDValues;
83 unsigned FirstFuncConstantID;
98 assert(I != TypeMap.
end() &&
"Type not in ValueEnumerator!");
108 assert(I != AttributeMap.
end() &&
"Attribute not in ValueEnumerator!");
115 assert(I != AttributeGroupMap.
end() &&
"Attribute not in ValueEnumerator!");
122 Start = FirstFuncConstantID;
129 return FunctionLocalMDs;
139 return AttributeGroups;
154 void OptimizeConstants(
unsigned CstStart,
unsigned CstEnd);
156 void EnumerateMDNodeOperands(
const MDNode *
N);
157 void EnumerateMetadata(
const Value *MD);
158 void EnumerateFunctionLocalMetadata(
const MDNode *
N);
160 void EnumerateValue(
const Value *V);
161 void EnumerateType(
Type *
T);
162 void EnumerateOperandType(
const Value *V);
166 void EnumerateNamedMetadata(
const Module *M);
COFF::RelocationTypeX86 Type
The main container class for the LLVM Intermediate Representation.
void setInstructionID(const Instruction *I)
MDNode - a tuple of other values.
std::vector< std::pair< const Value *, unsigned > > ValueList
void incorporateFunction(const Function &F)
This file contains the simple types necessary to represent the attributes associated with functions a...
unsigned getAttributeID(AttributeSet PAL) const
const TypeList & getTypes() const
unsigned getInstructionID(const Instruction *I) const
unsigned getValueID(const Value *V) const
void getFunctionConstantRange(unsigned &Start, unsigned &End) const
const ValueList & getMDValues() const
const ValueList & getValues() const
const std::vector< AttributeSet > & getAttributes() const
unsigned getTypeID(Type *T) const
LLVM Basic Block Representation.
unsigned getAttributeGroupID(AttributeSet PAL) const
const std::vector< AttributeSet > & getAttributeGroups() const
const std::vector< const BasicBlock * > & getBasicBlocks() const
#define LLVM_DELETED_FUNCTION
void print(raw_ostream &OS, const ValueMapType &Map, const char *Name) const
const SmallVectorImpl< const MDNode * > & getFunctionLocalMDValues() const
unsigned getGlobalBasicBlockID(const BasicBlock *BB) const
LLVM Value Representation.
std::vector< Type * > TypeList
iterator find(const KeyT &Val)
bool isEmpty() const
Return true if there are no attributes.