• DocumentCode
    1506977
  • Title

    An architectural framework for runtime optimization

  • Author

    Merten, Matthew C. ; Trick, Andrew R. ; Barnes, Ronald D. ; Nystrom, Erik M. ; George, Christopher N. ; Gyllenhaal, John C. ; Hwu, Wen-Mei W.

  • Author_Institution
    Center for Reliable & High Performance Comput., Illinois Univ., Urbana, IL, USA
  • Volume
    50
  • Issue
    6
  • fYear
    2001
  • fDate
    6/1/2001 12:00:00 AM
  • Firstpage
    567
  • Lastpage
    589
  • Abstract
    Wide-issue processors continue to achieve higher performance by exploiting greater instruction-level parallelism. Dynamic techniques such as out-of-order execution and hardware speculation have proven effective at increasing instruction throughput. Runtime optimization promises to provide an even higher level of performance by adaptively applying aggressive code transformations on a larger scope. This paper presents a new hardware mechanism for generating and deploying runtime optimized code. The mechanism can be viewed as a filtering system that resides in the retirement stage of the processor pipeline, accepts an instruction execution stream as input, and produces instruction profiles and sets of linked, optimized traces as output. The code deployment mechanism uses an extension to the branch prediction mechanism to migrate execution into the new code without modifying the original code. These new components do not add delay to the execution of the program except during short bursts of reoptimization. This technique provides a strong platform for runtime optimization because the hot execution regions are extracted, optimized, and written to main memory for execution and because these regions persist across context switches. The current design of the framework supports a suite of optimizations, including partial function inlining (even into shared libraries), code straightening optimizations, loop unrolling, and peephole optimizations
  • Keywords
    optimising compilers; parallel architectures; architectural framework; hardware mechanism; hardware speculation; instruction execution stream; instruction throughput; instruction-level parallelism; loop unrolling; out-of-order execution; peephole optimizations; runtime optimization; runtime optimized code; wide-issue processors; Added delay; Design optimization; Filtering; Hardware; Out of order; Pipelines; Retirement; Runtime; Switches; Throughput;
  • fLanguage
    English
  • Journal_Title
    Computers, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0018-9340
  • Type

    jour

  • DOI
    10.1109/12.931894
  • Filename
    931894