> > > > loop iterations:(op0[ref offset: 192] changed || op0[ref offset: 256] > > changed || op0[ref offset: 224] changed) && (op0[ref offset: 96] changed || > > op0[ref offset: 160] changed || op0[ref offset: 128] changed)
Looking at the testcase, loop stride is (op0[ref offset: 384] changed) && (op0[ref offset: 192] changed) that is more trackable ;) The problem with iterations is simply that they verify that ubound,hbound and stride is known. Also the individual loops are combined by and_predicates. We hint when one of loops become to have known stride or iterations. We lose track then and do not hint for further loops on subsequent inlining. I am not sure how important it is - for fortran I guess the first inlining matter the most. Honza