LLVM: include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef LLVM_DEBUGINFO_PDB_NATIVE_GSISTREAMBUILDER_H

10#define LLVM_DEBUGINFO_PDB_NATIVE_GSISTREAMBUILDER_H

11

20

21namespace llvm {

26}

28

37

38namespace msf {

39class MSFBuilder;

40struct MSFLayout;

41}

42namespace pdb {

46

48

49public:

52

55

57

60

64

65

67

71

72

73

75

76private:

77 void finalizePublicBuckets();

78 void finalizeGlobalBuckets(uint32_t RecordZeroOffset);

79

80 template void serializeAndAddGlobal(const T &Symbol);

81

82 uint32_t calculatePublicsHashStreamSize() const;

83 uint32_t calculateGlobalsHashStreamSize() const;

87

92 std::unique_ptr PSH;

93 std::unique_ptr GSH;

94

95

96

97 std::vector Publics;

98

99

100 std::vectorcodeview::CVSymbol Globals;

101

102

103

105};

106

107

108

109

112

113 const char *Name = nullptr;

115

116

118

119

121

122

124

125

127

128

130 static_assert(IPHR_HASH <= 1 << 12, "bitfield too small");

131

136

141

143};

144

145static_assert(sizeof(BulkPublic) <= 24, "unexpected size increase");

146static_assert(std::is_trivially_copyable::value,

147 "should be trivial");

148

149}

150}

151

152#endif

assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")

static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")

This file defines the DenseSet and SmallDenseSet classes.

ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...

size_t size() const

size - Get the array size.

Implements a dense probed hash-table based set.

Lightweight error class with error context and mandatory checking.

StringRef - Represent a constant reference to a string, i.e.

ArrayRef< uint8_t > RecordData

LLVM_ABI void addPublicSymbols(std::vector< BulkPublic > &&PublicsIn)

LLVM_ABI Error finalizeMsfLayout()

uint32_t getRecordStreamIndex() const

Definition GSIStreamBuilder.h:63

GSIStreamBuilder(const GSIStreamBuilder &)=delete

LLVM_ABI ~GSIStreamBuilder()

LLVM_ABI Error commit(const msf::MSFLayout &Layout, WritableBinaryStreamRef Buffer)

LLVM_ABI GSIStreamBuilder(msf::MSFBuilder &Msf)

LLVM_ABI void addGlobalSymbol(const codeview::ProcRefSym &Sym)

GSIStreamBuilder & operator=(const GSIStreamBuilder &)=delete

uint32_t getPublicsStreamIndex() const

Definition GSIStreamBuilder.h:61

uint32_t getGlobalsStreamIndex() const

Definition GSIStreamBuilder.h:62

CVRecord< SymbolKind > CVSymbol

PublicSymFlags

Corresponds to the CV_PUBSYMFLAGS bitfield.

const uint16_t kInvalidStreamIndex

This is an optimization pass for GlobalISel generic memory operations.

static size_t length(const codeview::CVSymbol &Item)

Definition GSIStreamBuilder.h:30

static ArrayRef< uint8_t > bytes(const codeview::CVSymbol &Item)

Definition GSIStreamBuilder.h:33

This struct is equivalent to codeview::PublicSym32, but it has been optimized for size to speed up bu...

Definition GSIStreamBuilder.h:110

uint16_t BucketIdx

Definition GSIStreamBuilder.h:129

StringRef getName() const

Definition GSIStreamBuilder.h:142

uint16_t Flags

Definition GSIStreamBuilder.h:126

uint32_t SymOffset

Definition GSIStreamBuilder.h:117

void setFlags(codeview::PublicSymFlags F)

Definition GSIStreamBuilder.h:132

uint16_t Segment

Definition GSIStreamBuilder.h:123

void setBucketIdx(uint16_t B)

Definition GSIStreamBuilder.h:137

BulkPublic()

Definition GSIStreamBuilder.h:111

const char * Name

Definition GSIStreamBuilder.h:113

uint32_t Offset

Definition GSIStreamBuilder.h:120

uint32_t NameLen

Definition GSIStreamBuilder.h:114