Code scheduling and register allocation in large basic blocks.
Journal
Proceedings of the International Conference on Supercomputing
Journal Volume
Part F130184
Pages
442-452
Date Issued
1988
Author(s)
Goodman, James 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-one to reduce pipeline delays and the other to minimize register usage-into 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. © 1988 ACM.
Other Subjects
Codes (symbols); Pipeline codes; Code scheduling; Code sequences; Conventional techniques; Dependency graphs; Integrated codes; Pipeline delay; Register allocation; Scheduling techniques; Scheduling
Type
conference paper
