The Varia project

Varia is concerned with the design and implementation of compiler optimizations. Selecting the order in which optimizations are performed can have a dramatic impact on the code generated and this effect depends on the source program. Not every optimization will result in improved code for every source program. Also, some optimizations can be combined for better results.

We plan to provide a domain-specific language for writing optimizations as well as an engine to execute analyses and transformations written in our language. One design goal is to make it as easy as possible to experiment creating new optimizations and exploring variations on execution. For example, we want to combine optimizations easily and look for interesting new combinations. However, we expect our framework to be more than a testbed. We plan to integrate Varia with actual compilers, starting with Quick C-- and Phoenix.

Varia is developed by Kelly Heffner and Kevin Redwine. We are advised on this project by Norman Ramsey and Mike Smith. This work has been funded in part by NSF grants CCR-0310877 and CCF-0429782, NSF grants ITR-0325460 and CCR-0311482, and by funding from Microsoft.

Project Status

Varia currently uses the Jess expert system as an engine for analyses and transformations. We have written Jess inference rules to describe several standard optimizations and have demonstrated that this system easily compose optimizations.

Our immediate goals for the software portion of this project are to design a domain-specific language for describing optimizations. The DSL will be based on observations made when writing optimizations as Jess inference rules. We intend to develop our own optimization engine specifically to execute optimizations written in our DSL.

We anticipate future directions such as profitibility heuristics, proof of soundness and termination for optimizations written in Varia, and implementation techniques for efficient execution.

Publications, presentations and drafts

  1. Harvard DEAS technical report TR-13-05.
  2. Poster for PLDI 2005.

Send comments to Kevin Redwine and Kelly Heffner