Author: NAKAMURA Takumi
Date: 2026-01-28T14:02:02+09:00
New Revision: 15a81fd494fb2746f652252f187027a3bc7f4836

URL: 
https://github.com/llvm/llvm-project/commit/15a81fd494fb2746f652252f187027a3bc7f4836
DIFF: 
https://github.com/llvm/llvm-project/commit/15a81fd494fb2746f652252f187027a3bc7f4836.diff

LOG: [Coverage][Single] Enable Branch coverage for CondOp (#113110)

Depends on: #112730 #113114


https://discourse.llvm.org/t/rfc-integrating-singlebytecoverage-with-branch-coverage/82492

Added: 
    

Modified: 
    clang/lib/CodeGen/CGExpr.cpp
    clang/lib/CodeGen/CGExprAgg.cpp
    clang/lib/CodeGen/CGExprComplex.cpp
    clang/lib/CodeGen/CGExprScalar.cpp
    clang/lib/CodeGen/CodeGenFunction.cpp
    clang/lib/CodeGen/CodeGenPGO.cpp
    clang/lib/CodeGen/CoverageMappingGen.cpp
    clang/test/CoverageMapping/single-byte-counters.cpp
    llvm/test/tools/llvm-cov/Inputs/branch-c-general-single.proftext
    llvm/test/tools/llvm-cov/Inputs/branch-c-general-single.yaml
    llvm/test/tools/llvm-cov/Inputs/branch-c-general.c
    llvm/test/tools/llvm-cov/Inputs/branch-macros-single.proftext
    llvm/test/tools/llvm-cov/Inputs/branch-macros-single.yaml
    llvm/test/tools/llvm-cov/Inputs/showLineExecutionCounts-single.proftext
    llvm/test/tools/llvm-cov/Inputs/showLineExecutionCounts-single.yaml

Removed: 
    


################################################################################
diff  --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
index 76a3939cd28eb..339314ecff9cd 100644
--- a/clang/lib/CodeGen/CGExpr.cpp
+++ b/clang/lib/CodeGen/CGExpr.cpp
@@ -5824,8 +5824,9 @@ std::optional<LValue> 
HandleConditionalOperatorLValueSimpleCase(
 
     if (!CGF.ContainsLabel(Dead)) {
       // If the true case is live, we need to track its region.
-      if (CondExprBool)
-        CGF.incrementProfileCounter(E);
+      CGF.incrementProfileCounter(CondExprBool ? CGF.UseExecPath
+                                               : CGF.UseSkipPath,
+                                  E, /*UseBoth=*/true);
       CGF.markStmtMaybeUsed(Dead);
       // If a throw expression we emit it and return an undefined lvalue
       // because it can't be used.
@@ -5864,7 +5865,7 @@ ConditionalInfo EmitConditionalBlocks(CodeGenFunction 
&CGF,
 
   // Any temporaries created here are conditional.
   CGF.EmitBlock(Info.lhsBlock);
-  CGF.incrementProfileCounter(E);
+  CGF.incrementProfileCounter(CGF.UseExecPath, E);
   eval.begin(CGF);
   Info.LHS = BranchGenFunc(CGF, E->getTrueExpr());
   eval.end(CGF);
@@ -5875,6 +5876,7 @@ ConditionalInfo EmitConditionalBlocks(CodeGenFunction 
&CGF,
 
   // Any temporaries created here are conditional.
   CGF.EmitBlock(Info.rhsBlock);
+  CGF.incrementProfileCounter(CGF.UseSkipPath, E);
   eval.begin(CGF);
   Info.RHS = BranchGenFunc(CGF, E->getFalseExpr());
   eval.end(CGF);

diff  --git a/clang/lib/CodeGen/CGExprAgg.cpp b/clang/lib/CodeGen/CGExprAgg.cpp
index 28136313a0ca4..a8fa7eab57367 100644
--- a/clang/lib/CodeGen/CGExprAgg.cpp
+++ b/clang/lib/CodeGen/CGExprAgg.cpp
@@ -38,10 +38,6 @@ using namespace CodeGen;
 //                        Aggregate Expression Emitter
 
//===----------------------------------------------------------------------===//
 
-namespace llvm {
-extern cl::opt<bool> EnableSingleByteCoverage;
-} // namespace llvm
-
 namespace {
 class AggExprEmitter : public StmtVisitor<AggExprEmitter> {
   CodeGenFunction &CGF;
@@ -1374,10 +1370,7 @@ void AggExprEmitter::VisitAbstractConditionalOperator(
 
   eval.begin(CGF);
   CGF.EmitBlock(LHSBlock);
-  if (llvm::EnableSingleByteCoverage)
-    CGF.incrementProfileCounter(E->getTrueExpr());
-  else
-    CGF.incrementProfileCounter(E);
+  CGF.incrementProfileCounter(CGF.UseExecPath, E);
   Visit(E->getTrueExpr());
   eval.end(CGF);
 
@@ -1392,8 +1385,7 @@ void AggExprEmitter::VisitAbstractConditionalOperator(
 
   eval.begin(CGF);
   CGF.EmitBlock(RHSBlock);
-  if (llvm::EnableSingleByteCoverage)
-    CGF.incrementProfileCounter(E->getFalseExpr());
+  CGF.incrementProfileCounter(CGF.UseSkipPath, E);
   Visit(E->getFalseExpr());
   eval.end(CGF);
 
@@ -1402,8 +1394,6 @@ void AggExprEmitter::VisitAbstractConditionalOperator(
                     E->getType());
 
   CGF.EmitBlock(ContBlock);
-  if (llvm::EnableSingleByteCoverage)
-    CGF.incrementProfileCounter(E);
 }
 
 void AggExprEmitter::VisitChooseExpr(const ChooseExpr *CE) {

diff  --git a/clang/lib/CodeGen/CGExprComplex.cpp 
b/clang/lib/CodeGen/CGExprComplex.cpp
index e5815ef1130dc..54f18064c8cbc 100644
--- a/clang/lib/CodeGen/CGExprComplex.cpp
+++ b/clang/lib/CodeGen/CGExprComplex.cpp
@@ -27,10 +27,6 @@ using namespace CodeGen;
 //                        Complex Expression Emitter
 
//===----------------------------------------------------------------------===//
 
-namespace llvm {
-extern cl::opt<bool> EnableSingleByteCoverage;
-} // namespace llvm
-
 typedef CodeGenFunction::ComplexPairTy ComplexPairTy;
 
 /// Return the complex type that we are meant to emit.
@@ -1403,11 +1399,7 @@ VisitAbstractConditionalOperator(const 
AbstractConditionalOperator *E) {
 
   eval.begin(CGF);
   CGF.EmitBlock(LHSBlock);
-  if (llvm::EnableSingleByteCoverage)
-    CGF.incrementProfileCounter(E->getTrueExpr());
-  else
-    CGF.incrementProfileCounter(E);
-
+  CGF.incrementProfileCounter(CGF.UseExecPath, E);
   ComplexPairTy LHS = Visit(E->getTrueExpr());
   LHSBlock = Builder.GetInsertBlock();
   CGF.EmitBranch(ContBlock);
@@ -1415,13 +1407,10 @@ VisitAbstractConditionalOperator(const 
AbstractConditionalOperator *E) {
 
   eval.begin(CGF);
   CGF.EmitBlock(RHSBlock);
-  if (llvm::EnableSingleByteCoverage)
-    CGF.incrementProfileCounter(E->getFalseExpr());
+  CGF.incrementProfileCounter(CGF.UseSkipPath, E);
   ComplexPairTy RHS = Visit(E->getFalseExpr());
   RHSBlock = Builder.GetInsertBlock();
   CGF.EmitBlock(ContBlock);
-  if (llvm::EnableSingleByteCoverage)
-    CGF.incrementProfileCounter(E);
   eval.end(CGF);
 
   // Create a PHI node for the real part.

diff  --git a/clang/lib/CodeGen/CGExprScalar.cpp 
b/clang/lib/CodeGen/CGExprScalar.cpp
index 11af497390671..15585d6d038b9 100644
--- a/clang/lib/CodeGen/CGExprScalar.cpp
+++ b/clang/lib/CodeGen/CGExprScalar.cpp
@@ -5663,13 +5663,9 @@ VisitAbstractConditionalOperator(const 
AbstractConditionalOperator *E) {
 
     // If the dead side doesn't have labels we need, just emit the Live part.
     if (!CGF.ContainsLabel(dead)) {
-      if (CondExprBool) {
-        if (llvm::EnableSingleByteCoverage) {
-          CGF.incrementProfileCounter(lhsExpr);
-          CGF.incrementProfileCounter(rhsExpr);
-        }
-        CGF.incrementProfileCounter(E);
-      }
+      CGF.incrementProfileCounter(CondExprBool ? CGF.UseExecPath
+                                               : CGF.UseSkipPath,
+                                  E, /*UseBoth=*/true);
       Value *Result = Visit(live);
       CGF.markStmtMaybeUsed(dead);
 
@@ -5751,17 +5747,13 @@ VisitAbstractConditionalOperator(const 
AbstractConditionalOperator *E) {
   // If this is a really simple expression (like x ? 4 : 5), emit this as a
   // select instead of as control flow.  We can only do this if it is cheap and
   // safe to evaluate the LHS and RHS unconditionally.
-  if (isCheapEnoughToEvaluateUnconditionally(lhsExpr, CGF) &&
+  if (!llvm::EnableSingleByteCoverage &&
+      isCheapEnoughToEvaluateUnconditionally(lhsExpr, CGF) &&
       isCheapEnoughToEvaluateUnconditionally(rhsExpr, CGF)) {
     llvm::Value *CondV = CGF.EvaluateExprAsBool(condExpr);
     llvm::Value *StepV = Builder.CreateZExtOrBitCast(CondV, CGF.Int64Ty);
 
-    if (llvm::EnableSingleByteCoverage) {
-      CGF.incrementProfileCounter(lhsExpr);
-      CGF.incrementProfileCounter(rhsExpr);
-      CGF.incrementProfileCounter(E);
-    } else
-      CGF.incrementProfileCounter(E, StepV);
+    CGF.incrementProfileCounter(E, StepV);
 
     llvm::Value *LHS = Visit(lhsExpr);
     llvm::Value *RHS = Visit(rhsExpr);
@@ -5793,11 +5785,7 @@ VisitAbstractConditionalOperator(const 
AbstractConditionalOperator *E) {
   if (auto E = CGF.stripCond(condExpr); CGF.isMCDCDecisionExpr(E))
     CGF.maybeUpdateMCDCTestVectorBitmap(E);
 
-  if (llvm::EnableSingleByteCoverage)
-    CGF.incrementProfileCounter(lhsExpr);
-  else
-    CGF.incrementProfileCounter(E);
-
+  CGF.incrementProfileCounter(CGF.UseExecPath, E);
   eval.begin(CGF);
   Value *LHS = Visit(lhsExpr);
   eval.end(CGF);
@@ -5813,9 +5801,7 @@ VisitAbstractConditionalOperator(const 
AbstractConditionalOperator *E) {
   if (auto E = CGF.stripCond(condExpr); CGF.isMCDCDecisionExpr(E))
     CGF.maybeUpdateMCDCTestVectorBitmap(E);
 
-  if (llvm::EnableSingleByteCoverage)
-    CGF.incrementProfileCounter(rhsExpr);
-
+  CGF.incrementProfileCounter(CGF.UseSkipPath, E);
   eval.begin(CGF);
   Value *RHS = Visit(rhsExpr);
   eval.end(CGF);
@@ -5834,11 +5820,6 @@ VisitAbstractConditionalOperator(const 
AbstractConditionalOperator *E) {
   PN->addIncoming(LHS, LHSBlock);
   PN->addIncoming(RHS, RHSBlock);
 
-  // When single byte coverage mode is enabled, add a counter to continuation
-  // block.
-  if (llvm::EnableSingleByteCoverage)
-    CGF.incrementProfileCounter(E);
-
   return PN;
 }
 

diff  --git a/clang/lib/CodeGen/CodeGenFunction.cpp 
b/clang/lib/CodeGen/CodeGenFunction.cpp
index 1ddcfbbe6461b..fbae2433ec278 100644
--- a/clang/lib/CodeGen/CodeGenFunction.cpp
+++ b/clang/lib/CodeGen/CodeGenFunction.cpp
@@ -2048,7 +2048,7 @@ void CodeGenFunction::EmitBranchOnBoolExpr(
 
     cond.begin(*this);
     EmitBlock(LHSBlock);
-    incrementProfileCounter(CondOp);
+    incrementProfileCounter(UseExecPath, CondOp);
     {
       ApplyDebugLocation DL(*this, Cond);
       EmitBranchOnBoolExpr(CondOp->getLHS(), TrueBlock, FalseBlock,
@@ -2058,6 +2058,7 @@ void CodeGenFunction::EmitBranchOnBoolExpr(
 
     cond.begin(*this);
     EmitBlock(RHSBlock);
+    incrementProfileCounter(UseSkipPath, CondOp);
     EmitBranchOnBoolExpr(CondOp->getRHS(), TrueBlock, FalseBlock,
                          TrueCount - LHSScaledTrueCount, LH, CondOp);
     cond.end(*this);

diff  --git a/clang/lib/CodeGen/CodeGenPGO.cpp 
b/clang/lib/CodeGen/CodeGenPGO.cpp
index d4d1abd50af42..30004fd93e93a 100644
--- a/clang/lib/CodeGen/CodeGenPGO.cpp
+++ b/clang/lib/CodeGen/CodeGenPGO.cpp
@@ -340,14 +340,6 @@ struct MapRegionCounters : public 
RecursiveASTVisitor<MapRegionCounters> {
     return Base::VisitBinaryOperator(S);
   }
 
-  bool VisitConditionalOperator(ConditionalOperator *S) {
-    if (llvm::EnableSingleByteCoverage && S->getTrueExpr())
-      CounterMap[S->getTrueExpr()] = NextCounter++;
-    if (llvm::EnableSingleByteCoverage && S->getFalseExpr())
-      CounterMap[S->getFalseExpr()] = NextCounter++;
-    return Base::VisitConditionalOperator(S);
-  }
-
   /// Include \p S in the function hash.
   bool VisitStmt(Stmt *S) {
     auto Type = updateCounterMappings(S);
@@ -1233,10 +1225,11 @@ void CodeGenPGO::emitCounterSetOrIncrement(CGBuilderTy 
&Builder, const Stmt *S,
       NormalizedFuncNameVarPtr, Builder.getInt64(FunctionHash),
       Builder.getInt32(NumRegionCounters), Builder.getInt32(Counter), StepV};
 
-  if (llvm::EnableSingleByteCoverage)
+  if (llvm::EnableSingleByteCoverage) {
+    assert(!StepV && "StepV is not supported in single byte counter mode");
     Builder.CreateCall(CGM.getIntrinsic(llvm::Intrinsic::instrprof_cover),
                        ArrayRef(Args, 4));
-  else if (!StepV)
+  } else if (!StepV)
     Builder.CreateCall(CGM.getIntrinsic(llvm::Intrinsic::instrprof_increment),
                        ArrayRef(Args, 4));
   else

diff  --git a/clang/lib/CodeGen/CoverageMappingGen.cpp 
b/clang/lib/CodeGen/CoverageMappingGen.cpp
index c5c365883312d..e4efa774b2da2 100644
--- a/clang/lib/CodeGen/CoverageMappingGen.cpp
+++ b/clang/lib/CodeGen/CoverageMappingGen.cpp
@@ -996,11 +996,8 @@ struct CounterCoverageMappingBuilder
 
     // The old behavior of SingleByte is unaware of Branches.
     // Will be pruned after the migration of SingleByte.
-    if (llvm::EnableSingleByteCoverage) {
-      assert(SkipCntForOld &&
-             "SingleByte must provide SkipCntForOld as a fake Skipped count.");
+    if (llvm::EnableSingleByteCoverage && SkipCntForOld)
       return {ExecCnt, *SkipCntForOld};
-    }
 
     BranchCounterPair Counters = {ExecCnt,
                                   Builder.subtract(ParentCnt, ExecCnt)};
@@ -2205,11 +2202,7 @@ struct CounterCoverageMappingBuilder
     extendRegion(E);
 
     Counter ParentCount = getRegion().getCounter();
-    auto [TrueCount, FalseCount] =
-        (llvm::EnableSingleByteCoverage
-             ? BranchCounterPair{getRegionCounter(E->getTrueExpr()),
-                                 getRegionCounter(E->getFalseExpr())}
-             : getBranchCounterPair(E, ParentCount));
+    auto [TrueCount, FalseCount] = getBranchCounterPair(E, ParentCount);
     Counter OutCount;
 
     if (const auto *BCO = dyn_cast<BinaryConditionalOperator>(E)) {
@@ -2228,11 +2221,8 @@ struct CounterCoverageMappingBuilder
     }
 
     extendRegion(E->getFalseExpr());
-    Counter FalseOutCount = propagateCounts(FalseCount, E->getFalseExpr());
-    if (llvm::EnableSingleByteCoverage)
-      OutCount = getRegionCounter(E);
-    else
-      OutCount = addCounters(OutCount, FalseOutCount);
+    OutCount =
+        addCounters(OutCount, propagateCounts(FalseCount, E->getFalseExpr()));
 
     if (!IsCounterEqual(OutCount, ParentCount)) {
       pushRegion(OutCount);
@@ -2240,8 +2230,7 @@ struct CounterCoverageMappingBuilder
     }
 
     // Create Branch Region around condition.
-    if (!llvm::EnableSingleByteCoverage)
-      createBranchRegion(E->getCond(), TrueCount, FalseCount);
+    createBranchRegion(E->getCond(), TrueCount, FalseCount);
   }
 
   inline unsigned findMCDCBranchesInSourceRegion(

diff  --git a/clang/test/CoverageMapping/single-byte-counters.cpp 
b/clang/test/CoverageMapping/single-byte-counters.cpp
index f09e13038d900..056d5134b0b87 100644
--- a/clang/test/CoverageMapping/single-byte-counters.cpp
+++ b/clang/test/CoverageMapping/single-byte-counters.cpp
@@ -158,9 +158,9 @@ int testDo() {          // CHECK-NEXT: File 0, [[@LINE]]:14 
-> [[@LINE+9]]:2 = [
 // CHECK-NEXT: testConditional
 int testConditional(int x) {    // CHECK-NEXT: File 0, [[@LINE]]:28 -> 
[[@LINE+7]]:2 = [[C90:#0]]
  int result = (x > 0) ? 1 : -1; // CHECK-NEXT: File 0, [[@LINE]]:15 -> 
[[@LINE]]:22 = [[C90]]
-
-                                // CHECK-NEXT: Gap,File 0, [[@LINE-2]]:24 -> 
[[@LINE-2]]:25 = [[C9T:#2]]
+                                // CHECK-NEXT: Branch,File 0, [[@LINE-1]]:15 
-> [[@LINE-1]]:22 = [[C9T:#1]], [[C9F:#2]]
+                                // CHECK-NEXT: Gap,File 0, [[@LINE-2]]:24 -> 
[[@LINE-2]]:25 = [[C9T]]
                                 // CHECK-NEXT: File 0, [[@LINE-3]]:25 -> 
[[@LINE-3]]:26 = [[C9T]]
-                                // CHECK-NEXT: File 0, [[@LINE-4]]:29 -> 
[[@LINE-4]]:31 = [[C9F:#3]]
- return result;                 // CHECK-NEXT: File 0, [[@LINE]]:2 -> 
[[@LINE]]:15 = [[C9E:#1]]
+                                // CHECK-NEXT: File 0, [[@LINE-4]]:29 -> 
[[@LINE-4]]:31 = [[C9F]]
+ return result;                 // #0
 }

diff  --git a/llvm/test/tools/llvm-cov/Inputs/branch-c-general-single.proftext 
b/llvm/test/tools/llvm-cov/Inputs/branch-c-general-single.proftext
index ea8c6f9bc634e..d7e78369c4504 100644
--- a/llvm/test/tools/llvm-cov/Inputs/branch-c-general-single.proftext
+++ b/llvm/test/tools/llvm-cov/Inputs/branch-c-general-single.proftext
@@ -107,10 +107,10 @@ conditional_operator
 5
 # Counter Values:
 1
-1
 0
 1
 1
+0
 
 conditionals
 # Func Hash:

diff  --git a/llvm/test/tools/llvm-cov/Inputs/branch-c-general-single.yaml 
b/llvm/test/tools/llvm-cov/Inputs/branch-c-general-single.yaml
index 9d23dcb67ad2a..60de270939725 100644
--- a/llvm/test/tools/llvm-cov/Inputs/branch-c-general-single.yaml
+++ b/llvm/test/tools/llvm-cov/Inputs/branch-c-general-single.yaml
@@ -51,7 +51,7 @@ Sections:
     Type:            SHT_PROGBITS
     Flags:           [ SHF_GNU_RETAIN ]
     AddressAlign:    0x8
-    Content:         
20E5C369BDF15C7940000000D0D60000000000004C551E9517F40F4F0101000B01D1011D0702100201000101010B001109001300948080800809001400150D001800191001010001050103020205000B000C01001000111001010001
+    Content:         
20E5C369BDF15C7949000000D0D60000000000004C551E9517F40F4F0101000C01D1011D0702100201000101010B001120050D000B001105001300948080800805001400150D00180019100101000101010B000C200911000B000C11001000111001010001
   - Name:            '__llvm_covfun (9)'
     Type:            SHT_PROGBITS
     Flags:           [ SHF_GNU_RETAIN ]
@@ -154,7 +154,7 @@ Symbols:
     Type:            STT_OBJECT
     Section:         '__llvm_covfun (8)'
     Binding:         STB_WEAK
-    Size:            0x5C
+    Size:            0x65
     Other:           [ STV_HIDDEN ]
   - Name:            __covrec_42EB9670C4E7E87Du
     Type:            STT_OBJECT

diff  --git a/llvm/test/tools/llvm-cov/Inputs/branch-c-general.c 
b/llvm/test/tools/llvm-cov/Inputs/branch-c-general.c
index 9660e857092bc..5c5a112f00421 100644
--- a/llvm/test/tools/llvm-cov/Inputs/branch-c-general.c
+++ b/llvm/test/tools/llvm-cov/Inputs/branch-c-general.c
@@ -209,9 +209,9 @@ void boolop_loops() {           // CHECK: 
@LINE|{{.*}}boolop_loops()
 void conditional_operator() {   // CHECK: @LINE|{{.*}}conditional_operator()
   int i = 100;
 
-  int j = i < 50 ? i : 1;       // BRCOV: Branch ([[@LINE]]:11): [True: 0, 
False: 1]
+  int j = i < 50 ? i : 1;       // CHECK: Branch ([[@LINE]]:11): [True: 0, 
False: 1]
 
-  int k = i ?: 0;               // BRCOV: Branch ([[@LINE]]:11): [True: 1, 
False: 0]
+  int k = i ?: 0;               // CHECK: Branch ([[@LINE]]:11): [True: 1, 
False: 0]
 
 }
 

diff  --git a/llvm/test/tools/llvm-cov/Inputs/branch-macros-single.proftext 
b/llvm/test/tools/llvm-cov/Inputs/branch-macros-single.proftext
index afb4b1038d3f8..29dc4ef3bf5c2 100644
--- a/llvm/test/tools/llvm-cov/Inputs/branch-macros-single.proftext
+++ b/llvm/test/tools/llvm-cov/Inputs/branch-macros-single.proftext
@@ -30,18 +30,17 @@ _Z5func2ii
 # Func Hash:
 14151920320560143107
 # Num Counters:
-10
+9
 # Counter Values:
 3
 3
 2
 1
 0
-3
 0
-3
 1
 0
+3
 
 main
 # Func Hash:

diff  --git a/llvm/test/tools/llvm-cov/Inputs/branch-macros-single.yaml 
b/llvm/test/tools/llvm-cov/Inputs/branch-macros-single.yaml
index 5c5f62b11863b..7545e311af7ab 100644
--- a/llvm/test/tools/llvm-cov/Inputs/branch-macros-single.yaml
+++ b/llvm/test/tools/llvm-cov/Inputs/branch-macros-single.yaml
@@ -16,7 +16,7 @@ Sections:
     Type:            SHT_PROGBITS
     Flags:           [ SHF_GNU_RETAIN ]
     AddressAlign:    0x8
-    Content:         
B01D983FC67363959E000000039B9E2C8DB865C493E696313ECE8F5D0D01010101010101010101010101000401241A07020C010E0014140018001D1001010365011C0B1000160405080F002624001000152C0018001D3400200025013C0A1000160305070F001F44001000154C0019001E0119060F0017011D050F00170154091000150205050F001705000F00170121060F00170401070F001F01000F001F5C00100015640019001E0201050F001701000F0017010D060F0017
+    Content:         
B01D983FC67363959E000000039B9E2C8DB865C493E696313ECE8F5D0D01010101010101010101010101000401241A07020C010E0014140018001D1001010365011C0B1000160405080F002624001000152C0018001D3400200025013C0A1000160305070F001F44001000154C0019001E0115060F00170121050F00170154091000150205050F001705000F00170119060F00170401070F001F01000F001F5C00100015640019001E0201050F001701000F0017010D060F0017
   - Name:            '__llvm_covfun (2)'
     Type:            SHT_PROGBITS
     Flags:           [ SHF_GNU_RETAIN ]

diff  --git 
a/llvm/test/tools/llvm-cov/Inputs/showLineExecutionCounts-single.proftext 
b/llvm/test/tools/llvm-cov/Inputs/showLineExecutionCounts-single.proftext
index 1b7b949de4962..d8af6ef7fc615 100644
--- a/llvm/test/tools/llvm-cov/Inputs/showLineExecutionCounts-single.proftext
+++ b/llvm/test/tools/llvm-cov/Inputs/showLineExecutionCounts-single.proftext
@@ -4,7 +4,7 @@ main
 # Func Hash:
 15239891155360101223
 # Num Counters:
-14
+12
 # Counter Values:
 161
 0
@@ -15,9 +15,7 @@ main
 161
 161
 161
-161
 0
-161
 0
 161
 

diff  --git 
a/llvm/test/tools/llvm-cov/Inputs/showLineExecutionCounts-single.yaml 
b/llvm/test/tools/llvm-cov/Inputs/showLineExecutionCounts-single.yaml
index 84b184023f082..a836189245273 100644
--- a/llvm/test/tools/llvm-cov/Inputs/showLineExecutionCounts-single.yaml
+++ b/llvm/test/tools/llvm-cov/Inputs/showLineExecutionCounts-single.yaml
@@ -11,7 +11,7 @@ Sections:
     Type:            SHT_PROGBITS
     Flags:           [ SHF_GNU_RETAIN ]
     AddressAlign:    0x8
-    Content:         
FAD58DE7366495DB9A0000006733DBEA42F87ED3C60E0B951FF3509D0101001A01060C130210020100010101070008050009008A8080800805000A0204090204008A8080800809000A020410030100010D01030A02110013001A15001C001F19002000A180808008190021020410030100011D010306021D0007000D25000F0090808080082500100015290018001D2101030502210007000D31000F018980808008310109000E350109000E10010100012D0103000B
+    Content:         
FAD58DE7366495DB9E0000006733DBEA42F87ED3C60E0B951FF3509D0101001A01060C130210020100010101070008050009008A8080800805000A0204090204008A8080800809000A020410030100010D01030A02110013001A15001C001F19002000A180808008190021020410030100011D0103050B1D0007000D2021290007000D21000F0090808080082100100015290018001D1D0107000D20252D0007000D25000F018980808008250109000E2D0109000E1001010001
   - Name:            __llvm_covmap
     Type:            SHT_PROGBITS
     Flags:           [ SHF_GNU_RETAIN ]
@@ -40,6 +40,6 @@ Symbols:
     Type:            STT_OBJECT
     Section:         __llvm_covfun
     Binding:         STB_WEAK
-    Size:            0xB6
+    Size:            0xBA
     Other:           [ STV_HIDDEN ]
 ...


        
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to