The DawnCC tool is a compiler module that estimates the size of dynamically allocated data structures, such as arrays and vectors, in C and C++ programs. It was developed as part of our Dawn project, whose goal is to automatically detect parallelizable code in C/C++ programs, and statically alter their source code to include OpenACC or OpenMP directives that can then be interpreted by compatible compilers to generate machine code that optimizes parallel tasks to be run on SIMD architectures, when available.

You can see the tool in action by submitting your own C/C++ code. Simply type a valid program in the box, or upload the program's source file to run the analysis, and you will receive a modified version of your program's code with the parallelization directives automatically inserted, when applicable. For an interesting use case and examples of annotated code, you can read this presentation, where DawnCC was used to compile FFmpeg and VLC Media player. More information about our tool is available in the following publications:
  • Automatic Insertion of Copy Annotation in Data-Parallel Programs (Paper, Slides)
  • DawnCC: a Source-to-Source Automatic Parallelizer of C and C++ Programs (Paper)
  • DawnCC: Automatic Annotation for Data Parallelism and Offloading (Paper) ACM TACO
Type the code in the box above or select a C/C++ file to upload. ?    

Choose the output:
? ? ?

Choose the type of pragmas to be annotated:

DawnCC Tutorial
Source Code