BS in Computer Engineering
Computer Engineering Department
The placement of spill code plays an important role in the register allocator of an optimizing compiler. Many computer architectures possess a register linkage convention that dictates which registers are preserved across function calls and which are not. This project addresses the problem of optimizing spill code that is associated with register linkage conventions.
This algorithm was created by Dr. Chris Lupo and is described in the paper Beyond Register Allocation: a Novel Algorithm for Spill-Code Placement. The algorithm was implemented for GCC 2.5.7 for a PA-RISC architecture . The work in this project will involve porting the existing code to the newest version of GCC, v4.4.3, and modifying it for use with the x86 architecture.
To solve the problem of placing spill code associated with procedure call conventions, an algorithm based on the max-flow min-cut theorem will be used.