Home

Installation

User Manual (pdf)

Tutorial (pdf)

Projects

Programmer's Reference

Publications

Download Software

Report Bugs

 

ROSE has been used to facilitate a number of projects for exploring program analyses and optimizations, supporting new programming languages, and building correctness and performance tools. Representative examples include:

  • Compass: a tool for the checking of source code. Compass is based on the ROSE compiler infrastructure and demonstrates the use of ROSE to build many simple pattern detectors for analysis of C, C++, and Fortran source code. See the current Compass Manual for details.
  • Loop optimizer: support for aggressive loop optimizations such as loop fusion, fission, unrolling and blocking. An extended dependence analysis algorithm has been implemented to support both perfectly nested loops and irregular loop nests.
  • OpenMP: a project to support OpenMP using ROSE. ROSE already has a lightweight parser for OpenMP C/C++ pragmas and a translator for OpenMP 2.5 constructs. We are extending it to support Fortran and the new OpenMP 3.0 specification.
  • UPC: ongoing work to support UPC using ROSE. We are leveraging the existing UPC support available in the EDG frontend to build an environment for program analysis and optimizations for UPC applications.
  • Whole-program empirical optimization: participation in the PERI project. ROSE is a central component in the PERI project to enable performance portability of DOE applications through an empirical optimization system, which incorporates a set of external tools interacting with ROSE to support the entire life-cycle of automated empirical optimization.

UCRL-WEB-212214, UCRL-WEB-219260 and UCRL-WEB-225313 (full web site)
Last modified: Tuesday September 23 14:36:37 2008
Webmaster



For further information, please contact Dan Quinlan, dquinlan at llnl dot gov
CASC | CAR | Computation | LLNL