Advertisement

Selective Runtime Memory Disambiguation in a Dynamic Binary Translator

  • Bolei Guo
  • Youfeng Wu
  • Cheng Wang
  • Matthew J. Bridges
  • Guilherme Ottoni
  • Neil Vachharajani
  • Jonathan Chang
  • David I. August
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3923)

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%.

Keywords

Heuristic Algorithm Critical Path Memory Reference Memory Instruction Base Address 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

References

  1. 1.
    Cheng, B.-C., Hwu, W.W.: Modular interprocedural pointer analysis using access paths: design, implementation, and evaluation. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 57–69 (2000)Google Scholar
  2. 2.
    Landi, W., Ryder, B.G.: A safe approximate algorithm for interprocedural pointer aliasing. In: Proceedings of the ACM SIGPLAN 1992 Conference on Programming Language Design and Implementation, pp. 235–248 (June 1992)Google Scholar
  3. 3.
    Bala, V., Deusterwald, E., Banerjia, S.: Transparent dynamic optimization. Tech. Rep. HPL-1999-77, Hewlett Packard Labs (June 1999)Google Scholar
  4. 4.
    Dehnert, J.C., Grant, B.K., Banning, J.P.: The transmeta code morphing software: using speculation, recovery and adaptive retranslation to address real-life challenges. In: Proceedings of the 1st International Symposium on Code Generation and Optimization, pp. 15–24 (March 2003)Google Scholar
  5. 5.
    Ebcioglu, K., Altman, E.R.: DAISY: Dynamic compilation for 100% architectural compatibility. In: Proceedings of the 24th International Symposium on Computer Architecture (June 1997)Google Scholar
  6. 6.
    Nicolau, A.: Run-time disambiguation: Coping with statically unpredictable dependences. IEEE Transactions on Computers 38, 663–678 (1989)CrossRefGoogle Scholar
  7. 7.
    Huang, A.S., Slavengurg, G., Shen, J.P.: Speculative disambiguation: A compilation technique for dynamic memory disambiguation. ACM SIGARCH Computer Architecture News Archive 22, 200–210 (1994)CrossRefGoogle Scholar
  8. 8.
    Fernandez, M., Espasa, R.: Speculative alias analysis for executable code. In: Proceedings of the 2002 International Conference on Parallel Architectures and Compilation Techniques, September 2002, pp. 222–231 (2002)Google Scholar
  9. 9.
    Amme, W., Braun, P., Zehendner, E.: Data dependence analysis of assembly code. Tech. Rep. 3764, INRIA, Rocquencourt, France (September 1999)Google Scholar
  10. 10.
    Fisher, J.A.: Trace scheduling: A technique for global microcode compaction. IEEE Transactions on Computers C-30, 478–490 (1981)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Bolei Guo
    • 1
  • Youfeng Wu
    • 2
  • Cheng Wang
    • 2
  • Matthew J. Bridges
    • 1
  • Guilherme Ottoni
    • 1
  • Neil Vachharajani
    • 1
  • Jonathan Chang
    • 1
  • David I. August
    • 1
  1. 1.Department of Computer SciencePrinceton UniversityUSA
  2. 2.Programming Systems Lab, Intel CorporationUSA

Personalised recommendations