• DocumentCode
    751731
  • 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
  • Volume
    44
  • Issue
    3
  • fYear
    1995
  • fDate
    3/1/1995 12:00:00 AM
  • Firstpage
    353
  • Lastpage
    370
  • 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;
  • fLanguage
    English
  • Journal_Title
    Computers, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0018-9340
  • Type

    jour

  • DOI
    10.1109/12.372029
  • Filename
    372029