https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125571

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |ebotcazou at gcc dot gnu.org

--- Comment #16 from Eric Botcazou <ebotcazou at gcc dot gnu.org> ---
> At -O1 we have, besides SSA rewrite
> 
>  tree SSA rewrite                   : 286.87 ( 72%)    32M (  4%)
>  tree FRE                           :  72.03 ( 18%)    10M (  1%)
>  TOTAL                              : 399.91          730M
> 398.93user 0.78system 6:40.00elapsed 99%CPU (0avgtext+0avgdata
> 1343812maxresident)k
> 4888inputs+0outputs (21major+395814minor)pagefaults 0swaps
> 
> I think it's worth recognizing this as a bug despite "non-optimal" source
> form.  At least at -O0 and -O1 (at -O0 also with -g added).

I would not waste any time trying to optimize such an abomination, it's usually
hopeless; the optimization should be performed upstream instead.  But I agree
that behaving decently at -O0 is a sensible goal.

> The complexity arises because of how we ensure correctness with setjmp
> by using abnormal edges which blows up the number of edges and, with
> a large number of BBs with setjmp we'll have the abnormal dispatcher
> as a block with very high in- and out degree.

Without abnormal dispatcher, the blow-up would be even bigger in the general
case, although it may indeed be counter-productive in specific cases.

Reply via email to