diff --git a/include/llvm/ProfileData/CoverageMapping.h b/include/llvm/ProfileData/CoverageMapping.h index 7c88977cb29..61aad3b3bc3 100644 --- a/include/llvm/ProfileData/CoverageMapping.h +++ b/include/llvm/ProfileData/CoverageMapping.h @@ -158,24 +158,17 @@ struct CounterMappingRegion { SkippedRegion }; - static const unsigned EncodingHasCodeBeforeBits = 1; - Counter Count; unsigned FileID, ExpandedFileID; unsigned LineStart, ColumnStart, LineEnd, ColumnEnd; RegionKind Kind; - /// \brief A flag that is set to true when there is already code before - /// this region on the same line. - /// This is useful to accurately compute the execution counts for a line. - bool HasCodeBefore; CounterMappingRegion(Counter Count, unsigned FileID, unsigned LineStart, unsigned ColumnStart, unsigned LineEnd, - unsigned ColumnEnd, bool HasCodeBefore = false, - RegionKind Kind = CodeRegion) + unsigned ColumnEnd, RegionKind Kind = CodeRegion) : Count(Count), FileID(FileID), ExpandedFileID(0), LineStart(LineStart), ColumnStart(ColumnStart), LineEnd(LineEnd), ColumnEnd(ColumnEnd), - Kind(Kind), HasCodeBefore(HasCodeBefore) {} + Kind(Kind) {} inline std::pair startLoc() const { return std::pair(LineStart, ColumnStart); diff --git a/lib/ProfileData/CoverageMappingReader.cpp b/lib/ProfileData/CoverageMappingReader.cpp index 71ce22aec9e..423947d132f 100644 --- a/lib/ProfileData/CoverageMappingReader.cpp +++ b/lib/ProfileData/CoverageMappingReader.cpp @@ -173,15 +173,12 @@ std::error_code RawCoverageMappingReader::readMappingRegionsSubArray( } // Read the source range. - uint64_t LineStartDelta, CodeBeforeColumnStart, NumLines, ColumnEnd; + uint64_t LineStartDelta, ColumnStart, NumLines, ColumnEnd; if (auto Err = readIntMax(LineStartDelta, std::numeric_limits::max())) return Err; - if (auto Err = readULEB128(CodeBeforeColumnStart)) + if (auto Err = readULEB128(ColumnStart)) return Err; - bool HasCodeBefore = CodeBeforeColumnStart & 1; - uint64_t ColumnStart = CodeBeforeColumnStart >> - CounterMappingRegion::EncodingHasCodeBeforeBits; if (ColumnStart > std::numeric_limits::max()) return error(instrprof_error::malformed); if (auto Err = readIntMax(NumLines, std::numeric_limits::max())) @@ -213,9 +210,9 @@ std::error_code RawCoverageMappingReader::readMappingRegionsSubArray( dbgs() << "\n"; }); - MappingRegions.push_back(CounterMappingRegion( - C, InferredFileID, LineStart, ColumnStart, LineStart + NumLines, - ColumnEnd, HasCodeBefore, Kind)); + MappingRegions.push_back( + CounterMappingRegion(C, InferredFileID, LineStart, ColumnStart, + LineStart + NumLines, ColumnEnd, Kind)); MappingRegions.back().ExpandedFileID = ExpandedFileID; } return success(); diff --git a/lib/ProfileData/CoverageMappingWriter.cpp b/lib/ProfileData/CoverageMappingWriter.cpp index 6969c2a1242..aef5511fc0e 100644 --- a/lib/ProfileData/CoverageMappingWriter.cpp +++ b/lib/ProfileData/CoverageMappingWriter.cpp @@ -172,11 +172,7 @@ void CoverageMappingWriter::write(raw_ostream &OS) { } assert(I->LineStart >= PrevLineStart); encodeULEB128(I->LineStart - PrevLineStart, OS); - uint64_t CodeBeforeColumnStart = - uint64_t(I->HasCodeBefore) | - (uint64_t(I->ColumnStart) - << CounterMappingRegion::EncodingHasCodeBeforeBits); - encodeULEB128(CodeBeforeColumnStart, OS); + encodeULEB128(I->ColumnStart, OS); assert(I->LineEnd >= I->LineStart); encodeULEB128(I->LineEnd - I->LineStart, OS); encodeULEB128(I->ColumnEnd, OS); diff --git a/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping b/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping index 20eb0d7e8df..e97320b7855 100644 Binary files a/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping and b/test/tools/llvm-cov/Inputs/highlightedRanges.covmapping differ diff --git a/test/tools/llvm-cov/Inputs/regionMarkers.covmapping b/test/tools/llvm-cov/Inputs/regionMarkers.covmapping index 3ebcb0777af..501cba2b734 100644 Binary files a/test/tools/llvm-cov/Inputs/regionMarkers.covmapping and b/test/tools/llvm-cov/Inputs/regionMarkers.covmapping differ diff --git a/test/tools/llvm-cov/Inputs/showExpansions.covmapping b/test/tools/llvm-cov/Inputs/showExpansions.covmapping index b8c7d9711af..e02a7281b00 100644 Binary files a/test/tools/llvm-cov/Inputs/showExpansions.covmapping and b/test/tools/llvm-cov/Inputs/showExpansions.covmapping differ diff --git a/test/tools/llvm-cov/showHighlightedRanges.cpp b/test/tools/llvm-cov/showHighlightedRanges.cpp index cec730829e0..1ff7929ee75 100644 --- a/test/tools/llvm-cov/showHighlightedRanges.cpp +++ b/test/tools/llvm-cov/showHighlightedRanges.cpp @@ -2,17 +2,17 @@ void func() { return; - int i = 0; // CHECK: Highlighted line [[@LINE]], 3 -> 12 -} + int i = 0; // CHECK: Highlighted line [[@LINE]], 3 -> ? +} // CHECK: Highlighted line [[@LINE]], 1 -> 2 void func2(int x) { if(x > 5) { while(x >= 9) { return; - --x; // CHECK: Highlighted line [[@LINE]], 7 -> 10 - } - int i = 0; // CHECK: Highlighted line [[@LINE]], 5 -> 14 - } + --x; // CHECK: Highlighted line [[@LINE]], 7 -> ? + } // CHECK: Highlighted line [[@LINE]], 1 -> 6 + int i = 0; // CHECK: Highlighted line [[@LINE]], 5 -> ? + } // CHECK: Highlighted line [[@LINE]], 1 -> 4 } void test() {