Clacc: OpenACC Support for Clang and LLVM

Clacc will contribute production-quality OpenACC compiler support to clang/LLVM.

OpenACC support in clang/LLVM will facilitate the programming of GPUs and other accelerators in DOE applications, and it will provide a popular compiler platform on which to perform research and development for related optimizations and tools (e.g., static analyzers, debuggers, editor extensions).

Clacc’s key design feature is that it translates OpenACC to OpenMP in order to build on clang’s existing OpenMP compiler and runtime support.  Because OpenACC is more descriptive and OpenMP is more prescriptive, this translation can be seen as lowering, and the mapping between directives is not simply one-to-one, so sophisticated compiler analysis is required.

Publications and Presentations

Related Links


  • Joel E. Denny (Email: dennyje AT ornl DOT gov)