public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [Patch, fortran] [00/21] Remove coarray support in the scalarizer
@ 2011-09-15 23:09 Mikael Morin
  2011-09-15 23:09 ` [Patch, fortran] [10/21] Remove coarray support in the scalarizer: Factor bound evaluation Mikael Morin
                   ` (22 more replies)
  0 siblings, 23 replies; 26+ messages in thread
From: Mikael Morin @ 2011-09-15 23:09 UTC (permalink / raw)
  To: gfortran, GCC patches

[-- Attachment #1: Type: text/plain, Size: 2131 bytes --]

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?

Mikael


patchset layout:
 - patches 1..4: 
	Preliminary cleanups.
	Those are quite independant on the rest.
	Patch 4 is optional.

 - patches 5..13: 
	Step by step move from scalarizer-provided cobounds setup code
	to explicit specific code in gfc_conv_expr_descriptor.
	Patch 6 is a request for explaination and is not intended for check-in.

 - patch 14:
	Fixes a regression.

 - patches 15..21:
	This is the point of all the rest: remove coarray-specific code in the
	scalarizer.

 check.c           |   34 +-------
 expr.c            |    6 ++
 resolve.c         |   35 ++++++--
 trans-array.c     |  248 +++++++++++++++++++++++------------------------------
 trans-expr.c      |    6 +-
 trans-intrinsic.c |   52 +++++++-----
 trans.h           |    8 +-
 7 files changed, 180 insertions(+), 209 deletions(-)


^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2011-10-07 20:41 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-09-15 23:09 [Patch, fortran] [00/21] Remove coarray support in the scalarizer Mikael Morin
2011-09-15 23:09 ` [Patch, fortran] [10/21] Remove coarray support in the scalarizer: Factor bound evaluation Mikael Morin
2011-09-15 23:09 ` [Patch, fortran] [02/21] Remove coarray support in the scalarizer: Move coarray resolution code around Mikael Morin
2011-09-15 23:09 ` [Patch, fortran] [01/21] Remove coarray support in the scalarizer: Remove is_coarray Mikael Morin
2011-09-15 23:10 ` [Patch, fortran] [06/21] Remove coarray support in the scalarizer: Request coarray for an actual arg associed with a coarray dummy Mikael Morin
2011-10-02 16:35   ` Tobias Burnus
2011-09-15 23:10 ` [Patch, fortran] [09/21] Remove coarray support in the scalarizer: Accept coarray dimensions in gfc_conv_section_startstride Mikael Morin
2011-09-15 23:10 ` [Patch, fortran] [04/21] Remove coarray support in the scalarizer: Fix gfc_get_corank Mikael Morin
2011-09-15 23:10 ` [Patch, fortran] [20/21] Remove coarray support in the scalarizer: Remove coarray argument Mikael Morin
2011-09-15 23:10 ` [Patch, fortran] [07/21] Remove coarray support in the scalarizer: Use codim as argument gfc_get_array_type_bounds Mikael Morin
2011-09-15 23:10 ` [Patch, fortran] [05/21] Remove coarray support in the scalarizer: Calculate codim earlier Mikael Morin
2011-09-15 23:10 ` [Patch, fortran] [03/21] Remove coarray support in the scalarizer: Simplify coarray descriptor setup Mikael Morin
2011-09-15 23:10 ` [Patch, fortran] [13/21] Remove coarray support in the scalarizer: Add specific walk_coarray function Mikael Morin
2011-09-15 23:10 ` [Patch, fortran] [21/21] Remove coarray support in the scalarizer: Final cleanup Mikael Morin
2011-09-15 23:10 ` [Patch, fortran] [16/21] Remove coarray support in the scalarizer: Remove gfc_loopinfo::codimen Mikael Morin
2011-09-15 23:10 ` [Patch, fortran] [19/21] Remove coarray support in the scalarizer: Remove coarray_last argument Mikael Morin
2011-09-15 23:10 ` [Patch, fortran] [14/21] Remove coarray support in the scalarizer: Fix full array dimension type Mikael Morin
2011-09-15 23:10 ` [Patch, fortran] [17/21] Remove coarray support in the scalarizer: Remove gfc_ss::dimen field Mikael Morin
2011-09-15 23:10 ` [Patch, fortran] [08/21] Remove coarray support in the scalarizer: Factor array ref references Mikael Morin
2011-09-16  0:43 ` [Patch, fortran] [12/21] Remove coarray support in the scalarizer: Get cobounds without the scalarizer Mikael Morin
2011-09-16  5:25 ` [Patch, fortran] [15/21] Remove coarray support in the scalarizer: Remove gfc_ss::data::temp_ss::codimen field Mikael Morin
2011-09-16  5:47 ` [Patch, fortran] [11/21] Remove coarray support in the scalarizer: Support 0-rank loop in gfc_conv_ss_startstride Mikael Morin
2011-09-16  6:18 ` [Patch, fortran] [18/21] Remove coarray support in the scalarizer: Cleanup gfc_walk_variable_expr Mikael Morin
2011-09-23  7:36 ` [Patch, fortran] [00/21] Remove coarray support in the scalarizer Steve Kargl
2011-09-30 18:18 ` Steve Kargl
2011-10-07 21:14   ` Commit revisions (was: Re: [Patch, fortran] [00/21] Remove coarray support in the scalarizer) Mikael Morin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).