This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] Cleanup the CFG after pro_and_epilogue pass
- From: Steven Bosscher <stevenb dot gcc at gmail dot com>
- To: Jeff Law <law at redhat dot com>, Bernd Schmidt <bernds at codesourcery dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 17 May 2013 23:53:18 +0200
- Subject: Re: [patch] Cleanup the CFG after pro_and_epilogue pass
- References: <CABu31nOj1yqt3nwWYqDHBBtZiJQ3GM9brnBjcmA3+paucXXKtw at mail dot gmail dot com> <51968A87 dot 7000008 at redhat dot com> <CABu31nPrdc0H5M+PrU+Zz2VX906qNHLf8gm33uX7yvWdVS2w-Q at mail dot gmail dot com> <51969E20 dot 6010505 at redhat dot com>
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.
Ciao!
Steven