The objective of this project is to implement a simple interprocedural register allocation that attempts to minimize register spill code by propagating register usage information through the program call graph. By examining the register usage information at each call site, the intraprocedural register allocator can avoid assigning registers already used in the called routines and minimizing spill code. Stretch goal for this project would be a link time register allocator. In this register allocation is deferred till linking of the code to optimize the allocation.


Vivek Pandya


  • Mehdi Amini
  • Hal Finkel