This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: [Bug tree-optimization/41811] graphite miscompiles 454.calculix of the SPEC 2k6
- From: Sebastian Pop <sebpop at gmail dot com>
- To: gcc-bugzilla at gcc dot gnu dot org
- Cc: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 23 Oct 2009 14:53:52 -0500
- Subject: Re: [Bug tree-optimization/41811] graphite miscompiles 454.calculix of the SPEC 2k6
- References: <bug-41811-7780@http.gcc.gnu.org/bugzilla/> <20091023194615.26530.qmail@sourceware.org>
On Fri, Oct 23, 2009 at 14:46, spop at gcc dot gnu dot org
<gcc-bugzilla@gcc.gnu.org> wrote:
> and the code generated by CLooG for the interchange looks like this:
>
> for (scat_1=0;scat_1<=2;scat_1++) {
> Âfor (scat_3=0;scat_3<=2;scat_3++) {
> Â ÂS4(scat_1,scat_3) ;
> Â Âfor (scat_5=0;scat_5<=2;scat_5++) {
> Â Â ÂS5(scat_1,scat_5,scat_3) ;
> Â Â}
> Â ÂS7(scat_1,scat_3) ;
> Â ÂS18(scat_1,scat_3) ;
> Â}
S7 and S18 should not be generated before S5 finishes to execute over
all the iterations of the original innermost loop (do k=1,20).
S7 and S18 contain the end of the reduction and the write in the array
xs(i,j) that is independent of the k loop.
> Âfor (scat_3=3;scat_3<=19;scat_3++) {
> Â Âfor (scat_5=0;scat_5<=2;scat_5++) {
> Â Â ÂS5(scat_1,scat_5,scat_3) ;
> Â Â}
> Â}
> }