------- Comment #4 from sebpop at gmail dot com 2009-10-23 19:54 ------- Subject: Re: graphite miscompiles 454.calculix of the SPEC 2k6
On Fri, Oct 23, 2009 at 14:46, spop at gcc dot gnu dot org <gcc-bugzi...@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) ; > Â Â } > Â } > } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41811