------- Comment #3 from spop at gcc dot gnu dot org 2009-10-23 19:46 ------- Also with -O3 the code of the loop body looks much nicer: several statements disappear as they do not contain code anymore: so we have this LST
transformed_lst ( (root 0 (loop 0 (loop 0 stmt_4 1 (loop 0 stmt_5) 2 stmt_7 3 stmt_18)))) 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) ; } 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