Scheduling expression trees for delayed-load architectures

  • Authors:
  • R. Venugopal;Y. N. Srikant

  • Affiliations:
  • Hewlett Packard Indian Software Operations, 29, Cunningham Road, Bangalore 560052, India;Department of Computer Science and Automation, Indian Institute of Science, Bangalore 560012, India

  • Venue:
  • Journal of Systems Architecture: the EUROMICRO Journal
  • Year:
  • 2002

Quantified Score

Hi-index 0.00

Visualization

Abstract

In this paper we consider the problem of scheduling expression trees on delayed-load architectures. The problem tackled here takes root from the one considered in [Proceedings of the ACM SIGPLAN '91 Conf. on Programming Language Design and Implementation, 1991. p. 256] in which the leaves of the expression trees all refer to memory locations. A generalization of this involves the situation in which the trees may contain register variables, with the registers being used only at the leaves. Solutions to this generalization are given in [ACM Trans. Prog. Lang. Syst. 17 (1995) 740, Microproc. Microprog. 40 (1994) 577]. This paper considers the most general case in which the registers are reusable. This problem is tackled in [Comput. Lang. 21 (1995) 49] which gives an approximate solution to the problem under certain assumptions about the contiguity of the evaluation order. Here we propose an optimal solution (which may involve even a non-contiguous evaluation of the tree). The schedule generated by the algorithm given in this paper is optimal in the sense that it is an interlock-free schedule which uses the minimum number of registers required. An extension to the algorithm incorporates spilling. The problem as stated in this paper is an instruction scheduling problem. However, the problem could also be rephrased as an operations research problem with a difference in terminology.