On Wed, Aug 19, 2009 at 3:54 PM, Albert Cohen<albert.co...@inria.fr> wrote: > 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).
Well, one thing is to simply adjust the maximal size increase or see if honzas improved size heuristics allow to unroll only if the estimated size does not increase (though for calculix we depend on a very large estimated size increase IIRC, with the old heuristics at least - there is a testcase in the testsuite for it). Richard. > Albert >