Re: complete_unrolli / complete_unroll

2009-09-30 Thread Richard Guenther
On Tue, Sep 29, 2009 at 8:23 PM, David Edelsohn wrote: > On Thu, Aug 20, 2009 at 4:48 AM, Richard Guenther > wrote: > >> Can't we use graphite to re-roll loops?  That is, compress the >> polyhedron by introducing a new parameter?  But maybe I am >> not good at guessing what your initial bloat iss

Re: complete_unrolli / complete_unroll

2009-09-29 Thread David Edelsohn
On Thu, Aug 20, 2009 at 4:48 AM, Richard Guenther wrote: > Can't we use graphite to re-roll loops?  That is, compress the > polyhedron by introducing a new parameter?  But maybe I am > not good at guessing what your initial bloat issue looks like. > > The reason I'm asking is that there is enough

Re: complete_unrolli / complete_unroll

2009-08-20 Thread Albert Cohen
Richard Guenther wrote: >> If this is not clear, I can write some pseudo-code to clarify :-). > > Can't we use graphite to re-roll loops? That is, compress the > polyhedron by introducing a new parameter? But maybe I am > not good at guessing what your initial bloat issue looks like. > > The re

Re: complete_unrolli / complete_unroll

2009-08-20 Thread Richard Guenther
On Thu, Aug 20, 2009 at 11:48 AM, Dominique Dhumieres wrote: > IIRC another code that is "improved" by complete_unrolli is the polyhedron > test induct.f90.  However it gives worse results for some variants > (see pr34265: induct_v2/3). > >> Can't we use graphite to re-roll loops? ... > > Is doing

Re: complete_unrolli / complete_unroll

2009-08-20 Thread Dominique Dhumieres
IIRC another code that is "improved" by complete_unrolli is the polyhedron test induct.f90. However it gives worse results for some variants (see pr34265: induct_v2/3). > Can't we use graphite to re-roll loops? ... Is doing and undoing always some kind of work? Cheers Dominique

Re: complete_unrolli / complete_unroll

2009-08-20 Thread Richard Guenther
On Thu, Aug 20, 2009 at 3:19 AM, Albert Cohen wrote: > Richard Guenther wrote: >> >> gfortran.dg/reassoc_4.f, the hottest loop from calculix. > > Thanks. > > This example is slightly different. Graphite should be able to handle it > with loop fusion rather than pre-unrolling + cse. But I agree that

Re: complete_unrolli / complete_unroll

2009-08-19 Thread Albert Cohen
Richard Guenther wrote: gfortran.dg/reassoc_4.f, the hottest loop from calculix. Thanks. This example is slightly different. Graphite should be able to handle it with loop fusion rather than pre-unrolling + cse. But I agree that the unrolling + cse approach also makes sense (and does not dep

Re: complete_unrolli / complete_unroll

2009-08-19 Thread Richard Guenther
On Wed, Aug 19, 2009 at 3:56 PM, Richard Guenther wrote: > On Wed, Aug 19, 2009 at 3:54 PM, Albert Cohen 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

Re: complete_unrolli / complete_unroll

2009-08-19 Thread Richard Guenther
On Wed, Aug 19, 2009 at 3:54 PM, Albert Cohen 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 des

Re: complete_unrolli / complete_unroll

2009-08-19 Thread Albert Cohen
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

Re: complete_unrolli / complete_unroll

2009-08-19 Thread Albert Cohen
Richard Guenther wrote: > 2009/8/19 Albert Cohen : >> When debugging graphite, we ran into code bloat issues due to >> pass_complete_unrolli being called very early in the non-ipa >> optimization sequence. Much later, the full-blown pass_complete_unroll >> is scheduled, and this one does not do any

Re: complete_unrolli / complete_unroll

2009-08-19 Thread Richard Guenther
On Wed, Aug 19, 2009 at 2:07 PM, Richard Guenther wrote: > 2009/8/19 Albert Cohen : >> When debugging graphite, we ran into code bloat issues due to >> pass_complete_unrolli being called very early in the non-ipa >> optimization sequence. Much later, the full-blown pass_complete_unroll >> is schedu

Re: complete_unrolli / complete_unroll

2009-08-19 Thread Richard Guenther
2009/8/19 Albert Cohen : > When debugging graphite, we ran into code bloat issues due to > pass_complete_unrolli being called very early in the non-ipa > optimization sequence. Much later, the full-blown pass_complete_unroll > is scheduled, and this one does not do any harm. > > Strangely, this ear

complete_unrolli / complete_unroll

2009-08-19 Thread Albert Cohen
When debugging graphite, we ran into code bloat issues due to pass_complete_unrolli being called very early in the non-ipa optimization sequence. Much later, the full-blown pass_complete_unroll is scheduled, and this one does not do any harm. Strangely, this early unrolling pass (tuned to only unr