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

--- Comment #9 from Michael Matz <matz at gcc dot gnu.org> ---
(In reply to rguent...@suse.de from comment #8)
> >The fun thing is, there's a difference between these two loop nests:
> >
> >   for (i) for (j) a[i][0] = f(a[i+1][0]);
> >   for (i) for (j) b[i][j] = f(a[i+1][j]);
> 
> What about
> 
>   B[i][j/2]...
> 
> ?

That would be a problem as well, but luckily that's not an affine function of
j,
and hence has no analyzable access function, and so isn't fused for different
reasons.

> It's really surprising that only invariants are special here.

It's the only affine functions that don't progress with each iteration.  I
think, at least :)

Reply via email to