Skip to content
Chunhua Liao edited this page Nov 6, 2024 · 66 revisions

About ROSE

Developed at Lawrence Livermore National Laboratory (LLNL), ROSE is an open source compiler infrastructure to build source-to-source program transformation and analysis tools for large-scale C (C89 and C98), C++ (C++98 and C++11), UPC, Fortran (77, 95, 2003), OpenMP, Java, Python, PHP, and Binary applications. ROSE users range from experienced compiler researchers to library and tool developers who may have minimal compiler experience. ROSE is particularly well suited for building custom tools for static analysis, program optimization, arbitrary program transformation, domain-specific optimizations, complex loop optimizations, performance analysis, and cyber-security.

The primary goal of the ROSE project is to optimize applications within the U.S. Department of Energy (DOE).

ROSE aims to be:

  • A library (and set of associated tools) to quickly and easily apply compiler techniques to one's code in order to improve application performance and developer productivity.
  • A research and development compiler infrastructure for for writing custom source-to-source translators to perform source code transformations, analysis, and optimizations.

Documentation

Links

Some docs are no longer maintained and may be out of date, but still contain useful information.

As a backup, they are also saved at https://github.com/rose-compiler/docs .

Approach

  • Cutting-edge research on source- and high-level compiler analysis and optimization algorithms.
  • Best-practice software development to incorporate existing compiler techniques to and develop new ones.
  • Pre-built ROSE tools to perform program transformation, analysis and optimization of source code.
  • An easy-to-use API to build customized, domain-specific compiler-based analysis, transformation, and optimization tools.

How to Get Started Using ROSE

Contributors

Project Lead: Dan Quinlan

Staff (listed in alphabetical order by last name):

  • Jim Leek
  • Chunhua Liao
  • Pei-Hung Lin
  • Robb Matzke
  • Matt Sottile
  • Tristan Vanderbruggen
  • Qing Yi

Post-doc: