Tech Talk: ROSE Open Compiler Infrastructure

  • Date  Time
  • Speaker
  • Location

The April 2nd Galois Tech Talk  will be delivered by Daniel J. Quinlan, titled “ROSE Open Compiler Infrastructure for Software Analysis, Transformation, and Optimization”.

  • Date: Thursday, April 2nd, 2009
  • Time: 10:30am – 11:30am
  • Location: Galois, Inc.421 SW 6th Ave. Suite 300(3rd floor of the Commonwealth Building)Portland, OR 97204

(NB. This seminar is on Thursday, instead of the usual Tuesday slot.)Abstract:  ROSE is a tool for building source-to-source transformation tools for the custom analysis, optimization, and transformation of large scale C, UPC, C++ and Fortran (F2003,F95,F90,F77,F66) applications, and also OpenMP.  Recent work over the last two years has added binary analysis support to ROSE (specifically support for x86, ARM, and PowerPC instruction sets and both Windows (PE, NE, LE, DOS formats)and Linux (Elf format). More recent work has added dynamic analysis support using “Intel Pin” to mix both static and dynamic analysis.  ROSE has an external community of users, developers, and collaborators and has been used in a number of research and industry tools (more information is available at www.roseCompiler.org). It has been a basis for a number of external collaborations in program optimization and cyber-security and we invite new ones.Specifically, ROSE is packaged to allow construction of custom tools by a non-compiler audience. Central to ROSE is the analysis and transformation of the Abstract Syntax Tree (as well as other graphs generated from it) and its transformation to generate new code. Research work has addressed a range of topics from optimization (loop optimization, MPI optimization, data structure optimization, automated parallelization using OpenMP, etc.) to the details of macro handling in CPP preprocessing and advanced token handling for extremely precise levels of source-to-source code regeneration and analysis of subtle details typically not possible within conventional compiler infrastructures.Ongoing research has focused on the use of ROSE within Cyber-Security research and the development of supporting program analysis and support for detection of general properties of both source code and binaries. Current work includes the representation and analysis of binaries and the leveraging of source-code based program analysis for use in binary analysis. Ongoing research work within ROSE is to present a uniform program analysis tool chain for both source code and binaries.Recent work has developed Compass, a tool built on top of ROSE.  Compass is a useful tool on its own and also a vehicle for research on the specification of code patterns (secure coding rules) and the detection of rule violations in large scale applications. This talk will present ROSE, Compass, and recent research work on shared and distributed memory parallel static analysis techniques to scale the detection of rule violations for potentially large rule sets (thousands of rules) on large-scale (many-million line) applications.  The exact same infrastructure can also be used for binary analysis, but secure code rule sets for binaries are not as well developed as for source code. This talk will outline some of the work within ROSE generally and with particular emphasis on building research collaborations.Bio: Dan Quinlan is project leader for the ROSE Project at Lawrence Livermore National Laboratory. His research is in numerous areas that intersect computer science and numerical analysis. Research interests include: semantics-based source code transformations and optimizations, C++ compiler tools/infrastructure/design, cache-based optimizations, object oriented abstractions, parallel array classes, parallel data distribution mechanisms, parallel load balancing algorithms, object-oriented numerical frameworks, parallel adaptive mesh refinement, and parallel multigrid algorithms. Quinlan earned his Ph.D. in Computational Mathematics from University of Colorado.


Galois has been holding weekly technical seminars for several years on topics from functional programming, formal methods, compiler and language design, to cryptography, and operating system construction, with talks by many figures from the programming language and formal methods communities. The talks are open and free. An RSVP is not required, but feel free to contact the organizer with questions and comments.