LLVM: include/llvm/DebugInfo/GSYM/FunctionInfo.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9#ifndef LLVM_DEBUGINFO_GSYM_FUNCTIONINFO_H

10#define LLVM_DEBUGINFO_GSYM_FUNCTIONINFO_H

11

21#include

22

23namespace llvm {

25

26namespace gsym {

27

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

95 uint32_t Name;

97 std::optional Inline;

99 std::optional CallSites;

100

101

102

104

107

108

109

110

111

112

113

114

116

117

118

119

120

121

122

123

124

125

127 return Name != 0;

128 }

129

130

131

132

133

134

135

136

137

138

139

140

141

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

160 bool NoPadding = false) const;

161

162

163

164

165

166

167

168

169

170

171

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

202 std::optional *MergedFuncsData = nullptr);

203

207

212 Inline = std::nullopt;

213 }

214};

215

217 return LHS.Range == RHS.Range && LHS.Name == RHS.Name &&

218 LHS.OptLineTable == RHS.OptLineTable && LHS.Inline == RHS.Inline;

219}

221 return !(LHS == RHS);

222}

223

224

225

226

227

228

229

230

231

232

233

234

235

236

238

239 return std::tie(LHS.Range, LHS.Inline, LHS.OptLineTable) <

240 std::tie(RHS.Range, RHS.Inline, RHS.OptLineTable);

241}

242

244

245}

246}

247

248#endif

This file defines the SmallString class.

A class that represents an address range.

Tagged union holding either a T or a Error.

SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better...

A simplified binary data writer class that doesn't require targets, target definitions,...

GsymReader is used to read GSYM data from a file or buffer.

This class implements an extremely fast bulk output stream that can only output to a stream.

LLVM_ABI raw_ostream & operator<<(raw_ostream &OS, const CallSiteInfo &CSI)

bool operator<(const FunctionInfo &LHS, const FunctionInfo &RHS)

This sorting will order things consistently by address range first, but then followed by increasing l...

Definition FunctionInfo.h:237

bool operator==(const FunctionInfo &LHS, const FunctionInfo &RHS)

Definition FunctionInfo.h:216

bool operator!=(const FunctionInfo &LHS, const FunctionInfo &RHS)

Definition FunctionInfo.h:220

This is an optimization pass for GlobalISel generic memory operations.

FunctionAddr VTableAddr uintptr_t uintptr_t Data

Function information in GSYM files encodes information for one contiguous address range.

Definition FunctionInfo.h:93

std::optional< InlineInfo > Inline

Definition FunctionInfo.h:97

std::optional< MergedFunctionsInfo > MergedFunctions

Definition FunctionInfo.h:98

uint64_t startAddress() const

Definition FunctionInfo.h:204

uint64_t endAddress() const

Definition FunctionInfo.h:205

AddressRange Range

Definition FunctionInfo.h:94

void clear()

Definition FunctionInfo.h:208

bool isValid() const

Query if a FunctionInfo object is valid.

Definition FunctionInfo.h:126

std::optional< CallSiteInfoCollection > CallSites

Definition FunctionInfo.h:99

bool hasRichInfo() const

Query if a FunctionInfo has rich debug info.

Definition FunctionInfo.h:115

uint64_t size() const

Definition FunctionInfo.h:206

static LLVM_ABI llvm::Expected< LookupResult > lookup(DataExtractor &Data, const GsymReader &GR, uint64_t FuncAddr, uint64_t Addr, std::optional< DataExtractor > *MergedFuncsData=nullptr)

Lookup an address within a FunctionInfo object's data stream.

LLVM_ABI uint64_t cacheEncoding()

Encode this function info into the internal byte cache and return the size in bytes.

uint32_t Name

String table offset in the string table.

Definition FunctionInfo.h:95

LLVM_ABI llvm::Expected< uint64_t > encode(FileWriter &O, bool NoPadding=false) const

Encode this object into FileWriter stream.

SmallString< 32 > EncodingCache

If we encode a FunctionInfo during segmenting so we know its size, we can cache that encoding here so...

Definition FunctionInfo.h:103

std::optional< LineTable > OptLineTable

Definition FunctionInfo.h:96

FunctionInfo(uint64_t Addr=0, uint64_t Size=0, uint32_t N=0)

Definition FunctionInfo.h:105

static LLVM_ABI llvm::Expected< FunctionInfo > decode(DataExtractor &Data, uint64_t BaseAddr)

Decode an object from a binary data stream.