|Volume 7, Issue 1 -
Massively Scalar Compiler Project
Preston Briggs, Keith Cooper, Tim Harvey, Ken Kennedy, Rob Shillingsburg, Lisa Thomas, Linda Torczon, Rice University; Steve Carr, Michigan Technological University
The Massively Scalar Compiler Project at Rice University is an ARPA- sponsored project investigating compilation techniques for modern microprocessors. The project's goal is to improve the level of routinely attainable performance on modern microprocessors. The research focuses on several issues that arise in uniprocessor systems: compiler management of the memory hierarchy, code generation for microprocessors with instruction-level parallelism, and classical code optimization. While the project does not directly address multiprocessor parallelism, its results should find application in compilers for massively parallel machines because they are almost always built from microprocessors.
A key product of the project is a laboratory compiler. When completed, it will include an optimizer and code generator for the ILOC 93 intermediate language. The optimizer consists of a series of passes, including constant propagation, partial redundancy elimination, global value numbering, strength reduction, and dead code elimination. The code generator will include phases to perform address mode selection, instruction scheduling, and register allocation. A separate tool allows program-driven simulation of the memory-hierarchy behavior of procedures that have been compiled with the system.
The code for the compiler is being written in C using WEB and will be distributed, as completed, through the CRPC's Softlib system. The code is intended to fulfill two different purposes. It can provide working implementations of the techniques for researchers interested in using ILOC 93. The individual WEBs should also serve as reference implementations for people writing new versions of these methods into their own compilers. Of course, the WEBs contain a level of detail not found in published papers. The first WEBs should be available from Softlib in November 1993.
A source-to-source translator has been built to perform register and cache blocking on Fortran codes. It uses the ParaScope system as a base and is included in the ParaScope 1.0 distribution (available from Softlib).
The current documentation on ILOC 93 is available from Softlib as CRPC technical report CRPC-TR93323. The report describes ILOC 93 and its use.
Table of Contents