[all-commits] [llvm/llvm-project] 857dd4: [flang][OpenMP] Canonicalize loops with intervenin...

Krzysztof Parzyszek via All-commits all-commits at lists.llvm.org
Sat Nov 22 14:32:41 PST 2025


  Branch: refs/heads/users/kparzysz/label-do-fix
  Home:   https://github.com/llvm/llvm-project
  Commit: 857dd4da7187c9d345d0913b73601e65ed5f06da
      https://github.com/llvm/llvm-project/commit/857dd4da7187c9d345d0913b73601e65ed5f06da
  Author: Krzysztof Parzyszek <Krzysztof.Parzyszek at amd.com>
  Date:   2025-11-22 (Sat, 22 Nov 2025)

  Changed paths:
    M flang/include/flang/Parser/openmp-utils.h
    M flang/lib/Parser/openmp-utils.cpp
    M flang/lib/Semantics/canonicalize-do.cpp
    A flang/test/Parser/OpenMP/atomic-label-do.f90
    A flang/test/Parser/OpenMP/cross-label-do.f90

  Log Message:
  -----------
  [flang][OpenMP] Canonicalize loops with intervening OpenMP constructs

Example based on the gfortran test a.6.1.f90
```
  do 100 i = 1,10
  !$omp do
    do 100 j = 1,10
      call work(i,j)
    100 continue
```

During canonicalization of label-DO loops, if the body of an OpenMP
construct ends with a label, treat the label as ending the construct
itself.

This will also allow handling of cases like
```
  do 100 i = 1, 10
  !$omp atomic write
  100 x = i
```
which we were unable to before.



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list