ROSE Compiler Framework/Projects

From Wikibooks, open books for an open world
Jump to: navigation, search

This page serves as a quite guide about what the major directories under rose/projects are:

Project Overview[edit]


  • pragmaParsing: An example translator using the parsing building blocks provided by ROSE to parse pragmas


  • autoTuning: a project to use ROSE's parameterized translators to facilitate empirical tuning (or autotuning)
  • DataFaultTolerance: a project to use source-to-source translation to make application resilient to memory faults
  • extractMPISkeleton: extract MPI communication skeletons
  • Fortran_to_C : A Fortran to C language translator

Static Analysis

  • compass: a static analysis tool to find errors in applications

Dynamic Analysis

  • RTED: runtime error detection using compiler instrumentation of library calls.

Binary Analysis:

  • BinaryCloneDetection: detect similarities between binary executables.
  • CloneDetection:

Optimizations of high-level abstractions

  • arrayOptimization: optimizations based on array abstractions
  • autoParallelization: A translator which can automatically insert OpenMP directives into serial code, based on dependence analysis and optionally semantics of abstractions.

Parallel Programming Models:

  • mint: a directive based programming model for GPUs
  • OpenMP_Translator: the first version of OpenMP implementation using ROSE. Not recommended for production use, kept just as an example.
  • UpcTranslation: a preliminarily example project to demonstrate how ROSE can be used to created a UPC compiler


An ongoing project to explore knowledge-driven HPC analysis and optimization. We use the standard and toolchain used by OWL to formally model the concepts and relations in HPC domains, including programs, hardware, analysis and optimization, etc.

See more at the main article OpenK

Shift Calculus DSL[edit]

Developing a scalable domain specific language for stencil computation


Problem: A student added some new IR nodes into ROSE. She is having trouble to pass make for minitermite

Solution: projects/minitermite/HOWTO_ADD_NEW_SGNODE_VARIANTS