On Fri, Sep 16, 2011 at 01:08:13AM +0200, Mikael Morin wrote: > Hello, > > the scalarizer is there to generate loops for assignments over more than > one element. Tobias extended it at various places to support coarrays, > but this should not be necessary as coarrays in assignments either refer > to the array present on the local image or to the one on the remote image > (in which case a local temporary is created). In either case the coarray > is seen as a normal array by the assignment code, which makes the point > of having coarray-specific handling in the scalarizer moot. > > In fact the reason for the presence of coarrays in the scalarizer is that > gfc_conv_expr_descriptor uses the scalarizer to setup array (co)bounds. > > This patch serie removes the coarray-specific code in the scalarizer, and > replaces it with some additional cobound setup code in > gfc_conv_expr_descriptor. > It is supposed to make the code easier to grasp by having a scalarizer free of > coarray stuff (it is complicated enough without it), and by having cobound > setup code gathered in a single place. > The downside is that it makes gfc_conv_expr_descriptor even bigger than it was > already. > > Every patch has been tested by incremental bootstrap and running the fortran > testsuite with RUNTESTLAGS=caf.exp and RUNTESTFLAGS="dg.exp=*coarray*". > The last one has also passed a full fortran regression test. > > OK for trunk? >
I've read through the first 10 patches, and in general I like the clean separation that you're trying to achieve. Given that this effects co-arrays I was expecting Tobias to quickly respond, but it seems he is busy with other obligations. I'll try to go through the entire patch set on Saturday. -- Steve