LLVM  8.0.1
Classes | Functions
GSIStreamBuilder.cpp File Reference
#include "llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/DebugInfo/CodeView/RecordName.h"
#include "llvm/DebugInfo/CodeView/SymbolDeserializer.h"
#include "llvm/DebugInfo/CodeView/SymbolRecord.h"
#include "llvm/DebugInfo/CodeView/SymbolSerializer.h"
#include "llvm/DebugInfo/MSF/MSFBuilder.h"
#include "llvm/DebugInfo/MSF/MSFCommon.h"
#include "llvm/DebugInfo/MSF/MappedBlockStream.h"
#include "llvm/DebugInfo/PDB/Native/GlobalsStream.h"
#include "llvm/DebugInfo/PDB/Native/Hash.h"
#include "llvm/Support/BinaryItemStream.h"
#include "llvm/Support/BinaryStreamWriter.h"
#include "llvm/Support/xxhash.h"
#include <algorithm>
#include <vector>
Include dependency graph for GSIStreamBuilder.cpp:

Go to the source code of this file.

Classes

struct  llvm::pdb::GSIHashStreamBuilder
 
struct  llvm::pdb::GSIHashStreamBuilder::UdtDenseMapInfo
 

Functions

static bool isAsciiString (StringRef S)
 
static bool gsiRecordLess (StringRef S1, StringRef S2)
 
static bool comparePubSymByAddrAndName (const std::pair< const CVSymbol *, const PublicSym32 *> &LS, const std::pair< const CVSymbol *, const PublicSym32 *> &RS)
 
static std::vector< ulittle32_t > computeAddrMap (ArrayRef< CVSymbol > Records)
 Compute the address map. More...
 
static Error writeRecords (BinaryStreamWriter &Writer, ArrayRef< CVSymbol > Records)
 

Function Documentation

◆ comparePubSymByAddrAndName()

static bool comparePubSymByAddrAndName ( const std::pair< const CVSymbol *, const PublicSym32 *> &  LS,
const std::pair< const CVSymbol *, const PublicSym32 *> &  RS 
)
static

Definition at line 233 of file GSIStreamBuilder.cpp.

Referenced by computeAddrMap().

◆ computeAddrMap()

static std::vector<ulittle32_t> computeAddrMap ( ArrayRef< CVSymbol Records)
static

Compute the address map.

The address map is an array of symbol offsets sorted so that it can be binary searched by address.

Definition at line 246 of file GSIStreamBuilder.cpp.

References assert(), llvm::cantFail(), comparePubSymByAddrAndName(), and llvm::ArrayRef< T >::size().

Referenced by writeRecords().

◆ gsiRecordLess()

static bool gsiRecordLess ( StringRef  S1,
StringRef  S2 
)
static

◆ isAsciiString()

static bool isAsciiString ( StringRef  S)
static

Definition at line 114 of file GSIStreamBuilder.cpp.

References llvm::all_of(), and C.

Referenced by gsiRecordLess().

◆ writeRecords()

static Error writeRecords ( BinaryStreamWriter Writer,
ArrayRef< CVSymbol Records 
)
static