Issue No. 12 - December (1997 vol. 30)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/2.642815
<p>With recent developments in compilation technology and architectural design, the line between traditional hardware and software roles has become increasingly blurred. The compiler can now see the processor's inner structure, which lets architects exploit sophisticated program analysis techniques to hide branch and memory access delays, for example. Processors can now implement register renaming and dynamic instruction-scheduling algorithms directly in the hardware-something that was once exclusively the compiler's job. </p> <p>A similar shift is occurring in optimizing compilers for parallel machines. To parallelize a larger class of applications, compiler writers are moving beyond static transformations and exploring techniques that rely on runtime decisions or hardware support. </p> <p>This increased blurring of compile-time and runtime optimizations opens many new research opportunities, particularly for program optimization-a task typically performed entirely at compile time. This article describes an optimization continuum and shows how different classes of optimizations fall within it. </p>
M. D. Smith et al., "Changing Interaction of Compiler and Architecture," in Computer, vol. 30, no. , pp. 51-58, 1997.