https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107424

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
For the non-simple loops, I guess the questions are if
do i = x, y, 10000
is equivalent to
for (i = x; i <= y; i += 10000)
or not (especially regarding the in C UB cases of y being above INT_MAX -
10000),
and also what to do about
do i = x, y, z
where the step is variable - in C/C++, we always know if the iterator is
increasing or decreasing from the condition, except for != condition but in
that case OpenMP requires
the step to be compile time known 1 or -1.  I'm afraid for Fortran we have no
idea.
And for non-rectangular loops like:
!$omp do collapse(2)
do i = x, y, s1
  do j = z, 2 * i + w, s2
that is quite important...

Reply via email to