Abstract
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”.

This publication has 2 references indexed in Scilit: