Meta-Analysis for Code Improving Transformations

Problem Description

Decades of work in the compilers community has resulted in numerous overlapping techniques for transforming code.  These techniques, however, often interact in ways which are still not well-understood.  For example, it is not uncommon for certain transformations to create or destroy opportunities to perform other transformations.  Recent work has looked at how to formally specify existing transformations in such a way that a meta-level analysis tool can automatically determine when and in what order code improving transformations should be applied.  Recent work has also looked at numerous heuristics for searching the space of possible optimizations.  For this project you will develop a specification language for some of the optimizations you have seen in class and then use this as input to a meta-level program analysis tool which will make intelligent decisions about how to optimize an input program.

What you need to do

  1. Develop or modify an existing  language for formally specifying some interesting subset of the code transformations you have learned about in class.
  2. Write a compiler tool to take in a formal specification and produces a pass that correctly applies it.
  3. Use this tool to perform experiments on the interaction of optimization.
  4. Time permitting, write a meta-level compiler pass that takes in a program and a set of transformation specifications and selects an "optimization strategy" for each procedure in the program either based solely on the specifications or based on an encoding of what you learned in step 3.
  5. Write of your work, including your specification language and performance results.
  6. Your contact person for this project is James Ezick

References

  1. An Approach for Exploring Code Improving Transformations, Deborah L. Whitfield and Mary Lou Soffa
  2. Adaptive Optimization in the Jalapeno JVM, Matthew Arnold, et. al.
  3. Optimizing for Reduced Code Space using Genetic Algorithms, Keith Cooper, et. al.

Last modified: Monday, March 12, 2001 04:10:22 PM
ezick@cs.cornell.edu