Use the AttributeSet as the 'key' to the map instead of the 'raw' pointer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174950 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling 2013-02-12 08:01:22 +00:00
parent 74fe825ca5
commit 105ea3d49d
2 changed files with 6 additions and 5 deletions

View File

@ -418,10 +418,11 @@ void ValueEnumerator::EnumerateOperandType(const Value *V) {
EnumerateMetadata(V); EnumerateMetadata(V);
} }
void ValueEnumerator::EnumerateAttributes(const AttributeSet &PAL) { void ValueEnumerator::EnumerateAttributes(AttributeSet PAL) {
if (PAL.isEmpty()) return; // null is always 0. if (PAL.isEmpty()) return; // null is always 0.
// Do a lookup. // Do a lookup.
unsigned &Entry = AttributeMap[PAL.getRawPointer()]; unsigned &Entry = AttributeMap[PAL];
if (Entry == 0) { if (Entry == 0) {
// Never saw this before, add it. // Never saw this before, add it.
Attribute.push_back(PAL); Attribute.push_back(PAL);

View File

@ -56,7 +56,7 @@ private:
AttributeGroupMapType AttributeGroupMap; AttributeGroupMapType AttributeGroupMap;
std::vector<AttributeSet> AttributeGroups; std::vector<AttributeSet> AttributeGroups;
typedef DenseMap<void*, unsigned> AttributeMapType; typedef DenseMap<AttributeSet, unsigned> AttributeMapType;
AttributeMapType AttributeMap; AttributeMapType AttributeMap;
std::vector<AttributeSet> Attribute; std::vector<AttributeSet> Attribute;
@ -104,7 +104,7 @@ public:
unsigned getAttributeID(AttributeSet PAL) const { unsigned getAttributeID(AttributeSet PAL) const {
if (PAL.isEmpty()) return 0; // Null maps to zero. if (PAL.isEmpty()) return 0; // Null maps to zero.
AttributeMapType::const_iterator I = AttributeMap.find(PAL.getRawPointer()); AttributeMapType::const_iterator I = AttributeMap.find(PAL);
assert(I != AttributeMap.end() && "Attribute not in ValueEnumerator!"); assert(I != AttributeMap.end() && "Attribute not in ValueEnumerator!");
return I->second; return I->second;
} }
@ -160,7 +160,7 @@ private:
void EnumerateValue(const Value *V); void EnumerateValue(const Value *V);
void EnumerateType(Type *T); void EnumerateType(Type *T);
void EnumerateOperandType(const Value *V); void EnumerateOperandType(const Value *V);
void EnumerateAttributes(const AttributeSet &PAL); void EnumerateAttributes(AttributeSet PAL);
void EnumerateValueSymbolTable(const ValueSymbolTable &ST); void EnumerateValueSymbolTable(const ValueSymbolTable &ST);
void EnumerateNamedMetadata(const Module *M); void EnumerateNamedMetadata(const Module *M);