http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50561

--- Comment #7 from Tobias Grosser <grosser at gcc dot gnu.org> 2012-02-08 
15:38:19 UTC ---
Created attachment 26614
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26614
A possible fix

Here a possible fix. The commit message is:

    Removing old scattering dimensions after loop flattening is incorrect.

    As long as we use PPL we are not able to remove the old scattering
dimensions.
    The reason is that these dimensions are not entirely unused.  They are not
    necessary as part of the scheduling vector, as the earlier dimensions
already
    unambiguously define the execution time, however they may still be needed
to
    carry modulo constraints as introduced e.g. by strip mining.  The correct
    solution would be to project these dimensions out of the scattering
polyhedra.
    In case they are still required to carry modulo constraints they should be
kept
    internally as existentially quantified dimensions.  PPL does only support
    projection of rational polyhedra, however in this case we need an integer
    projection. With isl this will be trivial to implement.  For now we just
leave
    the dimensions. This is a little ugly, but should be correct.

Could you verify it it works for you?

Reply via email to