summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
Diffstat (limited to 'llvm')
-rw-r--r--llvm/include/llvm/ProfileData/CoverageMappingReader.h10
-rw-r--r--llvm/lib/ProfileData/CoverageMappingReader.cpp6
2 files changed, 10 insertions, 6 deletions
diff --git a/llvm/include/llvm/ProfileData/CoverageMappingReader.h b/llvm/include/llvm/ProfileData/CoverageMappingReader.h
index 1d8b16e2532..73b02488f2c 100644
--- a/llvm/include/llvm/ProfileData/CoverageMappingReader.h
+++ b/llvm/include/llvm/ProfileData/CoverageMappingReader.h
@@ -33,6 +33,7 @@ class ObjectFileCoverageMappingReader;
/// \brief Coverage mapping information for a single function.
struct CoverageMappingRecord {
StringRef FunctionName;
+ uint64_t FunctionHash;
ArrayRef<StringRef> Filenames;
ArrayRef<CounterExpression> Expressions;
ArrayRef<CounterMappingRegion> MappingRegions;
@@ -143,16 +144,17 @@ public:
struct ProfileMappingRecord {
CoverageMappingVersion Version;
StringRef FunctionName;
+ uint64_t FunctionHash;
StringRef CoverageMapping;
size_t FilenamesBegin;
size_t FilenamesSize;
ProfileMappingRecord(CoverageMappingVersion Version, StringRef FunctionName,
- StringRef CoverageMapping, size_t FilenamesBegin,
- size_t FilenamesSize)
+ uint64_t FunctionHash, StringRef CoverageMapping,
+ size_t FilenamesBegin, size_t FilenamesSize)
: Version(Version), FunctionName(FunctionName),
- CoverageMapping(CoverageMapping), FilenamesBegin(FilenamesBegin),
- FilenamesSize(FilenamesSize) {}
+ FunctionHash(FunctionHash), CoverageMapping(CoverageMapping),
+ FilenamesBegin(FilenamesBegin), FilenamesSize(FilenamesSize) {}
};
private:
diff --git a/llvm/lib/ProfileData/CoverageMappingReader.cpp b/llvm/lib/ProfileData/CoverageMappingReader.cpp
index 965e085f9d9..f10ae05c0f9 100644
--- a/llvm/lib/ProfileData/CoverageMappingReader.cpp
+++ b/llvm/lib/ProfileData/CoverageMappingReader.cpp
@@ -308,6 +308,7 @@ template <typename IntPtrT> struct CoverageMappingFunctionRecord {
IntPtrT FunctionNamePtr;
uint32_t FunctionNameSize;
uint32_t CoverageMappingSize;
+ uint64_t FunctionHash;
};
/// \brief The coverage mapping data for a single translation unit.
@@ -422,8 +423,8 @@ std::error_code readCoverageMappingData(
FunctionName))
return Err;
Records.push_back(ObjectFileCoverageMappingReader::ProfileMappingRecord(
- Version, FunctionName, Mapping, FilenamesBegin,
- Filenames.size() - FilenamesBegin));
+ Version, FunctionName, MappingRecord.FunctionHash, Mapping,
+ FilenamesBegin, Filenames.size() - FilenamesBegin));
}
}
@@ -485,6 +486,7 @@ ObjectFileCoverageMappingReader::readNextRecord(CoverageMappingRecord &Record) {
FunctionsFilenames, Expressions, MappingRegions);
if (auto Err = Reader.read(Record))
return Err;
+ Record.FunctionHash = R.FunctionHash;
++CurrentRecord;
return success();
}
OpenPOWER on IntegriCloud