On 05/17/2013 03:53 PM, Steven Bosscher wrote:
On Fri, May 17, 2013 at 11:16 PM, Jeff Law wrote:
What's happened, is that emitting the epilogue at the end of basic
block 4 (with a barrier at the end) has made the use insn 43
unreachable.
But from the description you've given, it appears that the epilogue itself
has unreachable code, and that shouldn't be happening. If you think it can
happen by way of shrink-wrapping, I'd like to see the analysis.
It is not the epilogue itself but the way shrink-wrapping emits it.
The block that is unreachable has its last predecessor edge removed in
function.c:6607:
6607 redirect_edge_and_branch_force (e, *pdest_bb);
I haven't looked at how the shrink-wrapping code works exactly. It's
Bernd's code, so perhaps he can have a look. This is now PR57320.
OK. Let's go with your patch then. Approved with a comment that
shrink-wrapping can result in unreachable edges in the epilogue.
jeff