[llvm-cov] Suppress sub-line highlights in simple cases
authorVedant Kumar <vsk@apple.com>
Wed, 18 Oct 2017 18:52:29 +0000 (18:52 +0000)
committerVedant Kumar <vsk@apple.com>
Wed, 18 Oct 2017 18:52:29 +0000 (18:52 +0000)
llvm-cov tends to highlight too many regions because its policy is to
highlight all region entry segments. This can look confusing to users:
not all region entry segments are interesting and deserve highlighting.
Emitting these highlights only when the region count differs from the
line count is a more user-friendly policy.

llvm-svn: 316109

llvm/test/tools/llvm-cov/deferred-region.cpp
llvm/test/tools/llvm-cov/showRegionMarkers.cpp
llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp
llvm/tools/llvm-cov/SourceCoverageViewText.cpp

index 012e0f8..09d9d09 100644 (file)
@@ -88,35 +88,23 @@ int main() {
   return 0;
 }
 
-// MARKER: Marker at 4:7 = 2
-// MARKER-NEXT: Highlighted line 17, 5 -> 11
+// MARKER: Highlighted line 17, 5 -> 11
 // MARKER-NEXT: Marker at 19:3 = 1
-// MARKER-NEXT: Marker at 19:19 = 2
 // MARKER-NEXT: Marker at 19:27 = 1
-// MARKER-NEXT: Marker at 23:5 = 1
-// MARKER-NEXT: Marker at 23:9 = 1
 // MARKER-NEXT: Highlighted line 24, 7 -> 12
 // MARKER-NEXT: Highlighted line 36, 5 -> 11
-// MARKER-NEXT: Marker at 39:10 = 3
-// MARKER-NEXT: Marker at 43:5 = 1
-// MARKER-NEXT: Marker at 43:12 = 1
 // MARKER-NEXT: Highlighted line 46, 1 -> ?
 // MARKER-NEXT: Highlighted line 47, 1 -> 7
 // MARKER-NEXT: Highlighted line 47, 7 -> 14
 // MARKER-NEXT: Highlighted line 47, 14 -> 21
 // MARKER-NEXT: Highlighted line 47, 21 -> 23
 // MARKER-NEXT: Highlighted line 47, 23 -> 25
-// MARKER-NEXT: Marker at 47:7 = 0
-// MARKER-NEXT: Marker at 47:14 = 0
-// MARKER-NEXT: Marker at 47:23 = 0
 // MARKER-NEXT: Highlighted line 51, 7 -> 20
 // MARKER-NEXT: Marker at 53:5 = 1
-// MARKER-NEXT: Marker at 53:12 = 6
 // MARKER-NEXT: Highlighted line 55, 9 -> 14
 // MARKER-NEXT: Highlighted line 63, 5 -> 13
 // MARKER-NEXT: Highlighted line 67, 1 -> ?
 // MARKER-NEXT: Highlighted line 68, 1 -> 8
 // MARKER-NEXT: Highlighted line 68, 8 -> ?
 // MARKER-NEXT: Highlighted line 69, 1 -> 2
-// MARKER-NEXT: Marker at 72:7 = 2
 // MARKER-NEXT: Highlighted line 77, 1 -> 2
index b9e9f5c..c6d1690 100644 (file)
@@ -8,12 +8,12 @@ int main() {                      // CHECK-NOT: Marker at [[@LINE]]:12
   } else {                        // CHECK-NOT: Marker at [[@LINE]]:10
     x = 1;
   }
-                                  // CHECK: Marker at [[@LINE+2]]:19 = 112M
+                                  // CHECK-NOT: Marker at [[@LINE+2]]:19
                                   // CHECK: Marker at [[@LINE+1]]:28 = 111M
   for (int i = 0; i < 100; ++i) { // CHECK-NOT: Marker at [[@LINE]]:33
     x = 1;
   }
-                                  // CHECK: Marker at [[@LINE+1]]:16 = 1.11M
+                                  // CHECK-NOT: Marker at [[@LINE+1]]:16
   x = x < 10 ? x + 1 : x - 1;     // CHECK: Marker at [[@LINE]]:24 = 0
   x = x > 10 ?
         x - 1:                    // CHECK-NOT: Marker at [[@LINE]]:9
index 626016f..4900ad4 100644 (file)
@@ -563,6 +563,8 @@ void SourceCoverageViewHTML::renderLine(raw_ostream &OS, LineRef L,
       const auto *CurSeg = Segments[I];
       if (!CurSeg->IsRegionEntry)
         continue;
+      if (CurSeg->Count == LCS.getExecutionCount())
+        continue;
 
       Snippets[I + 1] =
           tag("div", Snippets[I + 1] + tag("span", formatCount(CurSeg->Count),
index 83d228e..2ed16df 100644 (file)
@@ -186,6 +186,8 @@ void SourceCoverageViewText::renderRegionMarkers(raw_ostream &OS,
   for (const auto *S : Segments) {
     if (!S->IsRegionEntry)
       continue;
+    if (S->Count == Line.getExecutionCount())
+      continue;
     // Skip to the new region.
     if (S->Col > PrevColumn)
       OS.indent(S->Col - PrevColumn);