Hi!

I've found we claim to support non-rectangular loops, but don't actually
support those in Fortran, as can be seen on:
  integer i, j
  !$omp parallel do collapse(2)
  do i = 0, 10
    do j = 0, i
    end do
  end do
end
To support this, the Fortran FE needs to allow the valid forms of
non-rectangular loops and disallow others, so mainly it needs its
updated version of c-omp.c c_omp_check_loop_iv etc., plus for non-rectangular
lb or ub expressions emit a TREE_VEC instead of normal expression as the C/C++ 
FE
do, plus testsuite coverage.

Bootstrapped/regtested on x86_64-linux and i686-linux, committed to trunk.

2021-10-27  Jakub Jelinek  <ja...@redhat.com>

        * libgomp.texi (OpenMP 5.0): Mention that Non-rectangular loop nests
        aren't implemented for Fortran yet.

--- libgomp/libgomp.texi.jj     2021-10-21 10:23:27.605832433 +0200
+++ libgomp/libgomp.texi        2021-10-26 17:12:15.274870308 +0200
@@ -189,7 +189,7 @@ The OpenMP 4.5 specification is fully su
 @item @code{requires} directive @tab P
       @tab Only fulfillable requirement is @code{atomic_default_mem_order}
 @item @code{teams} construct outside an enclosing target region @tab Y @tab
-@item Non-rectangular loop nests @tab Y @tab
+@item Non-rectangular loop nests @tab P @tab Only C/C++
 @item @code{!=} as relational-op in canonical loop form for C/C++ @tab Y @tab
 @item @code{nonmonotonic} as default loop schedule modifier for 
worksharing-loop
       constructs @tab Y @tab

        Jakub

Reply via email to