summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-cov
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/tools/llvm-cov')
-rw-r--r--llvm/tools/llvm-cov/CoverageSummaryInfo.cpp53
-rw-r--r--llvm/tools/llvm-cov/CoverageSummaryInfo.h89
2 files changed, 0 insertions, 142 deletions
diff --git a/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp b/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp
index d1fcef4299d..7847a2abf48 100644
--- a/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp
+++ b/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp
@@ -17,59 +17,6 @@
using namespace llvm;
using namespace coverage;
-LineCoverageStats::LineCoverageStats(
- ArrayRef<const coverage::CoverageSegment *> LineSegments,
- const coverage::CoverageSegment *WrappedSegment, unsigned Line)
- : ExecutionCount(0), HasMultipleRegions(false), Mapped(false), Line(Line),
- LineSegments(LineSegments), WrappedSegment(WrappedSegment) {
- // Find the minimum number of regions which start in this line.
- unsigned MinRegionCount = 0;
- auto isStartOfRegion = [](const coverage::CoverageSegment *S) {
- return !S->IsGapRegion && S->HasCount && S->IsRegionEntry;
- };
- for (unsigned I = 0; I < LineSegments.size() && MinRegionCount < 2; ++I)
- if (isStartOfRegion(LineSegments[I]))
- ++MinRegionCount;
-
- bool StartOfSkippedRegion = !LineSegments.empty() &&
- !LineSegments.front()->HasCount &&
- LineSegments.front()->IsRegionEntry;
-
- HasMultipleRegions = MinRegionCount > 1;
- Mapped =
- !StartOfSkippedRegion &&
- ((WrappedSegment && WrappedSegment->HasCount) || (MinRegionCount > 0));
-
- if (!Mapped)
- return;
-
- // Pick the max count from the non-gap, region entry segments. If there
- // aren't any, use the wrapped count.
- if (!MinRegionCount) {
- ExecutionCount = WrappedSegment->Count;
- return;
- }
- for (const auto *LS : LineSegments)
- if (isStartOfRegion(LS))
- ExecutionCount = std::max(ExecutionCount, LS->Count);
-}
-
-LineCoverageIterator &LineCoverageIterator::operator++() {
- if (Next == CD.end()) {
- Stats = LineCoverageStats();
- Ended = true;
- return *this;
- }
- if (Segments.size())
- WrappedSegment = Segments.back();
- Segments.clear();
- while (Next != CD.end() && Next->Line == Line)
- Segments.push_back(&*Next++);
- Stats = LineCoverageStats(Segments, WrappedSegment, Line);
- ++Line;
- return *this;
-}
-
FunctionCoverageSummary
FunctionCoverageSummary::get(const CoverageMapping &CM,
const coverage::FunctionRecord &Function) {
diff --git a/llvm/tools/llvm-cov/CoverageSummaryInfo.h b/llvm/tools/llvm-cov/CoverageSummaryInfo.h
index d3f43d19104..8eae0b7fec9 100644
--- a/llvm/tools/llvm-cov/CoverageSummaryInfo.h
+++ b/llvm/tools/llvm-cov/CoverageSummaryInfo.h
@@ -15,8 +15,6 @@
#ifndef LLVM_COV_COVERAGESUMMARYINFO_H
#define LLVM_COV_COVERAGESUMMARYINFO_H
-#include "llvm/ADT/iterator.h"
-#include "llvm/ADT/iterator_range.h"
#include "llvm/ProfileData/Coverage/CoverageMapping.h"
#include "llvm/Support/raw_ostream.h"
@@ -138,93 +136,6 @@ public:
}
};
-/// \brief Coverage statistics for a single line.
-class LineCoverageStats {
- uint64_t ExecutionCount;
- bool HasMultipleRegions;
- bool Mapped;
- unsigned Line;
- ArrayRef<const coverage::CoverageSegment *> LineSegments;
- const coverage::CoverageSegment *WrappedSegment;
-
- friend class LineCoverageIterator;
- LineCoverageStats() = default;
-
-public:
- LineCoverageStats(ArrayRef<const coverage::CoverageSegment *> LineSegments,
- const coverage::CoverageSegment *WrappedSegment,
- unsigned Line);
-
- uint64_t getExecutionCount() const { return ExecutionCount; }
-
- bool hasMultipleRegions() const { return HasMultipleRegions; }
-
- bool isMapped() const { return Mapped; }
-
- unsigned getLine() const { return Line; }
-
- ArrayRef<const coverage::CoverageSegment *> getLineSegments() const {
- return LineSegments;
- }
-
- const coverage::CoverageSegment *getWrappedSegment() const {
- return WrappedSegment;
- }
-};
-
-/// Iterates over LineCoverageStats for each line described by a CoverageData
-/// object.
-class LineCoverageIterator
- : public iterator_facade_base<
- LineCoverageIterator, std::forward_iterator_tag, LineCoverageStats> {
-public:
- LineCoverageIterator(const coverage::CoverageData &CD)
- : LineCoverageIterator(CD, CD.begin()->Line) {}
-
- LineCoverageIterator(const coverage::CoverageData &CD, unsigned Line)
- : CD(CD), WrappedSegment(nullptr), Next(CD.begin()), Ended(false),
- Line(Line), Segments(), Stats() {
- this->operator++();
- }
-
- LineCoverageIterator &operator=(const LineCoverageIterator &R) = default;
-
- bool operator==(const LineCoverageIterator &R) const {
- return &CD == &R.CD && Next == R.Next && Ended == R.Ended;
- }
-
- const LineCoverageStats &operator*() const { return Stats; }
-
- LineCoverageStats &operator*() { return Stats; }
-
- LineCoverageIterator &operator++();
-
- LineCoverageIterator getEnd() const {
- auto EndIt = *this;
- EndIt.Next = CD.end();
- EndIt.Ended = true;
- return EndIt;
- }
-
-private:
- const coverage::CoverageData &CD;
- const coverage::CoverageSegment *WrappedSegment;
- std::vector<coverage::CoverageSegment>::const_iterator Next;
- bool Ended;
- unsigned Line;
- SmallVector<const coverage::CoverageSegment *, 4> Segments;
- LineCoverageStats Stats;
-};
-
-/// Get a range of LineCoverageStats for each line described by a CoverageData
-/// object.
-static inline iterator_range<LineCoverageIterator>
-getLineCoverageStats(const coverage::CoverageData &CD) {
- auto Begin = LineCoverageIterator(CD);
- auto End = Begin.getEnd();
- return make_range(Begin, End);
-}
-
/// \brief A summary of function's code coverage.
struct FunctionCoverageSummary {
std::string Name;
OpenPOWER on IntegriCloud