[llvm] r280764 - [llvm-cov] Clean up the summary class, delete dead code (NFC)

Vedant Kumar via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 6 15:45:58 PDT 2016


Author: vedantk
Date: Tue Sep  6 17:45:57 2016
New Revision: 280764

URL: http://llvm.org/viewvc/llvm-project?rev=280764&view=rev
Log:
[llvm-cov] Clean up the summary class, delete dead code (NFC)

Modified:
    llvm/trunk/tools/llvm-cov/CodeCoverage.cpp
    llvm/trunk/tools/llvm-cov/CoverageReport.cpp
    llvm/trunk/tools/llvm-cov/CoverageReport.h

Modified: llvm/trunk/tools/llvm-cov/CodeCoverage.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-cov/CodeCoverage.cpp?rev=280764&r1=280763&r2=280764&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-cov/CodeCoverage.cpp (original)
+++ llvm/trunk/tools/llvm-cov/CodeCoverage.cpp Tue Sep  6 17:45:57 2016
@@ -730,7 +730,7 @@ int CodeCoverageTool::report(int argc, c
   if (!Coverage)
     return 1;
 
-  CoverageReport Report(ViewOpts, std::move(Coverage));
+  CoverageReport Report(ViewOpts, *Coverage.get());
   if (SourceFiles.empty())
     Report.renderFileReports(llvm::outs());
   else

Modified: llvm/trunk/tools/llvm-cov/CoverageReport.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-cov/CoverageReport.cpp?rev=280764&r1=280763&r2=280764&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-cov/CoverageReport.cpp (original)
+++ llvm/trunk/tools/llvm-cov/CoverageReport.cpp Tue Sep  6 17:45:57 2016
@@ -15,12 +15,15 @@
 #include "RenderingSupport.h"
 #include "llvm/Support/FileSystem.h"
 #include "llvm/Support/Format.h"
+#include <numeric>
 
 using namespace llvm;
+
 namespace {
+
 /// \brief Helper struct which prints trimmed and aligned columns.
 struct Column {
-  enum TrimKind { NoTrim, WidthTrim, LeftTrim, RightTrim };
+  enum TrimKind { NoTrim, WidthTrim, RightTrim };
 
   enum AlignmentKind { LeftAlignment, RightAlignment };
 
@@ -42,87 +45,81 @@ struct Column {
     return *this;
   }
 
-  void render(raw_ostream &OS) const;
+  void render(raw_ostream &OS) const {
+    if (Str.size() <= Width) {
+      if (Alignment == RightAlignment) {
+        OS.indent(Width - Str.size());
+        OS << Str;
+        return;
+      }
+      OS << Str;
+      OS.indent(Width - Str.size());
+      return;
+    }
+
+    switch (Trim) {
+    case NoTrim:
+      OS << Str;
+      break;
+    case WidthTrim:
+      OS << Str.substr(0, Width);
+      break;
+    case RightTrim:
+      OS << Str.substr(0, Width - 3) << "...";
+      break;
+    }
+  }
 };
 
 raw_ostream &operator<<(raw_ostream &OS, const Column &Value) {
   Value.render(OS);
   return OS;
 }
-}
 
-void Column::render(raw_ostream &OS) const {
-  if (Str.size() <= Width) {
-    if (Alignment == RightAlignment) {
-      OS.indent(Width - Str.size());
-      OS << Str;
-      return;
-    }
-    OS << Str;
-    OS.indent(Width - Str.size());
-    return;
-  }
-
-  switch (Trim) {
-  case NoTrim:
-    OS << Str;
-    break;
-  case WidthTrim:
-    OS << Str.substr(0, Width);
-    break;
-  case LeftTrim:
-    OS << "..." << Str.substr(Str.size() - Width + 3);
-    break;
-  case RightTrim:
-    OS << Str.substr(0, Width - 3) << "...";
-    break;
-  }
-}
-
-static Column column(StringRef Str, unsigned Width) {
-  return Column(Str, Width);
-}
+Column column(StringRef Str, unsigned Width) { return Column(Str, Width); }
 
 template <typename T>
-static Column column(StringRef Str, unsigned Width, const T &Value) {
+Column column(StringRef Str, unsigned Width, const T &Value) {
   return Column(Str, Width).set(Value);
 }
 
 // Specify the default column widths.
-static size_t FileReportColumns[] = {25, 12, 18, 10, 12, 18, 10, 12, 18, 10};
-static size_t FunctionReportColumns[] = {25, 10, 8, 8, 10, 8, 8};
+size_t FileReportColumns[] = {25, 12, 18, 10, 12, 18, 10, 12, 18, 10};
+size_t FunctionReportColumns[] = {25, 10, 8, 8, 10, 8, 8};
 
-/// \brief  Adjust column widths to fit long file paths and function names.
-static void adjustColumnWidths(coverage::CoverageMapping *CM) {
-  for (StringRef Filename : CM->getUniqueSourceFiles()) {
+/// \brief Adjust column widths to fit long file paths and function names.
+void adjustColumnWidths(const coverage::CoverageMapping &CM) {
+  for (StringRef Filename : CM.getUniqueSourceFiles()) {
     FileReportColumns[0] = std::max(FileReportColumns[0], Filename.size());
-    for (const auto &F : CM->getCoveredFunctions(Filename)) {
+    for (const auto &F : CM.getCoveredFunctions(Filename)) {
       FunctionReportColumns[0] =
           std::max(FunctionReportColumns[0], F.Name.size());
     }
   }
 }
 
-/// \brief Prints a horizontal divider which spans across the given columns.
-template <typename T, size_t N>
-static void renderDivider(T (&Columns)[N], raw_ostream &OS) {
-  unsigned Length = 0;
-  for (unsigned I = 0; I < N; ++I)
-    Length += Columns[I];
-  for (unsigned I = 0; I < Length; ++I)
+/// \brief Prints a horizontal divider long enough to cover the given column
+/// widths.
+void renderDivider(ArrayRef<size_t> ColumnWidths, raw_ostream &OS) {
+  size_t Length = std::accumulate(ColumnWidths.begin(), ColumnWidths.end(), 0);
+  for (size_t I = 0; I < Length; ++I)
     OS << '-';
 }
 
 /// \brief Return the color which correponds to the coverage
 /// percentage of a certain metric.
 template <typename T>
-static raw_ostream::Colors determineCoveragePercentageColor(const T &Info) {
+raw_ostream::Colors determineCoveragePercentageColor(const T &Info) {
   if (Info.isFullyCovered())
     return raw_ostream::GREEN;
   return Info.getPercentCovered() >= 80.0 ? raw_ostream::YELLOW
                                           : raw_ostream::RED;
 }
 
+} // end anonymous namespace
+
+namespace llvm {
+
 void CoverageReport::render(const FileCoverageSummary &File, raw_ostream &OS) {
   OS << column(File.Name, FileReportColumns[0], Column::NoTrim)
      << format("%*u", FileReportColumns[1],
@@ -188,7 +185,7 @@ void CoverageReport::render(const Functi
 
 void CoverageReport::renderFunctionReports(ArrayRef<StringRef> Files,
                                            raw_ostream &OS) {
-  adjustColumnWidths(Coverage.get());
+  adjustColumnWidths(Coverage);
   bool isFirst = true;
   for (StringRef Filename : Files) {
     if (isFirst)
@@ -207,7 +204,7 @@ void CoverageReport::renderFunctionRepor
     renderDivider(FunctionReportColumns, OS);
     OS << "\n";
     FunctionCoverageSummary Totals("TOTAL");
-    for (const auto &F : Coverage->getCoveredFunctions(Filename)) {
+    for (const auto &F : Coverage.getCoveredFunctions(Filename)) {
       FunctionCoverageSummary Function = FunctionCoverageSummary::get(F);
       ++Totals.ExecutionCount;
       Totals.RegionCoverage += Function.RegionCoverage;
@@ -223,7 +220,7 @@ void CoverageReport::renderFunctionRepor
 }
 
 void CoverageReport::renderFileReports(raw_ostream &OS) {
-  adjustColumnWidths(Coverage.get());
+  adjustColumnWidths(Coverage);
   OS << column("Filename", FileReportColumns[0])
      << column("Regions", FileReportColumns[1], Column::RightAlignment)
      << column("Missed Regions", FileReportColumns[2], Column::RightAlignment)
@@ -240,9 +237,9 @@ void CoverageReport::renderFileReports(r
   OS << "\n";
 
   FileCoverageSummary Totals("TOTAL");
-  for (StringRef Filename : Coverage->getUniqueSourceFiles()) {
+  for (StringRef Filename : Coverage.getUniqueSourceFiles()) {
     FileCoverageSummary Summary(Filename);
-    for (const auto &F : Coverage->getCoveredFunctions(Filename)) {
+    for (const auto &F : Coverage.getCoveredFunctions(Filename)) {
       FunctionCoverageSummary Function = FunctionCoverageSummary::get(F);
       Summary.addFunction(Function);
       Totals.addFunction(Function);
@@ -253,3 +250,5 @@ void CoverageReport::renderFileReports(r
   OS << "\n";
   render(Totals, OS);
 }
+
+} // end namespace llvm

Modified: llvm/trunk/tools/llvm-cov/CoverageReport.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-cov/CoverageReport.h?rev=280764&r1=280763&r2=280764&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-cov/CoverageReport.h (original)
+++ llvm/trunk/tools/llvm-cov/CoverageReport.h Tue Sep  6 17:45:57 2016
@@ -22,20 +22,21 @@ namespace llvm {
 /// \brief Displays the code coverage report.
 class CoverageReport {
   const CoverageViewOptions &Options;
-  std::unique_ptr<coverage::CoverageMapping> Coverage;
+  const coverage::CoverageMapping &Coverage;
 
   void render(const FileCoverageSummary &File, raw_ostream &OS);
   void render(const FunctionCoverageSummary &Function, raw_ostream &OS);
 
 public:
   CoverageReport(const CoverageViewOptions &Options,
-                 std::unique_ptr<coverage::CoverageMapping> Coverage)
-      : Options(Options), Coverage(std::move(Coverage)) {}
+                 const coverage::CoverageMapping &Coverage)
+      : Options(Options), Coverage(Coverage) {}
 
   void renderFunctionReports(ArrayRef<StringRef> Files, raw_ostream &OS);
 
   void renderFileReports(raw_ostream &OS);
 };
-}
+
+} // end namespace llvm
 
 #endif // LLVM_COV_COVERAGEREPORT_H




More information about the llvm-commits mailing list