Spill-free parallel scheduling of basic blocks

This paper concerns the problem of spill-free scheduling of basic blocks on a processor with multiple functional units and a limited number of registers. The problem of minimizing the schedule length is well known to be computationally intractable. We present a heuristic for the problem, a general divide-and-conquer paradigm that converts any insensitive scheduling algorithm-one that is insensitive to register constraints-to one that respects register constraints. We estimate the goodness of the heuristic by relating its performance to that of the insensitive algorithm. We also present experimental results obtained by applying the heuristic to basic blocks from the SPEC benchmark programs, for several machine models.

[1]  B. Ramakrishna Rau,et al.  Iterative modulo scheduling: an algorithm for software pipelining loops , 1994, MICRO 27.

[2]  Shlomit S. Pinter,et al.  Register allocation with instruction scheduling , 1993, PLDI '93.

[3]  Izidor Gertner,et al.  On the Complexity of Scheduling Problems for Parallel/Pipelined Machines , 1989, IEEE Trans. Computers.

[4]  John R. Ellis,et al.  Bulldog: A Compiler for VLIW Architectures , 1986 .

[5]  Michael Rodeh,et al.  Scheduling Arithmetic and Load Operations in Parallel with No Spilling , 1989, SIAM J. Comput..

[6]  Jeffrey D. Ullman,et al.  The Generation of Optimal Code for Arithmetic Expressions , 1970, JACM.

[7]  R. Ravi,et al.  Approximation through multicommodity flow , 1990, Proceedings [1990] 31st Annual Symposium on Foundations of Computer Science.

[8]  C. Norris,et al.  A schedular-sensitive global register allocator , 1993, Supercomputing '93.

[9]  Ronald L. Graham,et al.  Bounds on Multiprocessing Timing Anomalies , 1969, SIAM Journal of Applied Mathematics.

[10]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[11]  Shlomit S. Pinter,et al.  Register allocation with instruction scheduling: a new approach , 1996, Journal of Programming Languages.

[12]  Ravi Sethi Complete Register Allocation Problems , 1975, SIAM J. Comput..

[13]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[14]  T. C. Hu Parallel Sequencing and Assembly Line Problems , 1961 .

[15]  Denis Trystram,et al.  A New Insight into the Coffman-Graham Algorithm , 1994, SIAM J. Comput..

[16]  Susan J. Eggers,et al.  Integrating register allocation and instruction scheduling for RISCs , 1991, ASPLOS IV.

[17]  Shui Lam,et al.  Worst Case Analysis of Two Scheduling Algorithms , 1977, SIAM J. Comput..