[all-commits] [llvm/llvm-project] e15545: [Flang][OpenMP] Allow copyprivate and nowait on th...

Thirumalai Shaktivel via All-commits all-commits at lists.llvm.org
Thu Mar 6 19:54:54 PST 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: e15545cad8297ec7555f26e5ae74a9f0511203e7
      https://github.com/llvm/llvm-project/commit/e15545cad8297ec7555f26e5ae74a9f0511203e7
  Author: Thirumalai Shaktivel <74826228+Thirumalai-Shaktivel at users.noreply.github.com>
  Date:   2025-03-07 (Fri, 07 Mar 2025)

  Changed paths:
    M flang/lib/Semantics/check-omp-structure.cpp
    M flang/test/Semantics/OpenMP/clause-validity01.f90
    A flang/test/Semantics/OpenMP/single03.f90
    A flang/test/Semantics/OpenMP/single04.f90
    M flang/test/Semantics/OpenMP/threadprivate04.f90
    M llvm/include/llvm/Frontend/OpenMP/OMP.td

  Log Message:
  -----------
  [Flang][OpenMP] Allow copyprivate and nowait on the directive clauses (#127769)

Issue:
- Single construct used to throw a semantic error for copyprivate and
  nowait clause when used in the single directive.
- Also, the copyprivate with nowait restriction has been removed from
  OpenMP 6.0

Fix:
- Allow copyprivate and nowait on both single and end single directive
- Allow at most one nowait clause
- Throw a warning when the same list item is used in the copyprivate clause
  on the end single directive

>From Reference guide (OpenMP 5.2, 2.10.2):
```
!$omp single [clause[ [,]clause] ... ]
loosely-structured-block
!$omp end single [end-clause[ [,]end-clause] ...]

clause:
  copyprivate (list)
  nowait
  [...]

end-clause:
  copyprivate (list)
  nowait
```

Towards: https://github.com/llvm/llvm-project/issues/110008



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