diff options
author | khaki3 <47756807+khaki3@users.noreply.github.com> | 2025-08-05 18:21:31 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-08-05 18:21:31 -0700 |
commit | 8470027f257a3304b2abe50e5663bcd711f6ca29 (patch) | |
tree | 26d018b13c042771c4c6ffa1ec52b0203a22309f /clang/unittests/Basic/VirtualFileSystemTest.cpp | |
parent | b05e26be8a487d21cf15d34ef60b39b3ca94f235 (diff) | |
download | llvm-8470027f257a3304b2abe50e5663bcd711f6ca29.zip llvm-8470027f257a3304b2abe50e5663bcd711f6ca29.tar.gz llvm-8470027f257a3304b2abe50e5663bcd711f6ca29.tar.bz2 |
[flang][acc] Add a semantic check for the validity of nested parallelism (#152225)
This PR implements a semantic checker to ensure the legality of nested
OpenACC parallelism. The following are quotes from Spec 3.3. We need to
disallow loops from having parallelism at the same level as or at a
sub-level of child loops.
>**2.9.2 gang clause**
>[2064] <ins>When the parent compute construct is a parallel
construct</ins>, or on an orphaned loop construct, the gang clause
behaves as follows. (...) The associated dimension is the value of the
dim argument, if it appears, or is dimension one. The dim argument must
be a constant positive integer with value 1, 2, or 3.
>[2112] The region of a loop with a gang(dim:d) clause may not contain a
loop construct with a gang(dim:e) clause where e >= d unless it appears
within a nested compute region.
>[2074] <ins>When the parent compute construct is a kernels
construct</ins>, the gang clause behaves as follows. (...)
>[2148] The region of a loop with the gang clause may not contain
another loop with a gang clause unless within a nested compute region.
>**2.9.3 worker clause**
>[2122]/[2129] The region of a loop with the worker clause may not
contain a loop with the gang or worker clause unless within a nested
compute region.
>**2.9.4 vector clause**
>[2141]/[2148] The region of a loop with the vector clause may not
contain a loop with a gang, worker, or vector clause unless within a
nested compute region.
https://openacc.org/sites/default/files/inline-images/Specification/OpenACC-3.3-final.pdf
Diffstat (limited to 'clang/unittests/Basic/VirtualFileSystemTest.cpp')
0 files changed, 0 insertions, 0 deletions