CAREER: Automatically Generating and Processing Program Analyses and Optimizations
University Of California-San Diego, La Jolla CA
Investigators
Abstract
Developing efficient, scalable, correct, and precise program analyzers and optimizers is difficult. There is a long time, often up to a decade, before a new optimizing compiler is mature enough to be widely used. These difficulties hinder the development of new languages and new architectures, and can also discourage end-user programmers from extending compilers with domain-specific checkers or optimizers. Techniques will be investigated for automatically generating efficient, scalable, correct, and precise dataflow analyzers and optimizers from a very high-level specification. The overarching theme is to understand the underlying principles behind designing program analyses and optimizations, and use this understanding to automate as much as possible the analyzer- and optimizer-writing process. Attempting to automate the process of writing analyzers and optimizers enables many new kinds of usage models for compilers, including: allowing end-user programmers to easily extend the compiler with domain-specific checkers or optimizers; allowing end-user programmers to continuously train the compiler, even after it is deployed, based on additional input-output examples; and automatically generating additional analyses when the optimizer discovers the need for new dataflow information, and linking these new analyses into the optimizer while in execution.
View original record on NSF Award Search →