Register Saturation in Superscalar and VLIW Codes

  • Sid Ahmed Ali Touati
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2027)


The registers constraints can be taken into account during the scheduling phase of an acyclic data dependence graph (DAG): any schedule must minimize the register requirement. In this work, we mathematically study and extend the approach which consists of computing the exact upper-bound of the register need for all the valid schedules, independently of the functional unit constraints. A previous work (URSA) was presented in [5,4]. Its aim was to add some serial arcs to the original DAG such that the worst register need does not exceed the number of available registers. We write an appropriate mathematical formalism for this problem and extend the DAG model to take into account delayed read from and write into registers with multiple registers types. This formulation permits us to provide in this paper better heuristics and strategies (nearly optimal), and we prove that the URSA technique is not sufficient to compute the maximal register requirement, even if its solution is optimal.


Critical Path Register Saturation Register Allocation Instruction Level Parallelism Maximal Antichain 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    A. Agrawal, P. Klein, and R. Ravi. Ordering Problems Approximated: Register Sufficiency, Single Processor Scheduling and Interval Graph Completion. internal research report CS-91-18, Brown University, Providence, Rhode Island, Mar. 1991.Google Scholar
  2. 2.
    P. Bergner, P. Dahl, D. Engebretsen, and M. O’Keefe. Spill Code Minimization via Interference Region Spilling. ACM SIG-PLAN Notices, 32(5):287–295, May 1997.CrossRefGoogle Scholar
  3. 3.
    D. Bernstein, D. Q. Goldin, M. C. Golumbic, H. Krawczyk, Y. Mansour, I. Nahshon, and R. Y. Pinter. Spill Code Minimization Techniques for Optimizing Compilers. SIGPLAN Notices, 24(7):258–263, July 1989. Proceedings of the ACM SIGPLAN’ 89 Conference on Programming Language Design and Implementation.CrossRefGoogle Scholar
  4. 4.
    D. Berson, R. Gupta, and M. Soffa. URSA: A unified ReSource allocator for registers and functional units in VLIW architectures. In Conference on Architectures and Compilation Techniques for Fine and Medium Grain Parallelism, pages 243–254, Orlando, Florida, Jan. 1993.Google Scholar
  5. 5.
    D. A. Berson. Unification of Register Allocation and Instruction Scheduling in Compilers for Fine-Grain Parallel Architecture. PhD thesis, Pittsburgh University, 1996.Google Scholar
  6. 6.
    D. G. Bradlee, S. J. Eggers, and R. R. Henry. Integrating Register Allocation and Instruction Scheduling for RISCs. ACM SIGPLAN Notices, 26(4):122–131, Apr. 1991.CrossRefGoogle Scholar
  7. 7.
    T. S. Brasier. FRIGG: A New Approach to Combining Register Assignment and Instruction Scheduling. Master thesis, Michigan Technological University, 1994.Google Scholar
  8. 8.
    D. Callahan and B. Koblenz. Register Allocation via Hierarchical Graph Coloring. SIGPLAN Notices, 26(6):192–203, June 1991. Proceedings of the ACM SIGPLAN’ 91 Conference on Programming Language Design and Implementation.CrossRefGoogle Scholar
  9. 9.
    G. J. Chaitin. Register allocation and spilling via graph coloring. ACM SIG-PLAN Notices, 17(6):98–105, June 1982.CrossRefMathSciNetGoogle Scholar
  10. 10.
    P. Crawley and R. P. Dilworth. Algebraic Theory of Lattices. Prentice Hall, Englewood Cliffs, 1973.zbMATHGoogle Scholar
  11. 11.
    J. R. Goodman and W.-C. Hsu. Code Scheduling and Register Allocation in Large Basic Blocks. In Conference Proceedings 1988 International Conference on Supercomputing, pages 442–452, St. Malo, France, July 1988.Google Scholar
  12. 12.
    C. Norris and L. L. Pollock. A Scheduler-Sensitive Global Register Allocator. In IEEE, editor, Supercomputing 93 Proceedings: Portland, Oregon, pages 804–813, 1109 Spring Street, Suite 300, Silver Spring, MD 20910, USA, Nov. 1993. IEEE Computer Society Press.Google Scholar
  13. 13.
    S. S. Pinter. Register Allocation with Instruction Scheduling: A New Approach. SIGPLAN Notices, 28(6):248–257, June 1993.CrossRefGoogle Scholar
  14. 14.
    M. Poletto and V. Sarkar. Linear scan register allocation. ACM Transactions on Programming Languages and Systems, 21(5):895–913, Sept. 1999.CrossRefGoogle Scholar
  15. 15.
    Schlansker, B. Rau, and S. Mahlke. Achieving High Levels of instruction-Level Parallelism with Reduced Hardware Complexity. Technical Report HPL-96-120, Hewlet Packard, 1994.Google Scholar
  16. 16.
    S.-A.-A. Touati. Optimal Register Saturation in Acyclic Superscalar and VLIW Codes. Research Report, INRIA, Nov. 2000.
  17. 17.
    S.-A.-A. Touati and F. Thomasset. Register Saturation in Data Dependence Graphs. Research Report RR-3978, INRIA, July 2000.

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Sid Ahmed Ali Touati
    • 1
  1. 1.INRIALe Chesnay cedexFrance

Personalised recommendations