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.
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.