|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.
- 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.
The documentation you're currently viewing is for a specific version of ROSE. Documentation for other releases can be found here.
Contributors to this release
- LLNL staff: Dan Quinlan and Chunhua Liao, Robb Matzke, Markus Schordan, Justin Too
LLNL post-docs: Thomas Panas, Jeremiah Willcock, Qing Yi, Rich Vuduc
LLNL student interns: Gergo Barany (Technical University of Vienna), Michael Byrd (University of California at Davis), Gabriel Coutinho (Imperial College London), Peter Collingbourne (Imperial College London), Valentin David (University of Bergen, Norway), Jochen Haerdtlein (University of Erlanger, Germany), Vera Hauge (University of Oslo, Norway), Christian Iwainsky (University of Erlanger, Germany), Lingxiao Jiang (University of California at Davis), Alin Jula (Texas A&M), Han Kim (University of California at San Diego), Milind Kulkarni (Cornell University), Markus Kowarschik (University of Erlanger, Germany), Gary Lee (University of California at Berkeley and Purdue University), Chunhua Liao (University of Houston), Ghassan Misherghi. (University of California at Davis), Peter Pirkelbauer (Texas A&M), Bobby Philip (University of Colorado), Radu Popovici (Cornell University), Robert Preissl (Austria), Andreas Saebjornsen (University of Oslo, Norway), Sunjeev Sikand (University of California at San Diego), Andy Stone (Colorado State University at Fort Collins), Danny Thorne (University of Kentucky), Nils Thuerey (University of Erlanger, Germany), Ramakrishna Upadrasta (Colorado State University at Fort Collins), Christian Wiess(Munich University of Technology, Germany), Jeremiah Willcock (Indiana University), Brian White (Cornell University), Gary Yuan (University of California at Davis), and Yuan Zhao (Rice University).
ROSE is an open source project that can be installed from source code. See Installing ROSE.