Skip Navigation

Colloquium Details

Automating Selective Dynamic Compilation

Author:Markus Mock University of Washington
Date:April 15, 2002
Time:15:30
Location:220 Deschutes

Note: Special Day

Abstract

Exploiting run-time information is becoming increasingly important for optimizing compilers and other software tools. One promising way to exploit run-time information is dynamic compilation. Dynamic compilation systems take advantage of the invariance or semi-invariance of certain variables and data structures at run-time to perform value-based optimizations, such as run-time program specialization. Today, the run-time transformations either have to be programmed by hand, or they are controlled by programmer annotations that specify for which variables and data structures the value-based optimizations should be performed.

Unfortunately, writing good annotations is very difficult in practice, since the performance impact of the annotations depends on many factors: the details of the underlying optimization mechanisms, the run-time characteristics of the application to be optimized, and the target hardware platform. In this talk I show how to combine static program analysis with run-time information to automatically produce annotations that drive a dynamic compiler. I show that it is possible to produce annotations of the same quality as annotations written by humans - but at a fraction of the time. This represents an important step in making dynamic compilation a standard compiler optimization. Moreover, it has now become possible to work on scaling dynamic compilation to programs that were previously infeasible for humans to annotate because of their size.

Biography

Markus Mock is a Ph.D. candidate in the Department of Computer Science and Engineering at the University of Washington, Seattle. He received his M.S. in Computer Science and Engineering at the University of Washington, Seattle, and his Diplom Informatik (Computer Science) from the University of Karlsruhe, Germany. His research interests include compilers, programming languages, program analysis and their interaction with computer architecture. More specifically, he is interested in the exploitation of run-time information using dynamic compilation and the interaction between computer architecture and compilers. He is also interested in the application of static and dynamic analysis in software engineering.