[all-commits] [llvm/llvm-project] 89f930: [clang][OpenMP] Fix/enforce order-concurrent-nesta...
Ernesto Su via All-commits
all-commits at lists.llvm.org
Fri Apr 18 10:58:11 PDT 2025
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 89f930a7de5df59c5a4c2bbfce9b67404b33dc63
https://github.com/llvm/llvm-project/commit/89f930a7de5df59c5a4c2bbfce9b67404b33dc63
Author: Ernesto Su <ernesto.su at intel.com>
Date: 2025-04-18 (Fri, 18 Apr 2025)
Changed paths:
M clang/include/clang/Basic/OpenMPKinds.h
M clang/lib/Basic/OpenMPKinds.cpp
M clang/lib/Sema/SemaOpenMP.cpp
M clang/test/OpenMP/for_order_messages.cpp
Log Message:
-----------
[clang][OpenMP] Fix/enforce order-concurrent-nestable rules (#135463)
OpenMP has restrictions on directives allowed to be strictly nested
inside a
construct with the order(concurrent) clause specified.
- OpenMP 5.0, 5.1, and 5.2 allows: 'loop', 'parallel', 'simd', and
combined directives starting with 'parallel'.
- OpenMP 6.0 allows: the above directives plus 'atomic' and
all loop-transformation directives.
Furthermore, a region that corresponds to a construct with
order(concurrent)
specified may not contain calls to the OpenMP runtime API.
This PR fixes the following issues in the current implementation:
With -fopenmp-version=50: none of the nesting restrictions above were
enforced
With -fopenmp-version=60:
1. Clang did not reject OpenMP runtime APIs encountered in the region.
2. Clang erroneously rejected combined directives starting with
parallel.
---------
Co-authored-by: Zahira Ammarguellat <zahira.ammarguellat at intel.com>
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