diff options
Diffstat (limited to 'llvm')
-rw-r--r-- | llvm/include/llvm/ProfileData/CoverageMappingReader.h | 10 | ||||
-rw-r--r-- | llvm/lib/ProfileData/CoverageMappingReader.cpp | 6 |
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(); } |