URACAM: A Unified Register Allocation, Cluster Assignment and Modulo Scheduling Approach
Josep M. Codina, Jesus Sanchez and Antonio Gonzalez
- Full Paper(.ps version)
This work presents a modulo scheduling framework for clustered ILP processors
that integrates the cluster assignment, instruction scheduling and register
allocation steps in a single phase. This unified approach is more effective
than traditional approaches based on sequentially performing some (or all)
of the three steps, since it allows to optimize the global code generation
problem, instead of searching for optimal solutions to each individual step.
Besides, it avoids the iterative nature of traditional approaches, which
require repeated applications of the three steps until a valid solution
is found. The proposed framework includes a mechanism to insert spill code
on-the-fly and heuristics to evaluate the quality of partial schedules
considering simultaneously inter-cluster communications, memory pressure and
register pressure. Transformations that allow to trade pressure on a type of
resource for another resource are also included. We show that the proposed
technique outperforms previously proposed techniques. For instance, the
average speed-up for the SPECfp95 is 36% for a 4-cluster configuration.
Please contact our
webadmin with any comments or changes.
Unless explicitly stated otherwise, all material is
copyright © The University of Edinburgh.