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.
Currently, Clacc does not support the kernels construct. Its implementation will almost certainly share analyses needed for implicit worker and vector clauses and the auto clause, so issues #6 and #7 are likely prerequisites for this issue.
Tasks:
Investigate other OpenACC implementations (e.g., NVIDIA, GCC) to understand how their implementations of the kernels construct behave. For example, is the main point to just add acc loop auto to all contained loop nests that don't otherwise have a loop construct? Where are implicit gang clauses added in a kernels construct? What about implicit data attributes?
Investigate the OpenACC specification and its open issues related to the kernels construct. The spec is understood to permit a lot of flexibility here. Taking both investigations into account, file additional OpenACC spec issues and pull requests if clarity in the spec is needed.
If possible, implement a simple translation to standard OpenMP features that produces correct behavior.
Devise an OpenMP extension that represents the full semantics of the kernels construct and that can be optimized, potentially at the LLVM IR level.
Implement translation to OpenMP from the OpenACC kernels construct.
Currently, Clacc does not support the
kernels
construct. Its implementation will almost certainly share analyses needed for implicitworker
andvector
clauses and theauto
clause, so issues #6 and #7 are likely prerequisites for this issue.Tasks:
kernels
construct behave. For example, is the main point to just addacc loop auto
to all contained loop nests that don't otherwise have aloop
construct? Where are implicitgang
clauses added in akernels
construct? What about implicit data attributes?kernels
construct. The spec is understood to permit a lot of flexibility here. Taking both investigations into account, file additional OpenACC spec issues and pull requests if clarity in the spec is needed.kernels
construct and that can be optimized, potentially at the LLVM IR level.kernels
construct.