summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/CoverageMappingGen.cpp
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2015-04-30 21:31:02 +0000
committerJustin Bogner <mail@justinbogner.com>2015-04-30 21:31:02 +0000
commit1587432d1f3a5b1fe89b4e12cbf8265c86da9695 (patch)
treeba4587ae3b6b669e429edaa3dbe86dad1c5e636b /clang/lib/CodeGen/CoverageMappingGen.cpp
parent737a3610061c1c58dea8e0c1dc9cfe10a1c3a4b5 (diff)
downloadbcm5719-llvm-1587432d1f3a5b1fe89b4e12cbf8265c86da9695.tar.gz
bcm5719-llvm-1587432d1f3a5b1fe89b4e12cbf8265c86da9695.zip
InstrProf: Make sure coverage propagates out of foreach loops correctly
llvm-svn: 236264
Diffstat (limited to 'clang/lib/CodeGen/CoverageMappingGen.cpp')
-rw-r--r--clang/lib/CodeGen/CoverageMappingGen.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/clang/lib/CodeGen/CoverageMappingGen.cpp b/clang/lib/CodeGen/CoverageMappingGen.cpp
index 73afeda3572..340a659584b 100644
--- a/clang/lib/CodeGen/CoverageMappingGen.cpp
+++ b/clang/lib/CodeGen/CoverageMappingGen.cpp
@@ -714,8 +714,10 @@ struct CounterCoverageMappingBuilder
Counter BackedgeCount = propagateCounts(BodyCount, S->getBody());
BreakContinue BC = BreakContinueStack.pop_back_val();
- Counter OutCount = addCounters(ParentCount, BC.BreakCount, BC.ContinueCount,
- subtractCounters(BodyCount, BackedgeCount));
+ Counter LoopCount =
+ addCounters(ParentCount, BackedgeCount, BC.ContinueCount);
+ Counter OutCount =
+ addCounters(BC.BreakCount, subtractCounters(LoopCount, BodyCount));
if (OutCount != ParentCount)
pushRegion(OutCount);
}
@@ -732,8 +734,10 @@ struct CounterCoverageMappingBuilder
Counter BackedgeCount = propagateCounts(BodyCount, S->getBody());
BreakContinue BC = BreakContinueStack.pop_back_val();
- Counter OutCount = addCounters(ParentCount, BC.BreakCount, BC.ContinueCount,
- subtractCounters(BodyCount, BackedgeCount));
+ Counter LoopCount =
+ addCounters(ParentCount, BackedgeCount, BC.ContinueCount);
+ Counter OutCount =
+ addCounters(BC.BreakCount, subtractCounters(LoopCount, BodyCount));
if (OutCount != ParentCount)
pushRegion(OutCount);
}
OpenPOWER on IntegriCloud