9#ifndef LLVM_DEBUGINFO_PDB_NATIVE_GLOBALSSTREAM_H
10#define LLVM_DEBUGINFO_PDB_NATIVE_GLOBALSSTREAM_H
20class BinaryStreamReader;
22class MappedBlockStream;
31 GSIHashIterator, FixedStreamArrayIterator<PSHashRecord>,
32 std::random_access_iterator_tag, const uint32_t> {
72 explicit GlobalsStream(std::unique_ptr<msf::MappedBlockStream> Stream);
77 std::vector<std::pair<uint32_t, codeview::CVSymbol>>
82 std::unique_ptr<msf::MappedBlockStream> Stream;
Lightweight arrays that are backed by an arbitrary BinaryStream.
Provides read only access to a subclass of BinaryStream.
Lightweight error class with error context and mandatory checking.
FixedStreamArray is similar to VarStreamArray, except with each record having a fixed-length.
FixedStreamArrayIterator< T > begin() const
FixedStreamArrayIterator< T > end() const
StringRef - Represent a constant reference to a string, i.e.
CRTP base class for adapting an iterator to a different type.
FixedStreamArrayIterator< PSHashRecord > I
Iterator over hash records producing symbol record offsets.
uint32_t operator*() const
A readonly view of a hash table used in the globals and publics streams.
const GSIHashHeader * HashHdr
uint32_t getHashRecordSize() const
Error read(BinaryStreamReader &Reader)
uint32_t getNumBuckets() const
std::array< int32_t, IPHR_HASH+1 > BucketMap
FixedStreamArray< support::ulittle32_t > HashBuckets
FixedStreamArray< support::ulittle32_t > HashBitmap
uint32_t getVerSignature() const
GSIHashIterator begin() const
GSIHashIterator end() const
uint32_t getVerHeader() const
FixedStreamArray< PSHashRecord > HashRecords
std::vector< std::pair< uint32_t, codeview::CVSymbol > > findRecordsByName(StringRef Name, const SymbolStream &Symbols) const
const GSIHashTable & getGlobalsTable() const
This is an optimization pass for GlobalISel generic memory operations.
Implement std::hash so that hash_code can be used in STL containers.