42  if (
auto E = GlobalsTable.read(Reader))
 
 
   47std::vector<std::pair<uint32_t, codeview::CVSymbol>>
 
   50  std::vector<std::pair<uint32_t, codeview::CVSymbol>> Result;
 
   54  int32_t CompressedBucketIndex = GlobalsTable.BucketMap[ExpandedBucketIndex];
 
   55  if (CompressedBucketIndex == -1)
 
   58  uint32_t LastBucketIndex = GlobalsTable.HashBuckets.size() - 1;
 
   60      GlobalsTable.HashBuckets[CompressedBucketIndex] / 12;
 
   63    EndRecordIndex = GlobalsTable.HashBuckets[CompressedBucketIndex + 1];
 
   67    EndRecordIndex = GlobalsTable.HashRecords.size() * 12;
 
   72  assert(EndRecordIndex <= GlobalsTable.HashRecords.size());
 
   73  while (StartRecordIndex < EndRecordIndex) {
 
   74    PSHashRecord PSH = GlobalsTable.HashRecords[StartRecordIndex];
 
   78      Result.push_back(std::make_pair(Off, std::move(
Record)));
 
 
   88        "Encountered unsupported globals stream version.");
 
 
   97                                "Stream does not contain a GSIHashHeader.");
 
  102        "GSIHashHeader signature (0xffffffff) not found.");
 
 
  117                                "Invalid HR array size.");
 
  119  if (
auto EC = Reader.
readArray(HashRecords, NumHashRecords))
 
  122                                           "Error reading hash records."));
 
 
  139  uint32_t NumBitmapEntries = BitmapSizeInBits / 32;
 
  140  if (
auto EC = Reader.
readArray(HashBitmap, NumBitmapEntries))
 
  143                                           "Could not read a bitmap."));
 
  148    bool IsSet = HashBitmap[WordIdx] & (1U << BitIdx);
 
  150      BucketMap[
I] = CompressedBucketIdx++;
 
  161  if (
auto EC = Reader.
readArray(HashBuckets, NumBuckets))
 
  164                                           "Hash buckets corrupted."));
 
 
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
 
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
 
#define LLVM_LIKELY(EXPR)
 
static Error readGSIHashHeader(const GSIHashHeader *&HashHdr, BinaryStreamReader &Reader)
 
static Error readGSIHashBuckets(FixedStreamArray< support::ulittle32_t > &HashBuckets, FixedStreamArray< support::ulittle32_t > &HashBitmap, const GSIHashHeader *HashHdr, MutableArrayRef< int32_t > BucketMap, BinaryStreamReader &Reader)
 
static Error readGSIHashRecords(FixedStreamArray< PSHashRecord > &HashRecords, const GSIHashHeader *HashHdr, BinaryStreamReader &Reader)
 
static Error checkHashHdrVersion(const GSIHashHeader *HashHdr)
 
Provides read only access to a subclass of BinaryStream.
 
Error readObject(const T *&Dest)
Get a pointer to an object of type T from the underlying stream, as if by memcpy, and store the resul...
 
Error readArray(ArrayRef< T > &Array, uint32_t NumElements)
Get a reference to a NumElements element array of objects of type T from the underlying stream as if ...
 
Lightweight error class with error context and mandatory checking.
 
static ErrorSuccess success()
Create a success value.
 
FixedStreamArray is similar to VarStreamArray, except with each record having a fixed-length.
 
MutableArrayRef - Represent a mutable reference to an array (0 or more elements consecutively in memo...
 
StringRef - Represent a constant reference to a string, i.e.
 
const GSIHashHeader * HashHdr
 
LLVM_ABI Error read(BinaryStreamReader &Reader)
 
std::array< int32_t, IPHR_HASH+1 > BucketMap
 
FixedStreamArray< support::ulittle32_t > HashBuckets
 
FixedStreamArray< support::ulittle32_t > HashBitmap
 
FixedStreamArray< PSHashRecord > HashRecords
 
LLVM_ABI std::vector< std::pair< uint32_t, codeview::CVSymbol > > findRecordsByName(StringRef Name, const SymbolStream &Symbols) const
 
LLVM_ABI ~GlobalsStream()
 
LLVM_ABI GlobalsStream(std::unique_ptr< msf::MappedBlockStream > Stream)
 
CVRecord< SymbolKind > CVSymbol
 
LLVM_ABI StringRef getSymbolName(CVSymbol Sym)
 
LLVM_ABI uint32_t hashStringV1(StringRef Str)
 
This is an optimization pass for GlobalISel generic memory operations.
 
constexpr int popcount(T Value) noexcept
Count the number of set bits in a value.
 
Error joinErrors(Error E1, Error E2)
Concatenate errors.
 
Error make_error(ArgTs &&... Args)
Make a Error instance representing failure using the given error info type.
 
uint64_t alignTo(uint64_t Size, Align A)
Returns a multiple of A needed to store Size bytes.
 
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
 
Implement std::hash so that hash_code can be used in STL containers.