[Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-10-15 Thread Tobias Burnus
This OpenACC-only patch extends the support for /common/ blocks. [In OpenMP (4.0 to 5.0, unchanged) and gfortran, common blocks are supported in copyin/copyprivate, in firstprivate/lastprivate/private/shared, in threadprivate and in declare target.] For OpenACC, gfortran already supports commo

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-10-18 Thread Thomas Schwinge
Hi! On 2019-10-15T23:32:32+0200, Tobias Burnus wrote: > This OpenACC-only patch extends the support for /common/ blocks. I'll be quick to note that I don't have any first-hand experience with Fortran common blocks. :-P > [In OpenMP (4.0 to 5.0, unchanged) and gfortran, common blocks are suppor

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-10-23 Thread Tobias Burnus
Hi Thomas, Updated version attached. Changes: * Use "true" instead of "openacc" for the OpenACC-only "copy()" clause (as not shared w/ OpenMP) * Add some documentation to gimplify.c * Use GOVD_FIRSTPRIVATE also for "kernel" The patch survived bootstrapping + regtesting on my laptop (no offloa

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-10-25 Thread Thomas Schwinge
Hi Tobias! On 2019-10-23T22:34:42+0200, Tobias Burnus wrote: > Updated version attached. Changes: > * Use "true" instead of "openacc" for the OpenACC-only "copy()" clause > (as not shared w/ OpenMP) > * Add some documentation to gimplify.c > * Use GOVD_FIRSTPRIVATE also for "kernel" Thanks! >

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-10-25 Thread Tobias Burnus
Hi Thomas, On 10/25/19 10:43 AM, Thomas Schwinge wrote: OK for trunk, with the following few small items considered. Committed as Rev. 277451 – after a fresh bootstrap and regtesting. Changes: * I have now a new test case libgomp/testsuite/libgomp.oacc-fortran/common-block-3.f90 which looks

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-11-25 Thread Tobias Burnus
Hi Thomas, sorry for the belated reply. Some comments – and a patch modifying two test cases (see below). Regarding the patch: OK for the trunk? On 11/11/19 10:39 AM, Thomas Schwinge wrote: By the way, do you know what's the status is for Fortran common blocks in OpenMP: supported vs. expected

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-11-26 Thread Tobias Burnus
Hi Thomas, I now played also around common blocks with "!$acc declare device_resident (/block/)". [See attached test-case diff.] Observations: * !$acc declare has to come after the declaration of the common block. In terms of the spec, it just needs to be in the declaration section, i.e. it

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-11-28 Thread Thomas Schwinge
Hi Tobias! On 2019-11-25T15:02:16+0100, Tobias Burnus wrote: > sorry for the belated reply. Eh, no worries -- I'm way more behind on things... > On 11/11/19 10:39 AM, Thomas Schwinge wrote: >> By the way, do you know what's the status is for Fortran common blocks in >> OpenMP: supported vs. ex

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-11-28 Thread Thomas Schwinge
Hi Tobias! On 2019-11-26T15:02:34+0100, Tobias Burnus wrote: > I now played also around common blocks with "!$acc declare > device_resident (/block/)". [See attached test-case diff.] If you'd like to, please commit that, to document the status quo. (I have not reviewed.) There are several is

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-11-29 Thread Tobias Burnus
Hi Thomas, On 11/28/19 6:01 PM, Thomas Schwinge wrote: Definition (3.32.1 in F2018): "blank common" = "unnamed common block". I just want to add the following, which came into my mind after thinking more about device_resident (the other email in this thread). Fortran (here: 2018, 8.10.2.5) h

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-11-29 Thread Tobias Burnus
Hi Thomas, I have started with this email – and then stopped and replied to the other email in this thread: https://gcc.gnu.org/ml/gcc-patches/2019-11/msg02678.html – which covers parts which otherwise would belong into this email. On 11/28/19 6:02 PM, Thomas Schwinge wrote: [Test case which

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-12-02 Thread Tobias Burnus
Hi Thomas, for completeness, I tried now *blank commons* with OpenACC in *PGI's pgfortran.* From the error message, it looks as if the parser does not handle blank commons at all. (Matches the current parser in gfortran.) pgfortran is also not very good at diagnostics as nonexisting common b

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-12-03 Thread Thomas Schwinge
Hi Tobias! On 2019-11-29T18:47:12+0100, Tobias Burnus wrote: > On 11/28/19 6:02 PM, Thomas Schwinge wrote: > [Test case which uses common blocks in device_resident.] >> If you'd like to, please commit that, to document the status quo. (I >> have not reviewed.) > > Did so as r278845 with a slight

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-12-03 Thread Tobias Burnus
Hi Thomas, Quick version: The attached patch seems to work, kind of,  but fails at run time with: libgomp: Trying to map into device [0x407218..0x40721c) object when [0x407210..0x40721c) is already mapped This marks the common-block decl but not the common-block vars as 'device resident' (alia

Re: [Patch][Fortran] OpenACC – permit common blocks in some clauses

2019-11-11 Thread Thomas Schwinge
Hi Tobias! By the way, do you know what's the status is for Fortran common blocks in OpenMP: supported vs. expected per the specification? On 2019-10-25T16:36:10+0200, Tobias Burnus wrote: > On 10/25/19 10:43 AM, Thomas Schwinge wrote: >> Or, would it be easy to add an OpenACC 'kernels' test ca