diff options
author | Ted Kremenek <kremenek@apple.com> | 2007-11-06 19:49:16 +0000 |
---|---|---|
committer | Ted Kremenek <kremenek@apple.com> | 2007-11-06 19:49:16 +0000 |
commit | d015c7b4fdc70729bd8bd976006225c683f944f7 (patch) | |
tree | 82c348e19f2c2cb6fd58d8aadc010c81f845580e /llvm/lib/Bitcode/Reader | |
parent | 2d8aaa7d74c1df8fb6d1cd0c337f36229907a31a (diff) | |
download | bcm5719-llvm-d015c7b4fdc70729bd8bd976006225c683f944f7.tar.gz bcm5719-llvm-d015c7b4fdc70729bd8bd976006225c683f944f7.zip |
Added support for processing abbreviations in the Deserializer.
Added some #ifdef-controlled messages for debugging backpatching.
llvm-svn: 43771
Diffstat (limited to 'llvm/lib/Bitcode/Reader')
-rw-r--r-- | llvm/lib/Bitcode/Reader/Deserialize.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/llvm/lib/Bitcode/Reader/Deserialize.cpp b/llvm/lib/Bitcode/Reader/Deserialize.cpp index ef4e4f7e000..5642f37fac5 100644 --- a/llvm/lib/Bitcode/Reader/Deserialize.cpp +++ b/llvm/lib/Bitcode/Reader/Deserialize.cpp @@ -13,6 +13,10 @@ #include "llvm/Bitcode/Deserialize.h" +#ifdef DEBUG_BACKPATCH +#include "llvm/Support/Streams.h" +#endif + using namespace llvm; Deserializer::Deserializer(BitstreamReader& stream) @@ -71,6 +75,11 @@ void Deserializer::ReadRecord() { continue; } + if (Code == bitc::DEFINE_ABBREV) { + Stream.ReadAbbrevRecord(); + continue; + } + break; } @@ -136,6 +145,10 @@ void Deserializer::RegisterPtr(unsigned PtrId, const void* Ptr) { assert (!HasFinalPtr(E) && "Pointer already registered."); +#ifdef DEBUG_BACKPATCH + llvm::cerr << "RegisterPtr: " << PtrId << " => " << Ptr << "\n"; +#endif + SetPtr(E,Ptr); } @@ -145,8 +158,12 @@ void Deserializer::ReadUIntPtr(uintptr_t& PtrRef) { if (PtrId == 0) { PtrRef = 0; return; - } - + } + +#ifdef DEBUG_BACKPATCH + llvm::cerr << "ReadUintPtr: " << PtrId << "\n"; +#endif + MapTy::value_type& E = BPatchMap.FindAndConstruct(BPKey(PtrId)); if (HasFinalPtr(E)) |