Don't declare all text sections at the start of the .s
[oota-llvm.git] / tools / llvm-cov / CoverageSummaryInfo.cpp
index 8ed805ed0686f82bc4743ed487a6910d393994b7..de8975097e4929a3b47dcaaa240a4e831b9210fe 100644 (file)
@@ -18,14 +18,14 @@ using namespace llvm;
 using namespace coverage;
 
 FunctionCoverageSummary
-FunctionCoverageSummary::get(const FunctionCoverageMapping &Function) {
+FunctionCoverageSummary::get(const coverage::FunctionRecord &Function) {
   // Compute the region coverage
   size_t NumCodeRegions = 0, CoveredRegions = 0;
-  for (auto &Region : Function.MappingRegions) {
-    if (Region.Kind != CounterMappingRegion::CodeRegion)
+  for (auto &CR : Function.CountedRegions) {
+    if (CR.Kind != CounterMappingRegion::CodeRegion)
       continue;
     ++NumCodeRegions;
-    if (Region.ExecutionCount != 0)
+    if (CR.ExecutionCount != 0)
       ++CoveredRegions;
   }
 
@@ -37,27 +37,27 @@ FunctionCoverageSummary::get(const FunctionCoverageMapping &Function) {
     // in that particular file
     unsigned LineStart = std::numeric_limits<unsigned>::max();
     unsigned LineEnd = 0;
-    for (auto &Region : Function.MappingRegions) {
-      if (Region.FileID != FileID)
+    for (auto &CR : Function.CountedRegions) {
+      if (CR.FileID != FileID)
         continue;
-      LineStart = std::min(LineStart, Region.LineStart);
-      LineEnd = std::max(LineEnd, Region.LineEnd);
+      LineStart = std::min(LineStart, CR.LineStart);
+      LineEnd = std::max(LineEnd, CR.LineEnd);
     }
     unsigned LineCount = LineEnd - LineStart + 1;
 
     // Get counters
     llvm::SmallVector<uint64_t, 16> ExecutionCounts;
     ExecutionCounts.resize(LineCount, 0);
-    for (auto &Region : Function.MappingRegions) {
-      if (Region.FileID != FileID)
+    for (auto &CR : Function.CountedRegions) {
+      if (CR.FileID != FileID)
         continue;
       // Ignore the lines that were skipped by the preprocessor.
-      auto ExecutionCount = Region.ExecutionCount;
-      if (Region.Kind == MappingRegion::SkippedRegion) {
-        LineCount -= Region.LineEnd - Region.LineStart + 1;
+      auto ExecutionCount = CR.ExecutionCount;
+      if (CR.Kind == CounterMappingRegion::SkippedRegion) {
+        LineCount -= CR.LineEnd - CR.LineStart + 1;
         ExecutionCount = 1;
       }
-      for (unsigned I = Region.LineStart; I <= Region.LineEnd; ++I)
+      for (unsigned I = CR.LineStart; I <= CR.LineEnd; ++I)
         ExecutionCounts[I - LineStart] = ExecutionCount;
     }
     CoveredLines += LineCount - std::count(ExecutionCounts.begin(),
@@ -65,31 +65,7 @@ FunctionCoverageSummary::get(const FunctionCoverageMapping &Function) {
     NumLines += LineCount;
   }
   return FunctionCoverageSummary(
-      Function.Name, RegionCoverageInfo(CoveredRegions, NumCodeRegions),
+      Function.Name, Function.ExecutionCount,
+      RegionCoverageInfo(CoveredRegions, NumCodeRegions),
       LineCoverageInfo(CoveredLines, 0, NumLines));
 }
-
-FileCoverageSummary
-FileCoverageSummary::get(StringRef Name,
-                         ArrayRef<FunctionCoverageSummary> FunctionSummaries) {
-  size_t NumRegions = 0, CoveredRegions = 0;
-  size_t NumLines = 0, NonCodeLines = 0, CoveredLines = 0;
-  size_t NumFunctionsCovered = 0;
-  for (const auto &Func : FunctionSummaries) {
-    CoveredRegions += Func.RegionCoverage.Covered;
-    NumRegions += Func.RegionCoverage.NumRegions;
-
-    CoveredLines += Func.LineCoverage.Covered;
-    NonCodeLines += Func.LineCoverage.NonCodeLines;
-    NumLines += Func.LineCoverage.NumLines;
-
-    if (Func.RegionCoverage.isFullyCovered())
-      ++NumFunctionsCovered;
-  }
-
-  return FileCoverageSummary(
-      Name, RegionCoverageInfo(CoveredRegions, NumRegions),
-      LineCoverageInfo(CoveredLines, NonCodeLines, NumLines),
-      FunctionCoverageInfo(NumFunctionsCovered, FunctionSummaries.size()),
-      FunctionSummaries);
-}