[PATCH, stage 1] Fortran: Add support for OMP non-rectangular loops

2022-03-25 Thread Sandra Loosemore
This patch adds Fortran support for OMP 5.1 "canonical loop nest form" and non-rectangular loops. The C/C++ and middle-end support is already present except for some missing constraint checks in the gimplifier, which I've added here. There's still a TODO with respect to the not-yet-implemente

[PATCH] Fortran: Add location info to OpenMP tree nodes

2022-03-25 Thread Sandra Loosemore
I've got another patch forthcoming (stage 1 material) that adds some new diagnostics for non-rectangular loops during gimplification of OMP nodes. When I was working on that, I discovered that the Fortran front end wasn't attaching location information to the tree nodes corresponding to the va

[PATCH] Fortran: Fix clause splitting for OMP masked taskloop directive

2022-03-25 Thread Sandra Loosemore
I ran into this bug in the handling of clauses on the combined "masked taskloop" OMP directive when I was working on something else. The fix turned out to be a 1-liner. OK for trunk? -Sandracommit 17c4fa0bd97c070945004095a06fb7d9e91869e3 Author: Sandra Loosemore Date: Wed Mar 23 18:45:25 2

Re: [PATCH] fortran: Fix up initializers of param(0) PARAMETERs [PR103691]

2022-03-25 Thread Jakub Jelinek via Fortran
On Fri, Mar 25, 2022 at 01:13:06PM +0100, Richard Biener wrote: > > Also, I think typically in the Fortran FE side-effects would go into > > se.pre and se.post sequences, not into se.expr, and this routine > > doesn't emit those se.pre/se.post sequences anywhere, so presumably it > > assumes they d

Re: [PATCH] fortran: Fix up initializers of param(0) PARAMETERs [PR103691]

2022-03-25 Thread Richard Biener via Fortran
On Fri, Mar 25, 2022 at 12:34 PM Jakub Jelinek wrote: > > On Fri, Mar 25, 2022 at 12:16:40PM +0100, Richard Biener wrote: > > On Fri, Mar 25, 2022 at 11:13 AM Tobias Burnus > > wrote: > > > > > > On 25.03.22 09:57, Jakub Jelinek via Fortran wrote: > > > > On the gfortran.dg/pr103691.f90 testcase

Re: [PATCH] fortran: Fix up initializers of param(0) PARAMETERs [PR103691]

2022-03-25 Thread Jakub Jelinek via Fortran
On Fri, Mar 25, 2022 at 12:16:40PM +0100, Richard Biener wrote: > On Fri, Mar 25, 2022 at 11:13 AM Tobias Burnus > wrote: > > > > On 25.03.22 09:57, Jakub Jelinek via Fortran wrote: > > > On the gfortran.dg/pr103691.f90 testcase the Fortran ICE emits > > >static real(kind=4) a[0] = {[0 ... -1

Re: [PATCH] fortran: Fix up initializers of param(0) PARAMETERs [PR103691]

2022-03-25 Thread Richard Biener via Fortran
On Fri, Mar 25, 2022 at 11:13 AM Tobias Burnus wrote: > > On 25.03.22 09:57, Jakub Jelinek via Fortran wrote: > > On the gfortran.dg/pr103691.f90 testcase the Fortran ICE emits > >static real(kind=4) a[0] = {[0 ... -1]=2.0e+0}; > > That is an invalid RANGE_EXPR where the maximum is smaller tha

Re: [PATCH] fortran: Fix up initializers of param(0) PARAMETERs [PR103691]

2022-03-25 Thread Tobias Burnus
On 25.03.22 09:57, Jakub Jelinek via Fortran wrote: On the gfortran.dg/pr103691.f90 testcase the Fortran ICE emits static real(kind=4) a[0] = {[0 ... -1]=2.0e+0}; That is an invalid RANGE_EXPR where the maximum is smaller than the minimum. The following patch fixes that. If TYPE_MAX_VALUE is

[PATCH] fortran: Fix up initializers of param(0) PARAMETERs [PR103691]

2022-03-25 Thread Jakub Jelinek via Fortran
Hi! On the gfortran.dg/pr103691.f90 testcase the Fortran ICE emits static real(kind=4) a[0] = {[0 ... -1]=2.0e+0}; That is an invalid RANGE_EXPR where the maximum is smaller than the minimum. The following patch fixes that. If TYPE_MAX_VALUE is smaller than TYPE_MIN_VALUE, the array is empty a