Abstract
Trade-offs between code selection, register allocation, and instruction scheduling are inherently interdependent, especially when compiling for fine-grain parallel architectures. However, the conventional approach to compiling for such machines arbitrarily separates these phases so that decisions made during any one phase place unnecessary constraints on the remaining phases. Mutation Scheduling attempts to solve this problem by combining code selection, register allocation, and instruction scheduling into a unified framework in which trade-offs between the functional, register, and memory bandwidth resources of the target architecture are made “on the fly” in response to changing resource constraints and availability.
This work was supported in part by NSF grant CCR8704367 and ONR grant N0001486K0215.
This is a preview of subscription content, log in via an institution.
Preview
Unable to display preview. Download preview PDF.
References
A. Aho, R. Sethi, and J.D. Ullman. Compilers: Principles, Techniques and Tools. Addison-Wesley, Reading, MA, 1986.
D. Berson, R. Gupta, and M.L. Soffa. Resource spackling: A framework for integrating register allocation in local and global schedulers. In Working Conf. on Par. Arch. and Compilation Techniques, August 1994.
D. Bradlee, S. Eggers, and R. Henry. Integrating register allocation and instruction scheduling for riscs. In ASPLOS, April 1991.
P. Briggs, K. Cooper, and L. Torczon. Rematerialization. In PLDI, 1992.
R. Cytron and J. Ferrante. What's in a name? In ICPP, pages 19–27, August 1987.
R. Cytron, J. Ferrente, B. Rosen, M. Wegman, and K. Zadeck. Efficiently computing static single assignment form and the control dependence graph. TOPLAS, 13(4):451–490, October 1991.
K. Ebcioglu. Some design ideas for a vliw architecture for sequential-natured software. In IFIP Proceedings, 1988.
M. Girkar and C.D. Polychronopoulos. Automatic extraction of functional parallelism from ordinary programs. TOPADS, 3(2):166–178, March 1992.
J. R. Goodman and W. Hsu. Code scheduling and register allocation in large basic blocks. In ICS, July 1988.
R. Gupta and M. L. Soffa. Region scheduling: An approach for detecting and redistributing parallelism. TOSE, 16(4), April 1990.
D. J. Kuck, Y. Muraoka, and S. C. Chen. On the number of operations simultaneously executable in fortran-like programs and their resulting speedup. TOC, December 1972.
H. Massalin. Superoptimizer: A look at the smallest program. In ASPLOS, 1987.
S. Moon and K. Ebcioglu. An efficient resource constrained global scheduling technique for superscalar and vliw processors. In MICRO, Portland, OR, December 1992.
T. Nakatani and K. Ebcioglu. Using a lookahead window in a compaction-based parallelizing compiler. In MICRO, 1990.
A. Nicolau. Uniform parallelism exploitation in ordinary programs. In ICPP, 1985.
A. Nicolau and R. Potasman. Incremental tree height reduction for high level synthesis. In DAC, San Francisco, CA, June 1991.
A. Nicolau, R. Potasman, and H. Wang. Register allocation, renaming and their impact on parallelism. In Lang. and Compilers for Par. Comp., number 589 in LNCS Series. Springer-Verlag, 1991.
S. Novack and A. Nicolau. An efficient global resource constrained technique for exploiting instruction level parallelism. In ICPP, St. Charles, IL, August 1992.
S. Novack and A. Nicolau. Trailblazing: A hierarchical approach to percolation scheduling. Technical Report TR-92-56, Univ. of Calif. Irvine, 1992. Also appears in the Proceedings of the 1993 International Conference on Parallel Processing, St. Charles, IL., August 1993.
S. Novack and A. Nicolau. Resource-directed loop pipelining. Technical report, Univ. of Calif., Irvine, Dept. of Information and Computer Science, 1994.
R. Potasman. Percolation-Based Compiling for Evaluation of Parallelism and Hardware Design Trade-Offs. PhD thesis, Univ. of Calif. Irvine, 1991.
B.R. Rau and C.D. Glaeser. Efficient code generation for horizontal architectures: Compiler techniques and architectural support. In Symp. on Comp. Arch., April 1982.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1995 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Novack, S., Nicolau, A. (1995). Mutation scheduling: A unified approach to compiling for fine-grain parallelism. In: Pingali, K., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1994. Lecture Notes in Computer Science, vol 892. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0025868
Download citation
DOI: https://doi.org/10.1007/BFb0025868
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-58868-9
Online ISBN: 978-3-540-49134-7
eBook Packages: Springer Book Archive