[Bug tree-optimization/61000] No loop interchange for inner loop along the slow index
mircea.namolaru at inria dot fr
gcc-bugzilla@gcc.gnu.org
Wed Apr 30 11:23:00 GMT 2014
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61000
--- Comment #4 from Mircea Namolaru <mircea.namolaru at inria dot fr> ---
Right, C arrays expressed as pointers suffers from the same problem.
But for C at least there is a way to avoid this.
Many thanks for your suggestion of how to de-linearize arrays in middle-end, it
seems that may be simpler then I've thought. Hope to find time and wrote a
patch
based on your idea for GCC 4.10.
Mircea
----- Original Message -----
> From: "rguenth at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
> To: "mircea namolaru" <mircea.namolaru@inria.fr>
> Sent: Wednesday, April 30, 2014 1:02:10 PM
> Subject: [Bug tree-optimization/61000] No loop interchange for inner loop along the slow index
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61000
>
> --- Comment #3 from Richard Biener <rguenth at gcc dot gnu.org> ---
> (In reply to Mircea Namolaru from comment #2)
> > Again, the problem is due to representation of arrays in Fortran as array
> > with a single dimnesion (for similar code in C profitability check work as
> > expected). It is a recurring problem that may lead to compilation time
> > increase (sometimes dramatically) or missed opportunities optimizations due
> > to too conservative dependence analysis or as on this case the
> > profitability
> > check failure. The solution is to de-liniarize array accesses in Fortran as
> > in C.
>
> Note that C doesn't always have de-linearized arrays (once you access the
> array via a pointer).
>
> For Fortran de-linearizing is "easy" via simple casting to a
> multi-dimensional
> (variable-bounds) array type. For the middle-end side, that is.
>
> --
> You are receiving this mail because:
> You are on the CC list for the bug.
>
More information about the Gcc-bugs
mailing list