Abstract
Modern superscalar architectures with dynamic scheduling and register renaming capabilities have introduced subtle but important changes into the tradeoffs between compile-time register allocation and instruction scheduling. In particular, it is perhaps not wise to increase the degree of parallelism of the static instruction schedule at the expense of excessive register pressure which may result in additional spill code. To the contrary, it may even be beneficial to reduce the register pressure at the expense of constraining the degree of parallelism of the static instruction schedule. This leads to the following interesting problem: given a data dependence graph (DDG) G, can we derive a schedule S for G that uses the least number of registers ?
In this paper, we present a heuristic approach to compute the near-optimal number of registers required for a DDG G (under all possible legal schedules). We propose an extended list-scheduling algorithm which uses the above number of required registers as a guide to derive a schedule for G that uses as few registers as possible. Based on such an algorithm, an integrated approach for register allocation and instruction scheduling for modern superscalar architectures can be developed.
This work was supported by research grants NSF CCR-9808522, NSF MIPS-970715, and NSF CISE-9726388.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
A. V. Aho, R. Sethi, and J. D. Ullman. Compilers —Principles, Techniques, and Tools. Addison-Wesley Publishing Co., Reading, MA, corrected edition, 1988.
D. Berson, R. Gupta, and M. L. Soffa. URSA: A Unified ReSource Allocator for registers and functional units in VLIW architectures. In Proc. of the Conf. on Parallel Architectures and Compilation Techniques, PACT’ 98, Paris, France, June 1998.
D. Berson, R. Gupta, and M. L. Soffa. Integrated instruction scheduling and register allocation techniques. In Proc. of the Eleventh International Workshop on Languages and Compilers for Parallel Computing, LNCS, Springer Verlag, Chapel Hill, NC, Aug. 1998.
D. G. Bradlee, S. J. Eggers, and R. R. Henry. Integrating register allocation and instruction scheduling for RISCs. In Proc. of the Fourth Intl. Conf. on Architectural Support for Programming Languages and Operating Systems, pages 122–131, Santa Clara, CA, Apr. 1991.
P. Briggs, K. D. Cooper, and L. Torczon. Rematerialization. In Proc. of the ACM SIGPLAN’ 92 Conf. on Programming Language Design and Implementation, pages 311–321, San Francisco, CA, June 1992.
G. J. Chaitin. Register allocation and spilling via graph coloring. In Proc. of the SIGPLAN’ 82 Symp. on Compiler Construction, pages 98–105, Boston, MA, June 1982.
P. P. Chang, D. M. Lavery, S. A. Mahlke, W. Y. Chen, and W. W. Hwu The importance of prepass code scheduling for superscalar and superpipelined processors IEEE Transactions on Computers, 44(3):353–370, March 1995.
L. George and A. W. Appel. Iterated register coalescing. In Conf. Record of the 23rd ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages, pages 208–218, St. Petersburg, FL, Jan. 1996.
P. B. Gibbons and S. S. Muchnick. Efficient instruction scheduling for a pipelined architecture. In Proc. of the SIGPLAN’ 86 Symp. on Compiler Construction, pages 11–16, Palo Alto, CA, June 1986.
M.C. Golumbic. Algorithmic Graph Theory and Perfect Graphs. Academic Press, New York, 1980.
J. R. Goodman and W-C. Hsu. Code scheduling and register allocation in large basic blocks. In Conf. Proc., 1988 Intl. Conf. on Supercomputing, pages 442–452, St. Malo, France, July 1988.
R. Govindarajan, C. Zhang, and G. R. Gao. Minimum register instruction scheduling: A new approach for dynamic instruction issue processors. CAPSL Technical Memo, Dept. of Electrical and Computer Engg., University of Delaware, Newark, DE, July 1999.
Madhavi G. Valluri and R. Govindarajan. Evaluating register allocation and instruction scheduling techniques in out-of-order issue processors. in Proc. of the Conf. on Parallel Architectures and Compilation Techniques, PACT’ 99, Newport Beach, CA, Oct., 1999.
S.S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers, Inc., San Francisco, CA, 1997.
C. Norris and L. L. Pollock. Register allocation over the Program Dependence Graph. In Proc. of the ACM SIGPLAN’ 94 Conf. on Programming Language Design and Implementation, pages 266–277, Orlando, FL, June 20–24, 1994.
C. Norris and L. L. Pollock. An experimental study of several cooperative register allocation and instruction scheduling strategies. In Proc. of the 28th Ann. Intl. Symp. on Microarchitecture, pages 169–179, Ann Arbor, MI, Nov. 1995.
S. S. Pinter. Register allocation with instruction scheduling: A new approach. In Proc. of the ACM SIGPLAN’ 93 Conf. on Programming Language Design and Implementation, pages 248–257, Albuquerque, NM, June 1993.
J.E. Smith and G. Sohi. The microarchitecture of superscalar processors. Proc. of the IEEE, 83(12):1609–1624, Dec. 1995.
Raúl Silvera, Jian Wang, Guang R. Gao, and R. Govindarajan. A register pressure sensitive instruction scheduler for dynamic issue processors. In Proc. of the Conf. on Parallel Architectures and Compilation Techniques, PACT’ 97, pages 78–89, San Francisco, CA, June 1997.
H. S. Warren, Jr. Instruction scheduling for the IBM RISC System/6000 processor. IBM Jl. of Research and Development, 34(1):85–92, Jan. 1990.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2000 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Govindarajan, R., Zhang, C., Gao, G.R. (2000). Minimum Register Instruction Scheduling: A New Approach for Dynamic Instruction Issue Processors. In: Carter, L., Ferrante, J. (eds) Languages and Compilers for Parallel Computing. LCPC 1999. Lecture Notes in Computer Science, vol 1863. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44905-1_5
Download citation
DOI: https://doi.org/10.1007/3-540-44905-1_5
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-67858-8
Online ISBN: 978-3-540-44905-8
eBook Packages: Springer Book Archive