Abstract
A machine description facility allows compiler writers to specify machine execution constraints to the optimization and scheduling phases of an instructionlevel parallelism (ILP) optimizing compiler. The machine description (MDES) facility should support quick development and easy maintenance of machine execution constraint descriptions by compiler writers. However, the facility should also allow compact representation and efficient usage of the MDES during compilation. This paper advocates a model that allows compiler writers to develop the MDES in a high-level language, which is then translated into a low-level representation for efficient use by the compiler. The discrepancy between the requirements of the high-level language and the low-level representation is reconciled with a collection of transformations that derive efficient lowlevel representations from the easy-to-understand high-level descriptions. In order to support these transformations, a novel approach to representing machine execution constraints has been developed. Detailed and precise descriptions of the execution constraints for the HP PA7100, Intel Pentium, SUN SuperSPARC, and AMD-K5 processors, as well as two hypothetical wider-issue processor configurations, are analyzed to show the advantage of using this new representation. The results show that performing these transformations and utilizing the new representation allow easy-to-maintain detailed descriptions written in high-level languages to be efficiently used by ILP-optimizing compilers.
Similar content being viewed by others
REFERENCES
J. C. Dehnert and R. A. Towle, Compiling for the Cydra 5, J. Supercomputing, 7:181–227 (January 1993).
P. G. Lowney, S. M. Freudenberger, T. J. Karzes, W. D. Lichtenstein, R. P. Nix, J. S. O'Donnell, and J. C. Ruttenberg, The multiflow trace scheduling compiler, J. Supercomputing, 7:51–142 (January 1993).
J. C. Gyllenhaal, An efficient framework for performing execution-constraint-sensitive transformations that increase instruction-level parallelism, Ph.D. Thesis, Department of Electrical and Computer Engineering, University of Illinois, Urbana, Illinois (1997).
J. C. Gyllenhaal, B. R. Rau, and W. W. Hwu, Hmdes version 2.0 specification, Technical Report IMPACT-96–3, The IMPACT Research Group, University of Illinois, Urbana, Illinois (1996).
J. C. Gyllenhaal, A machine description language for compilation, Master's Thesis, Department of Electrical and Computer Engineering, University of Illinois, Urbana, Illinois (1994).
P. P. Chang, S. A. Mahlke, W. Y. Chen, N. J. Warter, and W. W. Hwu, IMPACT: An architectural framework for multiple-instruction-issue processors, Proc. 18th Int. Symp. Computer Archit., pp. 266–275 (June 1991).
R. A. Bringmann, Compiler-controlled speculation, Ph.D. Thesis, Department of Computer Science, University of Illinois, Urbana, Illinois (1995).
E. S. Davidson, L. E. Shar, A. T. Thomas, and J. H. Patel, Effective control for pipelined computers, Spring COMPCON'75 Digests, pp. 181–184 (February 1975).
G. Blanck and S. Krueger, The superSPARC microprocessor, COMPCON Spring, pp. 136–141 (1992).
P. H. Winston, Artificial Intelligence, Addison-Wesley, Reading, Massachusetts (1984).
T. Asprey, G. S. Averill, E. DeLano, R. Mason, B. Weiner, and J. Yetter, Performance features of the PA7100 microprocessor, IEEE Micro, pp. 22–35 (June 1993).
Intel, The Pentium Microprocessor, Santa Clara, California (1993).
Dave Christie, Developing the AMD-K5 architecture, IEEE Micro, pp. 16–26 (April 1996).
B. R. Rau, Iterative modulo scheduling: An algorithm for software pipelining loops, Proc. 27th Ann. Int. Symp. Microarchit., pp. 63–74 (November 1994).
A. Aho, R. Sethi, and J. Ullman, Compilers: Principles, Techniques, and Tools, Addison-Wesley, Reading, Massachusetts (1986).
R. L. Kleir, A representation for the analysis of microprogram operation, Proc. Seventh Ann. Workshop Microprogr. (September 1974).
D. J. DeWitt, A control-word model for detecting conflicts between microprograms, Proc. Eighth Ann. Workshop Microprogr. (September 1975).
J. A. Fisher, The optimization of horizontal microcode within and beyond basic blocks; An application of processor scheduling with resources. Ph.D. Thesis, New York University (1979).
P. M. Kogge, The Architecture of Pipelined Computers, McGraw-Hill, New York (1991).
A. E. Eichenberger and E. S. Davidson, A reduced multipipeline machine description that preserves scheduling constraints, Proc. Confer. Progr. Lang. Design and Implementation, pp. 12–20 (May 1996).
S. A. Mahlke, W. Y. Chen, J. C. Gyllenhaal, W. W. Hwu, P. P. Chang, and T. Kiyohara, Compiler code transformations for superscalar-based high-performance systems, Proc. Supercomputing, pp. 808–817 (November 1992).
S. A. Mahlke, Exploiting Instruction Level Parallelism in the Presence of Conditional Branches, Ph.D. Dissertation, Department of Electrical and Computer Engineering, University of Illinois, Urbana, Illinois (1996).
M. Schlansker, V. Kathail, and S. Anik, Height reduction of control recurrences for ILP processors, Proc. 27th Int. Symp. Microarchit., pp. 40–51 (December 1994).
W. W. Hwu, R. E. Hank, D. M. Gallagher, S. A. Mahlke, D. M. Lavery, G. E. Haab, J. C. Gyllenhaal, and D. I. August, Compiler technology for future microprocessors, Proc. IEEE, 83(12):1625–1640 (December 1995).
D. M. Gallagher, W. Y. Chen, S. A. Mahlke, J. C. Gyllenhaal, and W. W. Hwu, Dynamic memory disambiguation using the memory conflict buffer, Proc. Sixth Int. Conf. Archit. Support Progr. Lang. Oper. Syst., pp. 183–193 (October 1994).
T. A. Proebsting and C. W. Fraser, Detecting pipeline structural hazards quickly, 21st Ann. ACM SIGPLAN-SIGACT Symp. Principles of Progr. Lang., pp. 280–286 (January 1994).
T. Müller, Employing finite automata for resource scheduling, Proc. 26th Ann. Int. Symp. Microarchit., pp. 12–20 (December 1993).
V. Bala and N. Rubin, Efficient instruction scheduling using finite state automata, Int. J. Parallel Progr., pp. 53–82 (April 1997).
Rights and permissions
About this article
Cite this article
Gyllenhaal, J.C., Hwu, WM.W. & Rau, B.R. Optimization of Machine Descriptions for Efficient Use. International Journal of Parallel Programming 26, 417–447 (1998). https://doi.org/10.1023/A:1018750515365
Issue Date:
DOI: https://doi.org/10.1023/A:1018750515365