Code scheduling and register allocation in large basic blocks
Journal
International Conference on Supercomputing
Pages
88-98
Date Issued
2014
Author(s)
Goodman, J.R.
Abstract
We discuss the issues about the interdependency between code scheduling and register allocation. We present two methods as solutions: (1) an integrated code scheduling technique; and (2) a DAG-driven register allocator. The integrated code scheduling method combines two scheduling techniques�Xone to reduce pipeline delays and the other to minimize register usage�Xinto a single phase. By keeping track of the number of available registers, the scheduler can choose the appropriate scheduling technique to schedule a better code sequence. The DAG-driven register allocator uses a dependency graph to assist in assigning registers; it introduces much less extra dependency than does an ordinary register allocator. For large basic blocks, both approaches were shown to generate more efficient code sequences than conventional techniques in the simulations.
Type
conference paper
