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

--- Comment #3 from Hongtao Liu <liuhongt at gcc dot gnu.org> ---
(In reply to Richard Biener from comment #2)
> The question is how we should define innermost - consider
> 
>  - loop interchange
>  - inlining of a function body with a loop into a loop
> 
> the simplest approach might be to flag the innermost loop as written by
> the user in source at CFG build time (when we first record loops) and then
> only ever treat that as "innermost" (for heuristics) but still allow facts
> (a loop->inner) to override this (after interchange, inlining).

The original motivation was to prevent losing vectorization opportunity after
cunrolli, so let's restrict the size reduction change in cunrolli and define
innermost in cunrolli as by the first time the loop is visited in cunrolli,
loop->inner is empty.

Reply via email to