This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug tree-optimization/50561] [4.7 regression] ICE when compiling zlib with -O2 -floop-flatten -floop-strip-mine
- From: "grosser at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 08 Feb 2012 15:38:19 +0000
- Subject: [Bug tree-optimization/50561] [4.7 regression] ICE when compiling zlib with -O2 -floop-flatten -floop-strip-mine
- Auto-submitted: auto-generated
- References: <bug-50561-4@http.gcc.gnu.org/bugzilla/>
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?