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.
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.
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.
OpenACC specifies two reference counters for tracking device allocations: a structured reference counter for
data
andparallel
directives, and a dynamic reference counter forenter data
andexit 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'sclang/README-OpenACC-design.md
.