Phase coupling and constant generation in an optimizing microcode compiler

The designer of an optimizing compiler must concern himself with the order in which optimization phases are performed; a pair of phases may be interdependent in the sense that each phase could benefit from information produced by the other. In a compiler for a horizontal target architecture, one such phase-ordering problem occurs between code-generation and compaction. Presented here is an overview of a research effort at Carnegie-Mellon University which has examined solutions to this problem. One aspect of the code generation problem-that of generating constants “intelligently”-is discussed in detail. A technique, called constant-unfolding, is described that can be used to produce code sequences that generate constants in “unusual” ways during execution; such code sequences can lead to more compact code when the literal field of the microinstruction is a “bottleneck”.

[1]  Tilak Agerwala Microprogram Optimization: A Survey , 1976, IEEE Transactions on Computers.

[2]  David Johns Dewitt A machine independent approach to the production of optimized horizontal microcode. , 1976 .

[3]  Bruce R. Schatz,et al.  An Overview of the Production-Quality Compiler-Compiler Project , 1980, Computer.

[4]  Michael D. Poe Heuristics for the global optimization of microprograms , 1980, SIGM.

[5]  Bruce D. Shriver,et al.  Local Microcode Compaction Techniques , 1980, CSUR.

[6]  Nils J. Nilsson,et al.  Problem-solving methods in artificial intelligence , 1971, McGraw-Hill computer science series.

[7]  Utpal Banerjee,et al.  Time and Parallel Processor Bounds for Fortran-Like Loops , 1979, IEEE Transactions on Computers.

[8]  Simon C. Steely,et al.  Issues of the design of a low level microprogramming language for global microcode compaction , 1981, MICRO 14.

[9]  Roderic Geoffrey Galton Cattell,et al.  Formalization and Automatic Derivation of Code Generators , 1982 .

[10]  Joseph Allen Fisher,et al.  The Optimization of Horizontal Microcode within and Beyond Basic Blocks: an Application of Processor Scheduling with Resources , 2018 .

[11]  Bruce D. Shriver,et al.  Microcode compaction: looking backward and looking forward , 1981, AFIPS '81.

[12]  William Graham Wood The computer aided design of microprograms , 1979 .

[13]  Patrick Wayne Mallett Methods of compacting microprograms , 1979 .

[14]  Samuel H. Fuller PDP-11 40E microprogramming reference manual , 1976 .

[15]  W. W. Bledsoe,et al.  Review of "Problem-Solving Methods in Artificial Intelligence by Nils J. Nilsson", McGraw-Hill Pub. , 1971, SGAR.

[16]  J. Meigs,et al.  WHO Technical Report , 1954, The Yale Journal of Biology and Medicine.