On Thu, Mar 14, 2019 at 11:23:03AM +0100, Richard Biener wrote:
> I am testing the following.  There's IMHO also a missed optimization
> (for CFG-cleanup?) that when a block does not end up in a call
> outgoing abnormal edges can be purged?  In this case it is
> IPA inlining leaving us with this - the inliner calls
> gimple_purge_dead_abnormal_call_edges on the return block
> but both cfun->has_nonlocal_label and cfun->calls_setjmp are
> false so the function does nothing.  This is probably
> a premature check there?

I think it would be better to keep the invariant that there are no abnormal
non-EH edges if both of the cfun bools are false, so that we don't need to
do useless work in the 99.9% of cases.
In the inliner case, is it that we haven't yet updated those or something
similar (if yes, could we update them earlier)?
In the DCE case, can't we when clearing the flag schedule a cleanup and only
clear it afterwards?

        Jakub

Reply via email to