forked from OSchip/llvm-project
Added support for processing abbreviations in the Deserializer.
Added some #ifdef-controlled messages for debugging backpatching. llvm-svn: 43771
This commit is contained in:
parent
2d8aaa7d74
commit
d015c7b4fd
|
@ -156,9 +156,9 @@ public:
|
||||||
|
|
||||||
bool AtEnd();
|
bool AtEnd();
|
||||||
|
|
||||||
|
bool inRecord();
|
||||||
private:
|
private:
|
||||||
void ReadRecord();
|
void ReadRecord();
|
||||||
bool inRecord();
|
|
||||||
uintptr_t ReadInternalRefPtr();
|
uintptr_t ReadInternalRefPtr();
|
||||||
|
|
||||||
static inline bool HasFinalPtr(MapTy::value_type& V) {
|
static inline bool HasFinalPtr(MapTy::value_type& V) {
|
||||||
|
|
|
@ -13,6 +13,10 @@
|
||||||
|
|
||||||
#include "llvm/Bitcode/Deserialize.h"
|
#include "llvm/Bitcode/Deserialize.h"
|
||||||
|
|
||||||
|
#ifdef DEBUG_BACKPATCH
|
||||||
|
#include "llvm/Support/Streams.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
using namespace llvm;
|
using namespace llvm;
|
||||||
|
|
||||||
Deserializer::Deserializer(BitstreamReader& stream)
|
Deserializer::Deserializer(BitstreamReader& stream)
|
||||||
|
@ -71,6 +75,11 @@ void Deserializer::ReadRecord() {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Code == bitc::DEFINE_ABBREV) {
|
||||||
|
Stream.ReadAbbrevRecord();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,6 +145,10 @@ void Deserializer::RegisterPtr(unsigned PtrId, const void* Ptr) {
|
||||||
|
|
||||||
assert (!HasFinalPtr(E) && "Pointer already registered.");
|
assert (!HasFinalPtr(E) && "Pointer already registered.");
|
||||||
|
|
||||||
|
#ifdef DEBUG_BACKPATCH
|
||||||
|
llvm::cerr << "RegisterPtr: " << PtrId << " => " << Ptr << "\n";
|
||||||
|
#endif
|
||||||
|
|
||||||
SetPtr(E,Ptr);
|
SetPtr(E,Ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -147,6 +160,10 @@ void Deserializer::ReadUIntPtr(uintptr_t& PtrRef) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef DEBUG_BACKPATCH
|
||||||
|
llvm::cerr << "ReadUintPtr: " << PtrId << "\n";
|
||||||
|
#endif
|
||||||
|
|
||||||
MapTy::value_type& E = BPatchMap.FindAndConstruct(BPKey(PtrId));
|
MapTy::value_type& E = BPatchMap.FindAndConstruct(BPKey(PtrId));
|
||||||
|
|
||||||
if (HasFinalPtr(E))
|
if (HasFinalPtr(E))
|
||||||
|
|
Loading…
Reference in New Issue