Albert Cohen wrote: > Thanks a lot for the quick and detailed response. > > It is more difficult than I thought, then :-( We'll think more, and > maybe come up with yet another pass ordering proposal, but definitely > this tramp3d code deserves to be processed by graphite AFTER > unrolling+cse has done its specialization trick.
One way out would be to make unrolli pass a little more careful. As you suggest, the heuristic is already not quite satisfactory as it sometimes unrolls outemost loops. A better heursitic would be to run through the different cases where unrolling helps specialization (e.g., the subscripts of subscripts in the tramp3d example), and check for these patterns explicitely. But this is not easy to implement (or to make it robust, and not too syntax-dependent). Albert