Minimum Register Instruction Scheduling: A New Approach for Dynamic Instruction Issue Processors

  • Authors:
  • Ramaswamy Govindarajan;Chihong Zhang;Guang R. Gao

  • Affiliations:
  • -;-;-

  • Venue:
  • LCPC '99 Proceedings of the 12th International Workshop on Languages and Compilers for Parallel Computing
  • Year:
  • 1999

Quantified Score

Hi-index 0.00

Visualization

Abstract

Modern superscalar architectures with dynamic scheduling and register renaming capabilities have introduced subtle but important changes into the tradeoffs between compile-time register allocation and instruction scheduling. In particular, it is perhaps not wise to increase the degree of parallelism of the static instruction schedule at the expense of excessive register pressure which may result in additional spill code. To the contrary, it may even be beneficial to reduce the register pressure at the expense of constraining the degree of parallelism of the static instruction schedule. This leads to the following interesting problem: given a data dependence graph (DDG) G, can we derive a schedule S for G that uses the least number of registers ? In this paper, we present a heuristic approach to compute the near-optimal number of registers required for a DDG G (under all possible legal schedules). We propose an extended list-scheduling algorithm which uses the above number of required registers as a guide to derive a schedule for G that uses as few registers as possible. Based on such an algorithm, an integrated approach for register allocation and instruction scheduling for modern superscalar architectures can be developed.