Title :
The importance of prepass code scheduling for superscalar and superpipelined processors
Author :
Chang, Pohua P. ; Lavery, Daniel M. ; Mahlke, Scott A. ; Chen, William Y. ; Hwu, Wen-Mei W.
Author_Institution :
Centre for Reliable and High-Performance Comput., Illinois Univ., Champaign, IL, USA
fDate :
3/1/1995 12:00:00 AM
Abstract :
Superscalar and superpipelined processors utilize parallelism to achieve peak performance that can be several times higher than that of conventional scalar processors. In order for this potential to be translated into the speedup of real program, the compiler must be able to schedule instructions so that the parallel hardware is effectively utilized. Previous work has shown that prepass code scheduling helps to produce a better schedule for scientific programs, but the importance of prescheduling has never been demonstrated for control-intensive non-numeric programs. These programs are significantly different from the scientific programs because they contain frequent branches. The compiler must do global scheduling in order to find enough independent instructions. In this paper, the code optimizer and scheduler of the IMPACT-I C compiler is described. Within this framework, we study the importance of prepass code scheduling for a set of production C programs. It is shown that, in contrast to the results previously obtained for scientific programs, prescheduling is not important for compiling control-intensive programs to the current generation of superscalar and superpipelined processors. However, if some of the current restrictions on upward code motion can be removed in future architectures, prescheduling would substantially improve the execution time of this class of programs on both superscalar and superpipelined processors
Keywords :
C language; optimising compilers; pipeline processing; program compilers; scheduling; IMPACT-I C compiler; code optimizer; compiler; prepass code scheduling; prescheduling; superpipelined; superscalar; Clocks; Data mining; Decoding; Delay; Hardware; Optimizing compilers; Pipeline processing; Processor scheduling; Program processors; Registers;
Journal_Title :
Computers, IEEE Transactions on