From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 51679 invoked by alias); 18 Jun 2019 23:02:31 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 51656 invoked by uid 89); 18 Jun 2019 23:02:31 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-16.7 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 spammy=U*tkoenig, verison, tkoenig@gcc.gnu.org, tkoeniggccgnuorg X-HELO: relay1.mentorg.com Received: from relay1.mentorg.com (HELO relay1.mentorg.com) (192.94.38.131) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 18 Jun 2019 23:02:29 +0000 Received: from svr-orw-mbx-06.mgc.mentorg.com ([147.34.90.206]) by relay1.mentorg.com with esmtps (TLSv1.2:ECDHE-RSA-AES256-SHA384:256) id 1hdN7T-0005dh-Eg from Thomas_Schwinge@mentor.com ; Tue, 18 Jun 2019 16:02:27 -0700 Received: from svr-orw-mbx-04.mgc.mentorg.com (147.34.90.204) by SVR-ORW-MBX-06.mgc.mentorg.com (147.34.90.206) with Microsoft SMTP Server (TLS) id 15.0.1320.4; Tue, 18 Jun 2019 16:02:25 -0700 Received: from tftp-cs (147.34.91.1) by svr-orw-mbx-04.mgc.mentorg.com (147.34.90.204) with Microsoft SMTP Server id 15.0.1320.4 via Frontend Transport; Tue, 18 Jun 2019 16:02:25 -0700 Received: by tftp-cs (Postfix, from userid 49978) id A8BDDC2212; Tue, 18 Jun 2019 16:02:24 -0700 (PDT) From: Thomas Schwinge To: , CC: Jakub Jelinek , Tom de Vries Subject: [committed] [PR85221] Set 'omp declare target', 'omp declare target link' attributes for Fortran OpenACC 'declare'd variables (was: [gomp4] Re: OpenACC declare directive updates) In-Reply-To: <87lh9jptak.fsf@kepler.schwinge.homeip.net> References: <5637692F.7050306@codesourcery.com> <5639FAC0.2090104@codesourcery.com> <20151106193127.GI5675@tucnak.redhat.com> <563D0345.7010208@codesourcery.com> <20151106194909.GK5675@tucnak.redhat.com> <878u5n7pqk.fsf@hertz.schwinge.homeip.net> <56451FE6.3040200@codesourcery.com> <20151122185949.GA53877@troutmask.apl.washington.edu> <564DF738.80706@codesourcery.com> <87lh9jptak.fsf@kepler.schwinge.homeip.net> User-Agent: Notmuch/0.9-125-g4686d11 (http://notmuchmail.org) Emacs/26.1 (x86_64-pc-linux-gnu) Date: Tue, 18 Jun 2019 23:02:00 -0000 Message-ID: <87k1difqfc.fsf@euler.schwinge.homeip.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="==-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-SW-Source: 2019-06/txt/msg01097.txt.bz2 --==-=-= Content-Type: multipart/mixed; boundary="=-=-=" --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Content-length: 1997 Hi! On Fri, 27 Nov 2015 12:37:23 +0100, I wrote: > On Thu, 19 Nov 2015 10:22:16 -0600, James Norris wrote: > > [...] > Merging your trunk r230722 and r230725 with the existing Fortran OpenACC > declare implementation present on gomp-4_0-branch, I effectively applied > the following to gomp-4_0-branch in 231002. Please verify this. >=20 > Regarding my Fortran XFAIL comments in > , > with some of my earlier changes "#if 0"ed in > gcc/fortran/trans-decl.c:add_attributes_to_decl, > libgomp.oacc-fortran/declare-3.f90 again PASSes. But I don't understand > (why something like) this code (isn't needed/done differently in C/C++). There remains a lot of mystery to be resolved regarding the OpenACC 'declare' implementation... :-( > --- gcc/fortran/trans-decl.c > +++ gcc/fortran/trans-decl.c > @@ -1302,15 +1302,20 @@ add_attributes_to_decl (symbol_attribute sym_attr= , tree list) > } >=20=20 > if (sym_attr.omp_declare_target > +#if 0 /* TODO */ > || sym_attr.oacc_declare_create > || sym_attr.oacc_declare_copyin > || sym_attr.oacc_declare_deviceptr > - || sym_attr.oacc_declare_device_resident) > + || sym_attr.oacc_declare_device_resident > +#endif > + ) > list =3D tree_cons (get_identifier ("omp declare target"), > NULL_TREE, list); > +#if 0 /* TODO */ > if (sym_attr.oacc_declare_link) > list =3D tree_cons (get_identifier ("omp declare target link"), > NULL_TREE, list); > +#endif As PR85221 "[openacc] ICE in install_var_field, at omp-low.c:657" tells us, yes, these are actually necessary. I'm confused why not all OpenACC 'declare' clauses are handled here, but looking into that is for another day, or week. Committed to trunk in r272453 "[PR85221] Set 'omp declare target', 'omp declare target link' attributes for Fortran OpenACC 'declare'd variables", see attached. Gr=C3=BC=C3=9Fe Thomas --=-=-= Content-Type: text/x-diff Content-Disposition: inline; filename=0001-PR85221-Set-omp-declare-target-omp-declare-tar.trunk.patch Content-Transfer-Encoding: quoted-printable Content-length: 3645 =46rom b7194d24d942998da2ab8f6f5dc080e3fff81972 Mon Sep 17 00:00:00 2001 From: tschwinge Date: Tue, 18 Jun 2019 22:15:43 +0000 Subject: [PATCH] [PR85221] Set 'omp declare target', 'omp declare target li= nk' attributes for Fortran OpenACC 'declare'd variables gcc/fortran/ PR fortran/85221 * trans-decl.c (add_attributes_to_decl): Handle OpenACC 'declare' directive. gcc/testsuite/ PR fortran/85221 * gfortran.dg/goacc/declare-3.f95: New file. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@272453 138bc75d-0d04-0410-9= 61f-82ee72b054a4 --- gcc/fortran/ChangeLog | 6 +++ gcc/fortran/trans-decl.c | 9 +++- gcc/testsuite/ChangeLog | 3 ++ gcc/testsuite/gfortran.dg/goacc/declare-3.f95 | 47 +++++++++++++++++++ 4 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/gfortran.dg/goacc/declare-3.f95 diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog index d30fa2e50a88..6fd97b61ce05 100644 --- a/gcc/fortran/ChangeLog +++ b/gcc/fortran/ChangeLog @@ -1,3 +1,9 @@ +2019-06-18 Thomas Schwinge + + PR fortran/85221 + * trans-decl.c (add_attributes_to_decl): Handle OpenACC 'declare' + directive. + 2019-06-16 Thomas Koenig =20 * dump_parse_tree (debug): Add verison for formal arglist. diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c index b8e07274febd..f504c279c31b 100644 --- a/gcc/fortran/trans-decl.c +++ b/gcc/fortran/trans-decl.c @@ -1432,10 +1432,15 @@ add_attributes_to_decl (symbol_attribute sym_attr, = tree list) list =3D oacc_replace_fn_attrib_attr (list, dims); } =20 - if (sym_attr.omp_declare_target_link) + if (sym_attr.omp_declare_target_link + || sym_attr.oacc_declare_link) list =3D tree_cons (get_identifier ("omp declare target link"), NULL_TREE, list); - else if (sym_attr.omp_declare_target) + else if (sym_attr.omp_declare_target + || sym_attr.oacc_declare_create + || sym_attr.oacc_declare_copyin + || sym_attr.oacc_declare_deviceptr + || sym_attr.oacc_declare_device_resident) list =3D tree_cons (get_identifier ("omp declare target"), clauses, list); =20 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 59d39e8c179a..552ccc6fbd68 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,5 +1,8 @@ 2019-06-18 Thomas Schwinge =20 + PR fortran/85221 + * gfortran.dg/goacc/declare-3.f95: New file. + PR middle-end/90859 * c-c++-common/goacc/firstprivate-mappings-1.c: Update. =20 diff --git a/gcc/testsuite/gfortran.dg/goacc/declare-3.f95 b/gcc/testsuite/= gfortran.dg/goacc/declare-3.f95 new file mode 100644 index 000000000000..ec5d4c5a062a --- /dev/null +++ b/gcc/testsuite/gfortran.dg/goacc/declare-3.f95 @@ -0,0 +1,47 @@ +! Test valid usage of the OpenACC 'declare' directive. + +module mod_a + implicit none + integer :: a + !$acc declare create (a) +end module + +module mod_b + implicit none + integer :: b + !$acc declare copyin (b) +end module + +module mod_c + implicit none + integer :: c + !$acc declare deviceptr (c) +end module + +module mod_d + implicit none + integer :: d + !$acc declare device_resident (d) +end module + +module mod_e + implicit none + integer :: e + !$acc declare link (e) +end module + +subroutine sub1 + use mod_a + use mod_b + use mod_c + use mod_d + use mod_e +end subroutine sub1 + +program test + use mod_a + use mod_b + use mod_c + use mod_d + use mod_e +end program test --=20 2.20.1 --=-=-=-- --==-=-= Content-Type: application/pgp-signature; name="signature.asc" Content-length: 658 -----BEGIN PGP SIGNATURE----- iQGzBAEBCgAdFiEEU9WEfWKGQazCmycCAKI7+41Q4XkFAl0JbXcACgkQAKI7+41Q 4XnkCwv7BMsvLBH0SX1aMiG6Z3bZbrOSbkbO9j4iYXU54w+f4aJnVrEduWTf2+AM Xbs4gMHeM2fSU9QxXELOgtQL8PUnLicCflocgXaTkDo6cF40XeM1QKQXZ1PV6HPr BWYPoF/DP0S0cVdTA1zFlsfI5VU9aFSc7xC0MQ03DyblObq5iIOYvMY278SaZRDM sVJi4K/c4Ozt1lE7b/5FV3y2IDIK2PUu0CQIsqijZ3vWS4BJrBghTenS82Lv01zT wSPMIfh8LziAdoQuoHa5PJdCPu8vaDEgAUa1sjY0b5BFWzigx1itMQ5LVgXzLdPM Cwu1HzaHVxIXMAEdFJjezyO7geyWZsXjI5CopT0tLtSSdE6PJhli+4Gc5JgNXSg4 O5g4jSKfK0ey4bEufWkj8dbNqsN+bq10ReP0x0e8gDWpTi0/CMhL2579xaqtFqFl 8mwhfJvTlpsPS3z1GTK8uZspbYrgT6ntXjCo8gA7zzbztgL6NK3luAOm00uY8FXo MUbOPphx =sML6 -----END PGP SIGNATURE----- --==-=-=--