Distinguished Lecturer Series
Finding Good Compilation Sequences
Keith Cooper
Rice University
Friday, February 11, 2005
10:30am - SENSQ 5317
Refreshments at 10:00am
Abstract
For more than forty years, we have built compilers that follow a simple structural model: they apply a fixed set of passes to every program. A typical compiler has a handful of optimization levels that add extra passes into the process. This approach has allowed us to make progress on compilation and optimization. It has allowed us to build and debug compilers. However, it has not placed us in a position where we can deliver high-quality compilers in a timely fashion. Despite forty-five years of research on optimization and code quality, we still have trouble producing compilers that generate excellent code for new architectures and new applications.
One area that research has largely avoided is the structure of the compilers that we build. Modern compilers are organized along the same basic lines that were used in the first Fortran compiler, in the late 1950s. The time has come to fundamentally rethink the way that we organize and execute optimizing compilers. In our research, we are building and evaluating an adaptive compiler. This compiler changes its behavior in response to both the application and the target machine. It uses a simple feedback mechanism in an attempt to minimize an explicit objective function, such as execution time or code size.
This talk will describe results from large-scale experiments that characterize the search spaces in which our adaptive compiler operates, and some of the ways that we can use those insights to design effective search techniques. It will discuss some of the engineering challenges that arise in building adaptive compilers. It will suggest directions for future research.
This talk will be accessible to a broad audience.
Biography of Speaker
Keith D. Cooper is a professor in the Department of Computer Science and in the Department of Electrical Engineering at Rice University, as well as chair of the Computer Science Department. His research has focused on techniques for compiler-based optimization and code generation. His work has included algorithms for interprocedural analysis and optimization, for register allocation and scheduling, and for a variety of individual optimization problems.
His current interests include work on adaptive compilers, on code generation for aggressive microprocessors, on smoothing the behavior of Grid-style programs, on code understanding, and on link-time and run-time reoptimization. He has been deeply involved in construction of two buildings, and advises several Houston-area schools on matters of technology. With Dr. Linda Torczon, he has written an introductory textbook on compiler construction, Engineering a Compiler (Morgan Kaufmann, 2003).





