ROSE: Compiler Infrastructure for Custom Software Analysis, Transformation, and
Optimization
Daniel Quinlan
Center for Applied Scientific Computing
Lawrence Livermore National Laboratory
April 20, 2007
10:00 AM
ORNL 5100-Auditorium
Host: Jeff Vetter
(vetter@ornl.gov
)
ABSTRACT:
ROSE is a tool for building source-to-source transformation tools for
the custom analysis of large scale scientific applications. Previous work has
focused on C and C++ support and recent work has focused on the support for
Fortran90 as part of collaborations with Rice and LANL. ROSE represents a
mechanism to build translators that read the user's application source code
and output highly optimized or customized application code. ROSE is the
compiler-framework which permits library or application developers to build
their own domain-specific source-to-source analyzers/translators/optimizers.
The specification of transformations is made as easy as possible with
non-compiler people as a target audience. Custom analysis of large scale
applications is also simple to specify; ROSE supports a number of standard
program analysis phases common to typical compilers, and is particularly
focused on being easy to use. ROSE is an Open Source project,
supporting large scale DOE applications (million line, plus) and includes
substantial documentation.
The output from a translator built from ROSE
is itself the same as the input language (but transformed using customized
analysis and transformations). The result is a compile time mechanism that
leverages/wraps any vendor's compiler, but provides for highly specialized
custom domain-specific analysis and/or optimizations. This work forms a part
of research work on optimization of high level abstractions (custom code
generation for telescoping languages) and Cyber-Security.
This talk will
present ROSE, some of the recent research, and examples of the use of ROSE
along with opportunities for research collaborations. We will present
the ongoing work on both optimization and Cyber-Security and discuss ROSE
mechanisms well suited to supporting general optimization and security
analysis of large scale applications.
# # #