diff options
Diffstat (limited to 'lib/Bitcode/Writer')
-rw-r--r-- | lib/Bitcode/Writer/BitcodeWriter.cpp | 12 | ||||
-rw-r--r-- | lib/Bitcode/Writer/ValueEnumerator.cpp | 6 | ||||
-rw-r--r-- | lib/Bitcode/Writer/ValueEnumerator.h | 17 |
3 files changed, 18 insertions, 17 deletions
diff --git a/lib/Bitcode/Writer/BitcodeWriter.cpp b/lib/Bitcode/Writer/BitcodeWriter.cpp index aaad22688a..96f045cd47 100644 --- a/lib/Bitcode/Writer/BitcodeWriter.cpp +++ b/lib/Bitcode/Writer/BitcodeWriter.cpp @@ -20,7 +20,6 @@ #include "llvm/InlineAsm.h" #include "llvm/Instructions.h" #include "llvm/Module.h" -#include "llvm/ParamAttrsList.h" #include "llvm/TypeSymbolTable.h" #include "llvm/ValueSymbolTable.h" #include "llvm/Support/MathExtras.h" @@ -109,17 +108,18 @@ static void WriteStringRecord(unsigned Code, const std::string &Str, // Emit information about parameter attributes. static void WriteParamAttrTable(const ValueEnumerator &VE, BitstreamWriter &Stream) { - const std::vector<const ParamAttrsList*> &Attrs = VE.getParamAttrs(); + const std::vector<PAListPtr> &Attrs = VE.getParamAttrs(); if (Attrs.empty()) return; Stream.EnterSubblock(bitc::PARAMATTR_BLOCK_ID, 3); SmallVector<uint64_t, 64> Record; for (unsigned i = 0, e = Attrs.size(); i != e; ++i) { - const ParamAttrsList *A = Attrs[i]; - for (unsigned op = 0, e = A->size(); op != e; ++op) { - Record.push_back(A->getParamIndex(op)); - Record.push_back(A->getParamAttrsAtIndex(op)); + const PAListPtr &A = Attrs[i]; + for (unsigned i = 0, e = A.getNumSlots(); i != e; ++i) { + const ParamAttrsWithIndex &PAWI = A.getSlot(i); + Record.push_back(PAWI.Index); + Record.push_back(PAWI.Attrs); } Stream.EmitRecord(bitc::PARAMATTR_CODE_ENTRY, Record); diff --git a/lib/Bitcode/Writer/ValueEnumerator.cpp b/lib/Bitcode/Writer/ValueEnumerator.cpp index d2efe078c0..09a1db3d62 100644 --- a/lib/Bitcode/Writer/ValueEnumerator.cpp +++ b/lib/Bitcode/Writer/ValueEnumerator.cpp @@ -245,10 +245,10 @@ void ValueEnumerator::EnumerateOperandType(const Value *V) { } } -void ValueEnumerator::EnumerateParamAttrs(const ParamAttrsList *PAL) { - if (PAL == 0) return; // null is always 0. +void ValueEnumerator::EnumerateParamAttrs(const PAListPtr &PAL) { + if (PAL.isEmpty()) return; // null is always 0. // Do a lookup. - unsigned &Entry = ParamAttrMap[PAL]; + unsigned &Entry = ParamAttrMap[PAL.getRawPointer()]; if (Entry == 0) { // Never saw this before, add it. ParamAttrs.push_back(PAL); diff --git a/lib/Bitcode/Writer/ValueEnumerator.h b/lib/Bitcode/Writer/ValueEnumerator.h index 9fb916a515..dc40d016dc 100644 --- a/lib/Bitcode/Writer/ValueEnumerator.h +++ b/lib/Bitcode/Writer/ValueEnumerator.h @@ -15,6 +15,7 @@ #define VALUE_ENUMERATOR_H #include "llvm/ADT/DenseMap.h" +#include "llvm/ParameterAttributes.h" #include <vector> namespace llvm { @@ -24,7 +25,7 @@ class Value; class BasicBlock; class Function; class Module; -class ParamAttrsList; +class PAListPtr; class TypeSymbolTable; class ValueSymbolTable; @@ -44,9 +45,9 @@ private: ValueMapType ValueMap; ValueList Values; - typedef DenseMap<const ParamAttrsList*, unsigned> ParamAttrMapType; + typedef DenseMap<void*, unsigned> ParamAttrMapType; ParamAttrMapType ParamAttrMap; - std::vector<const ParamAttrsList*> ParamAttrs; + std::vector<PAListPtr> ParamAttrs; /// BasicBlocks - This contains all the basic blocks for the currently /// incorporated function. Their reverse mapping is stored in ValueMap. @@ -75,9 +76,9 @@ public: return I->second-1; } - unsigned getParamAttrID(const ParamAttrsList *PAL) const { - if (PAL == 0) return 0; // Null maps to zero. - ParamAttrMapType::const_iterator I = ParamAttrMap.find(PAL); + unsigned getParamAttrID(const PAListPtr &PAL) const { + if (PAL.isEmpty()) return 0; // Null maps to zero. + ParamAttrMapType::const_iterator I = ParamAttrMap.find(PAL.getRawPointer()); assert(I != ParamAttrMap.end() && "ParamAttr not in ValueEnumerator!"); return I->second; } @@ -94,7 +95,7 @@ public: const std::vector<const BasicBlock*> &getBasicBlocks() const { return BasicBlocks; } - const std::vector<const ParamAttrsList*> &getParamAttrs() const { + const std::vector<PAListPtr> &getParamAttrs() const { return ParamAttrs; } @@ -115,7 +116,7 @@ private: void EnumerateValue(const Value *V); void EnumerateType(const Type *T); void EnumerateOperandType(const Value *V); - void EnumerateParamAttrs(const ParamAttrsList *PAL); + void EnumerateParamAttrs(const PAListPtr &PAL); void EnumerateTypeSymbolTable(const TypeSymbolTable &ST); void EnumerateValueSymbolTable(const ValueSymbolTable &ST); |