LLVM: include/llvm/ProfileData/Coverage/CoverageMappingReader.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_PROFILEDATA_COVERAGE_COVERAGEMAPPINGREADER_H

15#define LLVM_PROFILEDATA_COVERAGE_COVERAGEMAPPINGREADER_H

16

24#include

25#include

26#include

27#include

28#include

29

30namespace llvm {

32

34

35

43

44

49

51

52public:

58

61

66

71

73 increment();

74 return *this;

75 }

77 return Reader == RHS.Reader;

78 }

80 return Reader != RHS.Reader;

81 }

86 return std::move(E);

87 }

88 return Record;

89 }

94 return std::move(E);

95 }

96 return &Record;

97 }

98};

99

108

109

111protected:

113

115

120};

121

122

123

131

132

135 std::vector &Filenames;

136 std::vector &Expressions;

137 std::vector &MappingRegions;

138

139public:

142 std::vector &Filenames,

143 std::vector &Expressions,

144 std::vector &MappingRegions)

146 TranslationUnitFilenames(TranslationUnitFilenames),

147 Filenames(Filenames), Expressions(Expressions),

148 MappingRegions(MappingRegions) {}

152

154

155private:

159 readMappingRegionsSubArray(std::vector &MappingRegions,

160 unsigned InferredFileID, size_t NumFileIDs);

161};

162

163

164

166public:

182

185

186private:

187 std::vectorstd::string Filenames;

188 std::vector MappingRecords;

189 std::unique_ptr ProfileNames;

190 size_t CurrentRecord = 0;

191 std::vector FunctionsFilenames;

192 std::vector Expressions;

193 std::vector MappingRegions;

194

195

196

197

199

200

201

202

204

205 BinaryCoverageReader(std::unique_ptr Symtab,

208 : ProfileNames(std::move(Symtab)), FuncRecords(std::move(FuncRecords)),

209 CoverageMapCopy(std::move(CoverageMapCopy)) {}

210

211public:

213 BinaryCoverageReader &operator=(const BinaryCoverageReader &) = delete;

214

217 SmallVectorImpl<std::unique_ptr> &ObjectFileBuffers,

220

225 std::unique_ptr ProfileNamesPtr, uint8_t BytesInAddress,

227

229};

230

231

233 std::vectorstd::string &Filenames;

235

236

238

239public:

241 std::vectorstd::string &Filenames,

244 CompilationDir(CompilationDir) {}

248

250};

251

252}

253}

254

255#endif

static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")

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

Lightweight error class with error context and mandatory checking.

Tagged union holding either a T or a Error.

This class consists of common code factored out of the SmallVector class to reduce code duplication b...

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

LLVM Value Representation.

static Expected< std::unique_ptr< BinaryCoverageReader > > createCoverageReaderFromBuffer(StringRef Coverage, FuncRecordsStorage &&FuncRecords, CoverageMapCopyStorage &&CoverageMap, std::unique_ptr< InstrProfSymtab > ProfileNamesPtr, uint8_t BytesInAddress, llvm::endianness Endian, StringRef CompilationDir="")

std::unique_ptr< MemoryBuffer > CoverageMapCopyStorage

Definition CoverageMappingReader.h:184

static Expected< std::vector< std::unique_ptr< BinaryCoverageReader > > > create(MemoryBufferRef ObjectBuffer, StringRef Arch, SmallVectorImpl< std::unique_ptr< MemoryBuffer > > &ObjectFileBuffers, StringRef CompilationDir="", SmallVectorImpl< object::BuildIDRef > *BinaryIDs=nullptr)

BinaryCoverageReader & operator=(const BinaryCoverageReader &)=delete

std::unique_ptr< MemoryBuffer > FuncRecordsStorage

Definition CoverageMappingReader.h:183

Error readNextRecord(CoverageMappingRecord &Record) override

BinaryCoverageReader(const BinaryCoverageReader &)=delete

A file format agnostic iterator over coverage mapping data.

Definition CoverageMappingReader.h:45

Expected< CoverageMappingRecord & > operator*()

Definition CoverageMappingReader.h:82

CoverageMappingRecord value_type

Definition CoverageMappingReader.h:54

bool operator==(const CoverageMappingIterator &RHS) const

