File indexing completed on 2026-05-10 08:44:23
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014 #ifndef LLVM_PROFILEDATA_COVERAGE_COVERAGEMAPPINGWRITER_H
0015 #define LLVM_PROFILEDATA_COVERAGE_COVERAGEMAPPINGWRITER_H
0016
0017 #include "llvm/ADT/ArrayRef.h"
0018 #include "llvm/ADT/StringRef.h"
0019 #include "llvm/ProfileData/Coverage/CoverageMapping.h"
0020
0021 namespace llvm {
0022
0023 class raw_ostream;
0024
0025 namespace coverage {
0026
0027
0028
0029 class CoverageFilenamesSectionWriter {
0030 ArrayRef<std::string> Filenames;
0031
0032 public:
0033 CoverageFilenamesSectionWriter(ArrayRef<std::string> Filenames);
0034
0035
0036
0037 void write(raw_ostream &OS, bool Compress = true);
0038 };
0039
0040
0041 class CoverageMappingWriter {
0042 ArrayRef<unsigned> VirtualFileMapping;
0043 ArrayRef<CounterExpression> Expressions;
0044 MutableArrayRef<CounterMappingRegion> MappingRegions;
0045
0046 public:
0047 CoverageMappingWriter(ArrayRef<unsigned> VirtualFileMapping,
0048 ArrayRef<CounterExpression> Expressions,
0049 MutableArrayRef<CounterMappingRegion> MappingRegions)
0050 : VirtualFileMapping(VirtualFileMapping), Expressions(Expressions),
0051 MappingRegions(MappingRegions) {}
0052
0053
0054 void write(raw_ostream &OS);
0055 };
0056
0057
0058 class TestingFormatWriter {
0059 uint64_t ProfileNamesAddr;
0060 StringRef ProfileNamesData;
0061 StringRef CoverageMappingData;
0062 StringRef CoverageRecordsData;
0063
0064 public:
0065 TestingFormatWriter(uint64_t ProfileNamesAddr, StringRef ProfileNamesData,
0066 StringRef CoverageMappingData,
0067 StringRef CoverageRecordsData)
0068 : ProfileNamesAddr(ProfileNamesAddr), ProfileNamesData(ProfileNamesData),
0069 CoverageMappingData(CoverageMappingData),
0070 CoverageRecordsData(CoverageRecordsData) {}
0071
0072
0073 void
0074 write(raw_ostream &OS,
0075 TestingFormatVersion Version = TestingFormatVersion::CurrentVersion);
0076 };
0077
0078 }
0079
0080 }
0081
0082 #endif