Abstract
Register allocation and instruction scheduling are often separated due to the complexity of each. But if register allocation is performed before scheduling, it may introduce artificial data precedence, keeping the instruction scheduler from doing its best job. On the other hand, waiting until after scheduling to perform register allocation may produce impossible schedules. In this paper we present a unified approach to instruction scheduling and global (beyond basic blocks) register allocation.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Cocke J and Markstein V. The evolution of RISC technology at IBM. IBM J. Research and Development 34: 1 (January 1990), pp. 4–11.
Hennessy JL and Patterson DA. Computer Architecture A Quantitative Approach. Morgan Kaufmann Publishers, Inc., San Mateo, Calif., 1990.
Colwell RP, Nix RP, O’Donnell JJ, Papworth DB, and Rodman PK. A VLIW architecture for a trace scheduling compiler. In Proc. 2 nd Intl. Conf Architectural Support for Programming Languages and Operation Systems (ASPLOS II) (Palo Alto, October 1987 ). ACM, New York, 1987, pp. 180–192.
Colwell RP, Hall WE, Joshi CS, Papworth DB, Rodman PK, and Tomes JE. Architecture and implementation of a VLIW supercomputer. In Proc. IEEE Supercomputing ‘80 Conference, IEEE, New York, 1990, pp. 910–919.
Chaitin GJ, Auslander MA, Chandra AK, Cocke J, Hopkins ME, and Markstein PW. Register allocation via coloring. Comput. Lang. 6, 1 (January 1981), pp. 47–57.
Chaitin GJ. Register allocation and spilling via graph coloring. In Proc. ACM SIGPLAN ‘82 Symp. Compiler Construction (Boston, June 1982 ). ACM, New York, 1982, pp. 98–105.
Bernstein D, Goldin DQ, Golumbic MC, Krawczyk H, Mansour Y, Nahshon I, and Pinter RY. Spill code minimization techniques for optimizing compilers. In Proc. ACM SIGPLAN ‘89 Conf. Programming Language Design and Implementation (Portland, June 1989 ). ACM, New York, 1989, pp. 258–263.
Briggs P, Cooper KD, Kennedy K, and Torczon L. Coloring heuristics for register allocation. In Proc. ACM SIGPLAN ‘89 Cont. Programming Language Design and Implementation (Portland, June 1989 ). ACM, New York, 1989, pp. 275–284.
Chow FC and Hennessy JL. The priority-based coloring approach to register allocation. ACM Trans. Program. Lang Syst. 12, 4 (October 1990), pp. 501–536.
Fisher JA. The optimization of horizontal microcode within and beyond basic blocks: An application of processor scheduling with resources. Ph.D. Thesis, New York Univ., New York, N.Y., 1979.
Fisher JA., Ellis JR, Ruttenberg JC, and Nicolau A. Parallel processing: A smart compiler and a dumb machine. In Proc. ACM SIGPLAN’84 Symp. Compiler Construction (Montreal, June 1984 ). ACM, New York, 1984, pp. 37–47.
Nicolau A. Parallelism, memory anti-aliasing and correctness for trace scheduling compilers. Ph.D. Thesis, Yale Univ., New Haven, Conn., 1984.
Ellis JR. Bulldog A Compiler for VLIW Architectures. MIT Press, Cambridge, MA, 1986. Also Ph.D. Thesis, Yale Univ., New Haven, Conn., February 1985.
Charlesworth AE. An approach to scientific array processing: the architectural design of the AP-120B/FPS164 family. IEEE Computer 14: 9 (September 1981), pp. 18–27.
Rau BR and Glaeser CD. Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing. In Proc. 14 th Annual MicroprogrammingWorkshop (October 1981). IEEE, 1981, pp. 183–198.
Aiken A and Nicolau A. Optimal loop parallelization. In Proc. ACM SIGPLAN ‘88 Conf Programming Language Design and Implementation (Atlanta, June 88 ). ACM, New York, 1988, pp. 308–317.
Aiken A. Compaction-based parallelization. Ph.D. Thesis, Cornell Univ, Ithaca, N.Y., 1988.
Lam M. Software Pipelining: An effective scheduling technique for VLIW machines. In Proc. ACM SIGPLAN ‘88 Conf. Programming Language Design and Implementation (Atlanta, June 1988 ). ACM, New York, 1988, pp. 318–328.
Dehnert JC, Hsu PY, and Bratt JP. Overlapped loop support in the Cydra 5. In Proc. 3 rd Intl. Conf. Architectural Support for Programming Languages and Operation Systems (ASPLOS III) (Boston, April 1989 ). ACM, New York, 1989, pp. 26–39.
Uniejewski J. SPEC Benchmark Suite: Designed for today’s advanced systems. SPEC Newsletter 1,1 (Fall 1989 ).
Cmelik RF, Kong SI, Ditzel DR, and Kelly EJ. An analysis of MIPS and SPARC instruction set utilization on the SPEC benchmarks. In Proc. 4 th Intl. Conf. Architectural Support for Programming Languages and Operating Systems (ASPLOS IV) (Santa Clara, April 1991 ). ACM, New York, 1991, pp. 290–302.
McMahon FH. The Livermore Fortran Kernels: A computer test of the numerical performance range. Tech. Report UCRL-53745, University of California, Lawrence Livermore National Laboratory, December 1986.
Feo it An analysis of the computational and parallel complexity of the Livermore Loops. Parallel Computing 7(1988), pp. 163–185.
Callahan D and Koblenz B. Register allocation via hierarchical graph coloring. In Proc. ACM SIGPLAN ‘81 Conf Programming Language Design and Implementation (Toronto, June 91 ). ACM, New York, 1991, pp. 192–203.
Briggs P, Cooper K, and Torczon L. Aggressive live range splitting. Tech. report, Rice Univ., Houston, Tex., 1991.
Bradlee DG, Eggers SJ, and Henry RR. Integrating register allocation and instruction scheduling for RISCs. In Proc. 4th Intl. Conf. Architectural Support for Programming Languages and Operating Systems (ASPLOS IV) (Santa Clara, April 1991 ). ACM, New York, 1991. pp. 122–131.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1992 Springer-Verlag London
About this paper
Cite this paper
Freudenberger, S.M., Ruttenberg, J.C. (1992). Phase Ordering of Register Allocation and Instruction Scheduling. In: Giegerich, R., Graham, S.L. (eds) Code Generation — Concepts, Tools, Techniques. Workshops in Computing. Springer, London. https://doi.org/10.1007/978-1-4471-3501-2_9
Download citation
DOI: https://doi.org/10.1007/978-1-4471-3501-2_9
Publisher Name: Springer, London
Print ISBN: 978-3-540-19757-7
Online ISBN: 978-1-4471-3501-2
eBook Packages: Springer Book Archive