Definition CoverageMappingReader.h:76

std::ptrdiff_t difference_type

Definition CoverageMappingReader.h:55

CoverageMappingIterator()

Definition CoverageMappingReader.h:59

~CoverageMappingIterator()

Definition CoverageMappingReader.h:67

std::input_iterator_tag iterator_category

Definition CoverageMappingReader.h:53

Expected< CoverageMappingRecord * > operator->()

Definition CoverageMappingReader.h:90

value_type & reference

Definition CoverageMappingReader.h:57

value_type * pointer

Definition CoverageMappingReader.h:56

CoverageMappingIterator(CoverageMappingReader *Reader)

Definition CoverageMappingReader.h:62

CoverageMappingIterator & operator++()

Definition CoverageMappingReader.h:72

bool operator!=(const CoverageMappingIterator &RHS) const

Definition CoverageMappingReader.h:79

CoverageMappingIterator begin()

Definition CoverageMappingReader.h:105

virtual Error readNextRecord(CoverageMappingRecord &Record)=0

virtual ~CoverageMappingReader()=default

CoverageMappingIterator end()

Definition CoverageMappingReader.h:106

RawCoverageFilenamesReader(StringRef Data, std::vector< std::string > &Filenames, StringRef CompilationDir="")

Definition CoverageMappingReader.h:240

LLVM_ABI Error read(CovMapVersion Version)

RawCoverageFilenamesReader(const RawCoverageFilenamesReader &)=delete

RawCoverageFilenamesReader & operator=(const RawCoverageFilenamesReader &)=delete

LLVM_ABI Expected< bool > isDummy()

RawCoverageMappingDummyChecker(StringRef MappingData)

Definition CoverageMappingReader.h:126

RawCoverageMappingReader(const RawCoverageMappingReader &)=delete

RawCoverageMappingReader & operator=(const RawCoverageMappingReader &)=delete

RawCoverageMappingReader(StringRef MappingData, ArrayRef< std::string > &TranslationUnitFilenames, std::vector< StringRef > &Filenames, std::vector< CounterExpression > &Expressions, std::vector< CounterMappingRegion > &MappingRegions)

Definition CoverageMappingReader.h:140

StringRef Data

Definition CoverageMappingReader.h:112

LLVM_ABI Error readSize(uint64_t &Result)

LLVM_ABI Error readIntMax(uint64_t &Result, uint64_t MaxPlus1)

LLVM_ABI Error readULEB128(uint64_t &Result)

LLVM_ABI Error readString(StringRef &Result)

RawCoverageReader(StringRef Data)

Definition CoverageMappingReader.h:114

#define llvm_unreachable(msg)

Marks that the current location is not supposed to be reachable.

@ C

The default llvm calling convention, compatible with C.

This is an optimization pass for GlobalISel generic memory operations.

FunctionAddr VTableAddr uintptr_t uintptr_t Version

Error make_error(ArgTs &&... Args)

Make a Error instance representing failure using the given error info type.

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.

StringRef CoverageMapping

Definition CoverageMappingReader.h:171

size_t FilenamesBegin

Definition CoverageMappingReader.h:172

StringRef FunctionName

Definition CoverageMappingReader.h:169

size_t FilenamesSize

Definition CoverageMappingReader.h:173

CovMapVersion Version

Definition CoverageMappingReader.h:168

ProfileMappingRecord(CovMapVersion Version, StringRef FunctionName, uint64_t FunctionHash, StringRef CoverageMapping, size_t FilenamesBegin, size_t FilenamesSize)

Definition CoverageMappingReader.h:175

uint64_t FunctionHash

Definition CoverageMappingReader.h:170

A Counter is an abstract value that describes how to compute the execution count for a region of code...

Coverage mapping information for a single function.

Definition CoverageMappingReader.h:36

StringRef FunctionName

Definition CoverageMappingReader.h:37

uint64_t FunctionHash

Definition CoverageMappingReader.h:38

ArrayRef< CounterExpression > Expressions

Definition CoverageMappingReader.h:40

ArrayRef< CounterMappingRegion > MappingRegions

Definition CoverageMappingReader.h:41

ArrayRef< StringRef > Filenames

Definition CoverageMappingReader.h:39