Author: kremenek Date: Tue Nov 6 13:49:16 2007 New Revision: 43771 URL: http://llvm.org/viewvc/llvm-project?rev=43771&view=rev Log: Added support for processing abbreviations in the Deserializer. Added some #ifdef-controlled messages for debugging backpatching.
Modified: llvm/trunk/include/llvm/Bitcode/Deserialize.h llvm/trunk/lib/Bitcode/Reader/Deserialize.cpp Modified: llvm/trunk/include/llvm/Bitcode/Deserialize.h URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/Deserialize.h?rev=43771&r1=43770&r2=43771&view=diff ============================================================================== --- llvm/trunk/include/llvm/Bitcode/Deserialize.h (original) +++ llvm/trunk/include/llvm/Bitcode/Deserialize.h Tue Nov 6 13:49:16 2007 @@ -156,9 +156,9 @@ bool AtEnd(); + bool inRecord(); private: void ReadRecord(); - bool inRecord(); uintptr_t ReadInternalRefPtr(); static inline bool HasFinalPtr(MapTy::value_type& V) { Modified: llvm/trunk/lib/Bitcode/Reader/Deserialize.cpp URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/Deserialize.cpp?rev=43771&r1=43770&r2=43771&view=diff ============================================================================== --- llvm/trunk/lib/Bitcode/Reader/Deserialize.cpp (original) +++ llvm/trunk/lib/Bitcode/Reader/Deserialize.cpp Tue Nov 6 13:49:16 2007 @@ -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 @@ continue; } + if (Code == bitc::DEFINE_ABBREV) { + Stream.ReadAbbrevRecord(); + continue; + } + break; } @@ -136,6 +145,10 @@ assert (!HasFinalPtr(E) && "Pointer already registered."); +#ifdef DEBUG_BACKPATCH + llvm::cerr << "RegisterPtr: " << PtrId << " => " << Ptr << "\n"; +#endif + SetPtr(E,Ptr); } @@ -145,8 +158,12 @@ 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)) _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits