[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