Abstract
This paper presents an intermediate language level optimization framework for dynamic binary translation. Performance is important to a dynamic binary translation system, so there has been a growing interest in exploring new optimization algorithms. The framework proposed in this paper includes efficient profiling, hot code recognition and smart code cache management policies. Profiling is responsible for collecting runtime information, which will be used by hot code recognition and code cache management algorithms. We only focus on recognizing the hottest code, and assign priorities to basic blocks according to their hotness to facilitate code cache management.
- Evelyn Duesterwald, Vasanth Bala, "Software Profiling for Hot Path Prediction: Less is More", ACM SIGOPS Operating Systems Review, Volume 34, Issue 5, Dec. 2000. Google ScholarDigital Library
- Thomas Ball, James R. Larus, "Efficient Path Profiling", 29th Annual IEEE/ACM International Symposium on Microarchitecture, p. 46, 1996. Google ScholarDigital Library
- Thomas Ball, Peter Mataga, Mooly Sagiy, "Edge profiling versus path profiling: the showdown", Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, page 134--148, 1998. Google ScholarDigital Library
- Joshi. R., Bond. M. D., Zilles. C., "Targeted path profiling: lower overhead path profiling for staged dynamic optimization systems", Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, page 134--148, 1998.Google Scholar
- M. Arnold and B. G. Ryder, "A framework for reducing the cost of instrumented code", In Proceedings of the Conference on Programming Language Design and Implementation, pages 168--179, June 2001. Google ScholarDigital Library
- David Melski, Thomas W. Reps, "Interprodedural Path Profiling", Proceedings of the 8th International Conference on Compiler Construction, Pages 47--62, 1999. Google ScholarDigital Library
- Hazelwood, K. Smith, J. E, "Exploring code cache eviction granularities in dynamic optimization systems", International Symposium on Code Generation and Optimization, 2004. CGO 2004., March 2004 Google ScholarDigital Library
- Hazelwood, K. Smith, M. D., "Code cache management schemes for dynamic optimizers", Interaction between Compilers and Computer Architectures, 2002. Proceedings. Sixth Annual Workshop, 2002 Google ScholarDigital Library
- S Zhou, BR Childers, ML Soffa, "Planning for Code Buffer Management in Distributed Virtual Execution Environments", Proceedings of the 1st ACM/USENIX international conference, 2005 Google ScholarDigital Library
- K Scott, N Kumar, S Velusamy, B Childers, "Retargetable and Reconfigurable Software Dynamic Translation", International Symposium on Code Generation and Optimization, 2003. Google ScholarDigital Library
- C. M. Merten, A. Trick, C. N. George, J. C. Gyllenhaal, and W.-M.W. Hwu. "A hardware-driven profiling scheme for identifying program hot spots to support runtime optimization." In Proc. of the 26th Int. Symp. on Computer Architecture. Atlanta, Georgia, 1999. Google ScholarDigital Library
- David Ung and Cristina Cifuentes, "Optimising Hot Paths In a Dynamic Binary Translator", ACM SIGARCH Computer Architecture News, Volume 29, Pages: 55--65, 2001. Google ScholarDigital Library
- M. Voss and R. Eigenmann, "A framework for remote dynamic program optimization", Proceedings of the ACM Workshop on Dynamic Optimization, 2000. Google ScholarDigital Library
- S. Sathaye, P. Ledak, J. LeBlanc, S. Kosonocky, M. Gschwind, J. Fritts, Z. Filan, A. Bright, D. Appenzeller, E. Altman, and C. Agricola, "BOA: Targeting multigigahertz with binary translation." In Proc. of the 1999 Workshop on Binary Translation, Newport Beach, CA., October 1999.Google Scholar
- V. Bala, E. Duesterwald and S. Banerjia, "Dynamo: A Transparent Dynamic Optimization System", Proceedings of th ACM SIGPLAN 2000 conference on Programming language design and implementation, Vancouver, Canada, 2000. Google ScholarDigital Library
Index Terms
- An intermediate language level optimization framework for dynamic binary translation
Recommendations
Dynamic binary translation using run-time feedbacks
Software analysis, evolution and re-engineeringDynamic binary translation is the process of translating, modifying and rewriting executable (binary) code from one machine to another at run-time. This process of low-level re-engineering consists of a reverse engineering phase followed by a forward ...
Dynamic Re-Engineering of Binary Code with Run-Time Feedbacks
WCRE '00: Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)Dynamic binary translation is the process of translating and optimizing executable code from one machine to another at run-time, while the program is executing on the target machine. The translation technique is a process of low-level re-engineering ...
Optimising hot paths in a dynamic binary translator
In dynamic binary translation, code is translated "on the fly" at run-time, while the user perceives ordinary execution of the program on the target machine. Code fragments that are frequently executed follow the same sequence of flow control over a ...
Comments