[PATCH] D34801: [coverage] Make smaller regions for the first case of a switch.
Vedant Kumar via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 1 17:53:06 PDT 2017
vsk added a comment.
In https://reviews.llvm.org/D34801#828382, @efriedma wrote:
> I'm going to look over the overall algorithm one more time to make sure this direction makes sense. The current code for ending regions on break/continue/return/noreturn doesn't really work well,
Maybe it's worth taking a step back and finding a way to fix that. As you alluded to with the FIXME, there are still some basic cases the current patch won't address:
switch (x) {
case 1: // Region set to end at the end of the second break.
case 2:
break;
case 3:
case 4:
break;
}
> and the way we handle multiple consecutive case statments isn't really right,
I agree. It'd be worth seeing whether we can avoid pushing a new region for a case if we know fallthrough occurs.
> and I want to make sure I'm not going to end up reverting this. And I need to run some tests to make sure I'm not introducing any crashes. If nothing is wrong, I'll commit tomorrow.
I suspect that fixing switch/cases in a more general way would require reverting this and I know I'll revisit this in the coming weeks. Still, this is an improvement and if nothing goes wrong during testing your plan sgtm.
Repository:
rL LLVM
https://reviews.llvm.org/D34801
More information about the llvm-commits
mailing list