From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 59831 invoked by alias); 6 May 2018 12:43:43 -0000 Mailing-List: contact fortran-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: fortran-owner@gcc.gnu.org Received: (qmail 56575 invoked by uid 89); 6 May 2018 12:43:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-11.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_LOW,SPF_PASS,URIBL_RED autolearn=ham version=3.3.2 spammy= X-Spam-User: qpsmtpd, 2 recipients X-HELO: mout.gmx.net Received: from mout.gmx.net (HELO mout.gmx.net) (212.227.17.21) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 06 May 2018 12:43:39 +0000 Received: from vepi2 ([88.77.166.163]) by mail.gmx.com (mrgmx103 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MSuYT-1enz5H2mub-00RqVs; Sun, 06 May 2018 14:43:34 +0200 Date: Sun, 06 May 2018 12:43:00 -0000 From: Andre Vehreschild To: Jerry DeLisle Cc: GCC-Patches-ML , GCC-Fortran-ML Subject: Re: [Patch, Fortran, pr85507, v1] Modell variable dependencies in coarray expression correctly. Message-ID: <20180506144333.39e0b7f0@vepi2> In-Reply-To: <21250f24-5e06-d3a2-a17d-ade84e7c584d@charter.net> References: <20180430105244.7c46a28e@vepi2> <21250f24-5e06-d3a2-a17d-ade84e7c584d@charter.net> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/QO1YjTQGkmLQE=7zj4Prsut" X-UI-Out-Filterresults: notjunk:1;V01:K0:yGvRY43vKwg=:j+x+JpRKmgp/0w+/VhPdHd PLJgLii5dl5T/fuD+hWGXRuaQWO8OYQEUMsvwaWQZMpSX2SSvrFyFR6AFbM+OJ6JBoQ6ZnCa3 Lbz30H4O2gLgJ6m6K8DayXVnppZyD0dzZGn6FBYGqzt3f+NT234XFND6lCqS+jwNCuyumsB6p FaG9EfBPzviOxsZksZ32ZxetjbXAfhuVhnzpAC3EGPpRcuegcagH7GY/2p6vrw4sqM0j3b5VD M0of4Lh58Nj2H2lYWqxxZLf5YWUWeCTBaJ1E/wTrVVeYpaD8nK6glGc0UCzJxIjTE43JYm72l hABauBl0vE3nNsOMtBU4uCbLzKaj/0LFJv4ri2cYV1vM/GQYQ87PB9iYA7bATXeTe9+jhn/IW X3IhNIe3ZXm8sZkxImPQw7MOlEuWVreCnZHKtt5CnpxE0Xt0EQyEqFLCiLqfCQQkmtwzB2Vst 0cdk94BgKrahNkEAYIp2xIHWZO8odUNhSpAkvktSENJm2BFqgAZAq3QPDQGw5xRVOkq6AKj/K qyc4IbwY1YihsOSmk7DLpolkwidHzWN/+RdPq45ZIkBOM31B6qDbj1TKwXNi4FmaPSSlzKJsC IWZhT4FJpD2T6fIkiu9fMsAGIVsSUCAY3TW1i4bf0/QEKdaIsn8nqd4Dy/WPJJoGVWZL8NbE2 5aI5CBKmVmWg9hLbyNdONjWXVfF3vkVOkFLA8GT/3gGu8bW3pCtMxAFUCOdI/9ezRCMM4DiUi jerymOjDQQOlWu5DY99INCHTbBclvZKC1s83oxKTLA/2bV8VYD2H/2eFVyU= X-IsSubscribed: yes X-SW-Source: 2018-05/txt/msg00015.txt.bz2 --MP_/QO1YjTQGkmLQE=7zj4Prsut Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 956 Hi Jerry, thanks for the review. Applied to trunk as r259974 gcc-8 as r259979 gcc-7 as r259977, and gcc-6 as r259978. The diffs for trunk to gcc-7 are merely the same and given as submit.diff only. The diff for gcc-6 has some small adaptions in a testcase and is therefore attached separately. Regards, Andre On Sat, 5 May 2018 09:38:08 -0700 Jerry DeLisle wrote: > On 04/30/2018 01:52 AM, Andre Vehreschild wrote: > > Hi all, > > > > attached patch partially reverts r259385 preventing an ICE. At the same time > > the check_dependency routine is parameterized correctly so that variable > > dependencies in coarray expressions are determined more precisely. > > > > Bootstrapped and regtested ok on x86_64-linux-gnu/f27. Ok for trunk, > > gcc-8/-7/-6? > > > > Regards, > > Andre > > > > Yes, OK, assuming also all OpenCoarrays test cases also pass. > > Jerry -- Andre Vehreschild * Email: vehre ad gmx dot de --MP_/QO1YjTQGkmLQE=7zj4Prsut Content-Type: text/x-patch Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename=submit.diff Content-length: 5947 Index: gcc/testsuite/gfortran.dg/coarray_lib_comm_1.f90 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- gcc/testsuite/gfortran.dg/coarray_lib_comm_1.f90 (Revision 259973) +++ gcc/testsuite/gfortran.dg/coarray_lib_comm_1.f90 (Arbeitskopie) @@ -38,9 +38,8 @@ if (any (A-B /=3D 0)) STOP 4 end =20 -! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.0, \\= \(integer\\\(kind=3D\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind= =3D\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, &parm.\[0-9\]+, 4, 4, 0, 0B\\\)= ;" 1 "original" } } -! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.0, \\= \(integer\\\(kind=3D\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind= =3D\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, &parm.\[0-9\]+, 4, 4, 1, 0B\\\)= ;" 1 "original" } } +! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.0, \\= \(integer\\\(kind=3D\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind= =3D\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, &parm.\[0-9\]+, 4, 4, 1, 0B\\\)= ;" 2 "original" } } ! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.0, \\= \(integer\\\(kind=3D\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind= =3D\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, &p, 4, 4, 1, 0B\\\);" 1 "origin= al" } } ! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.1, \\= \(integer\\\(kind=3D\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind= =3D\[48\]\\\)\\\) b, 1, &parm.\[0-9\]+, 0B, &p, 4, 4, 0, 0B\\\);" 1 "origin= al" } } -! { dg-final { scan-tree-dump-times "_gfortran_caf_sendget \\\(caf_token.0= , \\\(integer\\\(kind=3D\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(= kind=3D\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, caf_token.0, \\\(integer\\\= (kind=3D\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=3D\[48\]\\\= )\\\) a, 1, &parm.\[0-9\]+, 0B, 4, 4, 0, 0B\\\);" 1 "original" } } +! { dg-final { scan-tree-dump-times "_gfortran_caf_sendget \\\(caf_token.0= , \\\(integer\\\(kind=3D\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(= kind=3D\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, caf_token.0, \\\(integer\\\= (kind=3D\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=3D\[48\]\\\= )\\\) a, 1, &parm.\[0-9\]+, 0B, 4, 4, 1, 0B\\\);" 1 "original" } } =20 Index: gcc/testsuite/gfortran.dg/coarray_dependency_1.f90 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- gcc/testsuite/gfortran.dg/coarray_dependency_1.f90 (nicht existent) +++ gcc/testsuite/gfortran.dg/coarray_dependency_1.f90 (Revision 259974) @@ -0,0 +1,11 @@ +! { dg-do compile } +! { dg-options "-fcoarray=3Dlib -lcaf_single" } +! +! Check that reffing x on both sides of a coarray send does not ICE.=20 +! PR 85507 + +program check_dependency + integer :: x[*] + x[42] =3D x +end program check_dependency + Index: gcc/testsuite/ChangeLog =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- gcc/testsuite/ChangeLog (Revision 259973) +++ gcc/testsuite/ChangeLog (Arbeitskopie) @@ -1,3 +1,9 @@ +2018-05-06 Andre Vehreschild + + PR fortran/85507 + * gfortran.dg/coarray_dependency_1.f90: New test. + * gfortran.dg/coarray_lib_comm_1.f90: Fix counting caf-expressions. + 2018-05-04 Pekka J=C3=A4=C3=A4skel=C3=A4inen =20 * testsuite/brig.dg/test/gimple/smoke_test.hsail: Fix the test Index: gcc/fortran/dependency.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- gcc/fortran/dependency.c (Revision 259973) +++ gcc/fortran/dependency.c (Arbeitskopie) @@ -2238,9 +2238,8 @@ break; =20 /* Exactly matching and forward overlapping ranges don't cause a - dependency, when they are not part of a coarray ref. */ - if (fin_dep < GFC_DEP_BACKWARD - && lref->u.ar.codimen =3D=3D 0 && rref->u.ar.codimen =3D=3D 0) + dependency. */ + if (fin_dep < GFC_DEP_BACKWARD) return 0; =20 /* Keep checking. We only have a dependency if Index: gcc/fortran/trans-intrinsic.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- gcc/fortran/trans-intrinsic.c (Revision 259973) +++ gcc/fortran/trans-intrinsic.c (Arbeitskopie) @@ -1860,7 +1860,7 @@ =20 lhs_expr =3D code->ext.actual->expr; rhs_expr =3D code->ext.actual->next->expr; - may_require_tmp =3D gfc_check_dependency (lhs_expr, rhs_expr, false) =3D= =3D 0 + may_require_tmp =3D gfc_check_dependency (lhs_expr, rhs_expr, true) =3D= =3D 0 ? boolean_false_node : boolean_true_node; gfc_init_block (&block); =20 Index: gcc/fortran/ChangeLog =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- gcc/fortran/ChangeLog (Revision 259973) +++ gcc/fortran/ChangeLog (Arbeitskopie) @@ -1,3 +1,11 @@ +2018-05-06 Andre Vehreschild + + PR fortran/85507 + * dependency.c (gfc_dep_resolver): Revert looking at coarray dimension + introduced by r259385. + * trans-intrinsic.c (conv_caf_send): Always report a dependency for + same variables in coarray assignments. + 2018-05-02 Tom de Vries =20 PR libgomp/82428 --MP_/QO1YjTQGkmLQE=7zj4Prsut Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=submit-6.diff Content-length: 4929 Index: gcc/fortran/ChangeLog =================================================================== --- gcc/fortran/ChangeLog (Revision 259977) +++ gcc/fortran/ChangeLog (Arbeitskopie) @@ -1,3 +1,12 @@ +2018-05-06 Andre Vehreschild + + PR fortran/85507 + Backport from trunk. + * dependency.c (gfc_dep_resolver): Revert looking at coarray dimension + introduced by r259385. + * trans-intrinsic.c (conv_caf_send): Always report a dependency for + same variables in coarray assignments. + 2018-04-28 Andre Vehreschild PR fortran/81773 Index: gcc/fortran/dependency.c =================================================================== --- gcc/fortran/dependency.c (Revision 259977) +++ gcc/fortran/dependency.c (Arbeitskopie) @@ -2239,9 +2239,8 @@ break; /* Exactly matching and forward overlapping ranges don't cause a - dependency, when they are not part of a coarray ref. */ - if (fin_dep < GFC_DEP_BACKWARD - && lref->u.ar.codimen == 0 && rref->u.ar.codimen == 0) + dependency. */ + if (fin_dep < GFC_DEP_BACKWARD) return 0; /* Keep checking. We only have a dependency if Index: gcc/fortran/trans-intrinsic.c =================================================================== --- gcc/fortran/trans-intrinsic.c (Revision 259977) +++ gcc/fortran/trans-intrinsic.c (Arbeitskopie) @@ -1249,7 +1249,7 @@ lhs_expr = code->ext.actual->expr; rhs_expr = code->ext.actual->next->expr; - may_require_tmp = gfc_check_dependency (lhs_expr, rhs_expr, false) == 0 + may_require_tmp = gfc_check_dependency (lhs_expr, rhs_expr, true) == 0 ? boolean_false_node : boolean_true_node; gfc_init_block (&block); Index: gcc/testsuite/ChangeLog =================================================================== --- gcc/testsuite/ChangeLog (Revision 259977) +++ gcc/testsuite/ChangeLog (Arbeitskopie) @@ -1,3 +1,10 @@ +2018-05-06 Andre Vehreschild + + PR fortran/85507 + Backport from trunk. + * gfortran.dg/coarray_dependency_1.f90: New test. + * gfortran.dg/coarray_lib_comm_1.f90: Fix counting caf-expressions. + 2018-04-28 Andre Vehreschild PR fortran/81773 Index: gcc/testsuite/gfortran.dg/coarray_dependency_1.f90 =================================================================== --- gcc/testsuite/gfortran.dg/coarray_dependency_1.f90 (nicht existent) +++ gcc/testsuite/gfortran.dg/coarray_dependency_1.f90 (Arbeitskopie) @@ -0,0 +1,11 @@ +! { dg-do compile } +! { dg-options "-fcoarray=lib -lcaf_single" } +! +! Check that reffing x on both sides of a coarray send does not ICE. +! PR 85507 + +program check_dependency + integer :: x[*] + x[42] = x +end program check_dependency + Index: gcc/testsuite/gfortran.dg/coarray_lib_comm_1.f90 =================================================================== --- gcc/testsuite/gfortran.dg/coarray_lib_comm_1.f90 (Revision 259977) +++ gcc/testsuite/gfortran.dg/coarray_lib_comm_1.f90 (Arbeitskopie) @@ -38,9 +38,8 @@ if (any (A-B /= 0)) call abort end -! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, &parm.\[0-9\]+, 4, 4, 0\\\);" 1 "original" } } -! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, &parm.\[0-9\]+, 4, 4, 1\\\);" 1 "original" } } +! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, &parm.\[0-9\]+, 4, 4, 1\\\);" 2 "original" } } ! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, &p, 4, 4, 1\\\);" 1 "original" } } ! { dg-final { scan-tree-dump-times "_gfortran_caf_get \\\(caf_token.1, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) b, 1, &parm.\[0-9\]+, 0B, &p, 4, 4, 0\\\);" 1 "original" } } -! { dg-final { scan-tree-dump-times "_gfortran_caf_sendget \\\(caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, 4, 4, 0\\\);" 1 "original" } } +! { dg-final { scan-tree-dump-times "_gfortran_caf_sendget \\\(caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, caf_token.0, \\\(integer\\\(kind=\[48\]\\\)\\\) parm.\[0-9\]+.data - \\\(integer\\\(kind=\[48\]\\\)\\\) a, 1, &parm.\[0-9\]+, 0B, 4, 4, 1\\\);" 1 "original" } } --MP_/QO1YjTQGkmLQE=7zj4Prsut--