llvm-doe-org / llvm-project

The LLVM DOE Fork is a fork of upstream LLVM (https://github.com/llvm/llvm-project/) that hosts multiple DOE-funded projects. Contact information and other details for each project are described in the wiki.
https://github.com/llvm-doe-org/llvm-project/wiki/
Other
22 stars 13 forks source link

OpenMP `hold` map type modifier extension #13

Closed jdenny-ornl closed 2 years ago

jdenny-ornl commented 3 years ago

OpenACC specifies two reference counters for tracking device allocations: a structured reference counter for data and parallel directives, and a dynamic reference counter for enter data and exit data directives and corresponding OpenACC Runtime Library routines. OpenMP 5.0 specifies only one, which can thus be considered a dynamic reference counter.

Clacc prototypes a hold map type modifier as an OpenMP extension to implement a structured reference counter. The initial commit is 54f183ede961. This feature should be considered for upstreaming to LLVM as described in #10.

See the sections "Command-Line Options" and "Structured Reference Counter" in Clacc's clang/README-OpenACC-status.md. See the section "OpenACC to OpenMP Mapping" in Clacc's clang/README-OpenACC-design.md.

jdenny-ornl commented 3 years ago

While there were many prerequisite commits, the main upstream reviews for this feature were D106509 and D106510, which landed upstream today. Changes made during upstreaming, such as renaming hold to ompx_hold, still need to be merged into Clacc.

jdenny-ornl commented 2 years ago

Our upstream ompx_hold was merged into Clacc in 4e3eab5acb0a, which is now included in clacc/main.