Scheduliing expression trees with register variables on delayed-load architectures

https://doi.org/10.1016/0165-6074(94)90102-3Get rights and content

Abstract

In this paper, we describe an optimal, linear time instruction scheduling algorithm for scheduling expression trees on delayed-load architectures with unit latency times. The algorithm is a generalization of the algorithm due to Proebsting and Fischer and handles expression trees with register variables. Register variables are useful in code generation across basic block boundaries and in code generation from DAGs. Register allocation is integrated with instruction scheduling. Spilling is handled optimally. The algorithm acts as a good heuristic for longer latency times and in code generation from DAGs.

References (13)

  • A.V. Aho et al.

    Code generation for expressions with common subexpressions

    J. ACM

    (Jan. 1977)
  • A.V. Aho et al.

    Compilers: Principles, Techniques and Tools

    (1986)
  • D. Bernstein et al.

    Scheduling arithmetic and load operations in parallel with no spilling

    SIAM J. Comput.

    (Dec. 1989)
  • M. Garey et al.

    Computers and Intractability A Guide to the Theory of NP-Completeness

    (1979)
  • P.B. Gibbons et al.

    Efficient instruction scheduling for a pipelined architecture

  • T.C. Hu

    Parallel sequencing and assembly line problems

    Opera. Res.

    (Nov. 1961)
There are more references available in the full text version of this article.

Cited by (1)

  • Scheduling expression trees for delayed-load architectures

    2002, Journal of Systems Architecture
    Citation Excerpt :

    Thus, an algorithm which handles register variables can avoid these stores and loads at the shared nodes of the DAG. Ref. [10] considers the problem in which one or more of the leaves of the tree contain values already loaded into registers. However, there is still the restriction that these registers are not used further in the evaluation of the tree.

1

R. Venugopal obtained his B. Tech. and MSc (Engg.) degrees in 1989 and 1992 respectively, both in Computer Science. Presently he is working towards his Ph.D. in Computer Science at the Indian Institute of Science, Bangalore. His areas of interest are compilers and computer architecture.

2

Y.N. Srikant received his Ph.D. in Computer Science from the Indian Institute of Science in 1986 where he is currently an Associate Professor. His current research interests are in the areas of parallelization, code generation, incremental compilation and parallel compilation. He has published more than 30 research papers in the area of compilers. He was awarded the Young Scientist medal in 1988 by the Indian National Science Academy for his work in compilers.

View full text