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%.
Chapter PDF
Similar content being viewed by others
Keywords
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
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)
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)
Bala, V., Deusterwald, E., Banerjia, S.: Transparent dynamic optimization. Tech. Rep. HPL-1999-77, Hewlett Packard Labs (June 1999)
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)
Ebcioglu, K., Altman, E.R.: DAISY: Dynamic compilation for 100% architectural compatibility. In: Proceedings of the 24th International Symposium on Computer Architecture (June 1997)
Nicolau, A.: Run-time disambiguation: Coping with statically unpredictable dependences. IEEE Transactions on Computers 38, 663–678 (1989)
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)
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)
Amme, W., Braun, P., Zehendner, E.: Data dependence analysis of assembly code. Tech. Rep. 3764, INRIA, Rocquencourt, France (September 1999)
Fisher, J.A.: Trace scheduling: A technique for global microcode compaction. IEEE Transactions on Computers C-30, 478–490 (1981)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Guo, B. et al. (2006). Selective Runtime Memory Disambiguation in a Dynamic Binary Translator. In: Mycroft, A., Zeller, A. (eds) Compiler Construction. CC 2006. Lecture Notes in Computer Science, vol 3923. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11688839_6
Download citation
DOI: https://doi.org/10.1007/11688839_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-33050-9
Online ISBN: 978-3-540-33051-6
eBook Packages: Computer ScienceComputer Science (R0)