]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
openmp: Document that non-rect loops are not supported in Fortran yet
authorJakub Jelinek <jakub@redhat.com>
Wed, 27 Oct 2021 08:41:59 +0000 (10:41 +0200)
committerTobias Burnus <tobias@codesourcery.com>
Wed, 27 Oct 2021 08:45:30 +0000 (10:45 +0200)
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.

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

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

(cherry picked from commit eef811490646a68c9893968a421b351e7bf704e1)

libgomp/ChangeLog.omp
libgomp/libgomp.texi

index c41c2058e4b08e15f6de7a6c54514abcfc2b13e3..d0e4eb669730380e28d4cc1fa4622d191bce21d4 100644 (file)
@@ -1,3 +1,11 @@
+2021-10-27  Tobias Burnus  <tobias@codesourcery.com>
+
+       Backported from master:
+       2021-10-27  Jakub Jelinek  <jakub@redhat.com>
+
+       * libgomp.texi (OpenMP 5.0): Mention that Non-rectangular loop nests
+       aren't implemented for Fortran yet.
+
 2021-10-27  Tobias Burnus  <tobias@codesourcery.com>
 
        Backported from master:
index e6b1b558b6e5e3c9dc58c1090fa940d85f3b9163..4cb189a128ff0e0398c5fefd1a5fe384aa33123f 100644 (file)
@@ -189,7 +189,7 @@ The OpenMP 4.5 specification is fully supported.
 @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