This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
isl scheduler and spatial locality (Re: [PATCH][GRAPHITE] More TLC)
On Wed, Sep 27, 2017 at 02:18:51PM +0200, Richard Biener wrote:
> Ah, so I now see why we do not perform interchange on trivial cases like
>
> double A[1024][1024], B[1024][1024];
>
> void foo(void)
> {
> for (int i = 0; i < 1024; ++i)
> for (int j = 0; j < 1024; ++j)
> A[j][i] = B[j][i];
> }
I didn't see you mentioning _why_ you expect an interchange here.
Are you prehaps interested in spatial locality?
If so, then there are several approaches for taking
that into account.
- pluto performs an intra-tile loop interchange to
improve temporal and/or spatial locality. It shouldn't
be too hard to do something similar on an isl generated
schedule
- Alex (Oleksandr) has been working on an extension of
the isl scheduler that takes into account spatial locality.
I'm not sure if it's publicly available.
- I've been working on a special case of spatial locality
(consecutivity). The current version is available in
the consecutivity branch. Note that it may get rebased and
it may not necessarily get merged into master.
There are also other approaches, but they may not be that
easy to combine with the isl scheduler.
skimo