Selective runtime memory disambiguation in a dynamic binary translator

  • Authors:
  • Bolei Guo;Youfeng Wu;Cheng Wang;Matthew J. Bridges;Guilherme Ottoni;Neil Vachharajani;Jonathan Chang;David I. August

  • Affiliations:
  • Department of Computer Science, Princeton University;Programming Systems Lab, Intel Corporation;Programming Systems Lab, Intel Corporation;Department of Computer Science, Princeton University;Department of Computer Science, Princeton University;Department of Computer Science, Princeton University;Department of Computer Science, Princeton University;Department of Computer Science, Princeton University

  • Venue:
  • CC'06 Proceedings of the 15th international conference on Compiler Construction
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Alias analysis, traditionally performed statically, is unsuited for a dynamic binary translator (DBT) due to incomplete control-flow information and the high complexity of an accurate analysis. Whole- program profiling, however, shows that most memory references do not alias. The current technique used in DBTs to disambiguate memory references, instruction inspection, is too simple and can only disambiguate one-third of potential aliases. To achieve effective memory disambiguation while keeping a tight bound on analysis overhead, we propose an efficient heuristic algorithm that strategically selects key memory dependences to disambiguate with runtime checks. These checks have little runtime overhead and, in the common case where aliasing does not occur, enable aggressive optimizations, particularly scheduling. We demonstrate that a small number of checks, inserted with a low-overhead analysis, can approach optimal scheduling, where all false memory dependences are removed. Simulation shows that better scheduling alone improves overall performance by 5%.