Improving Region Selection in Dynamic Optimization Systems

  • Authors:
  • David Hiniker;Kim Hazelwood;Michael D. Smith

  • Affiliations:
  • Microsoft Corporation;University of Virginia;Harvard University

  • Venue:
  • Proceedings of the 38th annual IEEE/ACM International Symposium on Microarchitecture
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

The performance of a dynamic optimization system depends heavily on the code it selects to optimize. Many current systems follow the design of HP Dynamo and select a single interprocedural path, or trace, as the unit of code optimization and code caching. Though this approach to region selection has worked well in practice, we show that it is possible to adapt this basic approach to produce regions with greater locality, less needless code duplication, and fewer profiling counters. In particular, we propose two new region-selection algorithms and evaluate them against Dynamo驴s selection mechanism, Next-Executing Tail (NET). Our first algorithm, Last-Executed Iteration (LEI), identifies cyclic paths of execution better than NET, improving locality of execution while reducing the size of the code cache. Our second algorithm allows overlapping traces of similar execution frequency to be combined into a single large region. This second technique can be applied to both NET and LEI, and we find that it significantly improves metrics of locality and memory overhead for each.