aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Bitcode/Deserialize.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/llvm/Bitcode/Deserialize.h')
-rw-r--r--include/llvm/Bitcode/Deserialize.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/include/llvm/Bitcode/Deserialize.h b/include/llvm/Bitcode/Deserialize.h
index c98b4e8..4ab35c0 100644
--- a/include/llvm/Bitcode/Deserialize.h
+++ b/include/llvm/Bitcode/Deserialize.h
@@ -88,12 +88,14 @@ public:
private:
BitstreamReader& Stream;
- SmallVector<uint64_t,10> Record;
+ SmallVector<uint64_t,20> Record;
unsigned RecIdx;
BumpPtrAllocator Allocator;
BPNode* FreeList;
MapTy BPatchMap;
- llvm::SmallVector<uint64_t,5> BlockLocs;
+ llvm::SmallVector<std::pair<Location,unsigned>,5> BlockStack;
+ unsigned AbbrevNo;
+ unsigned RecordCode;
//===----------------------------------------------------------===//
// Public Interface.
@@ -231,14 +233,22 @@ public:
RegisterPtr(PtrID,&x);
}
- Location GetCurrentBlockLocation();
+ Location getCurrentBlockLocation();
+ unsigned getCurrentBlockID();
+ unsigned getAbbrevNo();
+
bool FinishedBlock(Location BlockLoc);
bool AtEnd();
bool inRecord();
+ void SkipBlock();
+
+ unsigned getRecordCode();
private:
- void ReadRecord();
+ bool AdvanceStream();
+ void ReadRecord();
+
uintptr_t ReadInternalRefPtr();
static inline bool HasFinalPtr(MapTy::value_type& V) {