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

--- Comment #31 from Jiu Fu Guo <guojiufu at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #28)

> > For the loop which has multi-exits, it may not helpful to unroll it,
> > especially "complete unroll" may be not helpful. Like loop in in_pack_i4.c.
> > Since it would early exit, some iterations(may most iterations) were not
> > executed.
> > 
> > Is it a good idea to disable the GIMPLE cunroll for this kind of loop? RTL
> > unroll_stupid does not unroll this kind of loop either.
> 
> Well, GIMPLE cunroll specifically handles the situation of peeling such loops
> and has a separate --param to control how many extra branches it may
> introduce
> for those exits.  Generally disabling unrolling of such loops isn't a good
> idea,
> the reason for completely unrolling loops is abstraction removal and not
> necessarily producing more optimal loop kernels (the loop is gone
> afterwards).

I think, the --param, which you said, maybe param_max_peel_branches which
default is 31. 
And currently, param_max_completely_peel_times is default to 16.

Reply via email to