Project and Goals
Scale
The project I am working on is the Scale (A Scalable Compiler for Analytic Experiments) Compiler. Scale is a compilation system designed to achieve high performance without neglecting flexibility or reusability. Scale has a functional frontend for C and FORTRAN that utilizes a new intermediate language, Scribble. A backend compiler exists for Sparc and Alpha systems. For more information on the Scale compiler, visit The Scale Home Page.
Backend Compiler for PowerPC
The task for my partner and I will be to create a backend for Scale for PowerPC. The existing PowerPC backend is simply a shell, so it will be our task to complete the existing framework.
Goals
Our goal is to finish fleshing out the framework for the PowerPC backend for the Scale compiler. The first task will be to produce a fully functional solution. Once functionality has been achieved, we hope to implement optimizations to improve performance. Determining which optimizations will be most effective will require research of the PowerPC ISA as well as various compiler optimization strategies. Julia and I both have experience writing compilers, but neither of us has extensive experience in compiler optimization.
Additional Thesis Preparation
In addition to achieving the basic project goals laid out by our mentor, I have an additional goal of doing research that can eventually be used toward my senior thesis. I will be writing a senior thesis during my fourth year and I would like to do my thesis in the field of compilers. I am hoping there will be sufficient opportunity to research topics that would lend themselves to such a project including hardware optimizations.