diff options
author | Bill Wendling <isanbard@gmail.com> | 2013-02-12 08:01:22 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2013-02-12 08:01:22 +0000 |
commit | 105ea3d49d4a458af8779ae7f144f00d19c4168f (patch) | |
tree | 53e71f310903ccfc74457d8da4bdc04c9b866a18 /lib/Bitcode | |
parent | 74fe825ca597f56985ab4387baca35948647ec4b (diff) | |
download | external_llvm-105ea3d49d4a458af8779ae7f144f00d19c4168f.zip external_llvm-105ea3d49d4a458af8779ae7f144f00d19c4168f.tar.gz external_llvm-105ea3d49d4a458af8779ae7f144f00d19c4168f.tar.bz2 |
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
Diffstat (limited to 'lib/Bitcode')
-rw-r--r-- | lib/Bitcode/Writer/ValueEnumerator.cpp | 5 | ||||
-rw-r--r-- | lib/Bitcode/Writer/ValueEnumerator.h | 6 |
2 files changed, 6 insertions, 5 deletions
diff --git a/lib/Bitcode/Writer/ValueEnumerator.cpp b/lib/Bitcode/Writer/ValueEnumerator.cpp index 5822586..4f19dd0 100644 --- a/lib/Bitcode/Writer/ValueEnumerator.cpp +++ b/lib/Bitcode/Writer/ValueEnumerator.cpp @@ -418,10 +418,11 @@ void ValueEnumerator::EnumerateOperandType(const Value *V) { EnumerateMetadata(V); } -void ValueEnumerator::EnumerateAttributes(const AttributeSet &PAL) { +void ValueEnumerator::EnumerateAttributes(AttributeSet PAL) { if (PAL.isEmpty()) return; // null is always 0. + // Do a lookup. - unsigned &Entry = AttributeMap[PAL.getRawPointer()]; + unsigned &Entry = AttributeMap[PAL]; if (Entry == 0) { // Never saw this before, add it. Attribute.push_back(PAL); diff --git a/lib/Bitcode/Writer/ValueEnumerator.h b/lib/Bitcode/Writer/ValueEnumerator.h index 33db523..0af6164 100644 --- a/lib/Bitcode/Writer/ValueEnumerator.h +++ b/lib/Bitcode/Writer/ValueEnumerator.h @@ -56,7 +56,7 @@ private: AttributeGroupMapType AttributeGroupMap; std::vector<AttributeSet> AttributeGroups; - typedef DenseMap<void*, unsigned> AttributeMapType; + typedef DenseMap<AttributeSet, unsigned> AttributeMapType; AttributeMapType AttributeMap; std::vector<AttributeSet> Attribute; @@ -104,7 +104,7 @@ public: unsigned getAttributeID(AttributeSet PAL) const { 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!"); return I->second; } @@ -160,7 +160,7 @@ private: void EnumerateValue(const Value *V); void EnumerateType(Type *T); void EnumerateOperandType(const Value *V); - void EnumerateAttributes(const AttributeSet &PAL); + void EnumerateAttributes(AttributeSet PAL); void EnumerateValueSymbolTable(const ValueSymbolTable &ST); void EnumerateNamedMetadata(const Module *M); |