COCO:
CONTINUOUS
COMPILATION
Compilers, Programming Languages, and Architecture Group
|
![]() |
|||||
Overview | People | Projects | Publications | Meetings | Conferences | |
|
||||||
Adapting Program Code Continuously and Aggressively Much of the past and recent research in program optimization has focused on developing new algorithms to perform a particular optimization or transformation. Indeed, over the previous decade the compiler research community has developed sophisticated, powerful optimization algorithms for a variety of code improvements: register allocation and assignment, common subexpression elimination, partial redundancy elimination, loop optimizations (e.g., loop fusion, loop unrolling, loop interchange, etc.), code scheduling, and function inlining to name a few. While there are still avenues of promising research for particular optimizations, we are at the point where the performance gains of a new or improved optimization algorithm is usually small: an improvement of a few percent is typical. Today's challenge for optimization research is to develop new techniques and approaches that yield performance improvements that go beyond today's small single digit improvements. In this research, we address this challenge by investigating and developing an innovative framework and system for continuously and adaptively applying optimizations. Our system, the Continuous Compiler (CoCo), applies optimizations both statically at compile-time and dynamically at run-time using optimization plans developed at compile time and adapted at run time. Rather than focusing on developing new optimization algorithms (e.g., a new register allocation algorithm, a new loop interchange algorithm) or improving existing optimizations (e.g., better coloring heuristics, better placement algorithms), this project focuses on understanding the interaction of existing optimizations and the efficacy of static and dynamic optimizations. Using this knowledge along with information about the application gathered by static analysis, profile information and monitoring, CoCo determines how to apply a suite of optimizations so that the optimizations work in concert to yield the best improvements. The Continuous Compilation project has made a number of contributions to
Overview Publication An overview of the Continuous Compilation approach is available from our IPDPS NSF Next Generation Software workshop paper.
Slides from a talk on the Continuous Compilation project are also available.
Research Partners and Sponsors | ||||||
![]() |
In collaboration with the University of Virginia | |||||
![]() |
Sponsored by the National Science Foundation, Next Generation Software Program, Award numbers CNS-0305198 and CNS-0203945. | |||||
Last modified: January 8, 2005. This page is maintained by Bruce Childers |