Abstract

A dynamic binary translator offers solutions for translating and running source architecture binaries on target architecture at runtime. Regardless of its growing popularity, practical dynamic binary translators usually suffer from the limited optimizations performed when generating the translated code due to the lack of useful information available in the executable files and the requirement to conform to the binary-level compatibility. Trying to generate more efficient translated code, we propose in this paper a novel method of passing performance critical information to a dynamic binary translator through the metadata section generated during the static compilation phase. With the performance critical metadata, the dynamic binary translator is able to perform aggressive optimizations to generate higher quality code. We implemented a general and extensible framework in GCC 4.0 and IA-32® Execution Layer, and selected metadata related to memory optimizations as our target. The metadata enables IA-32 EL to perform memory optimizations such as registerization, memory ordering relaxation and address disambiguation of memory instructions. Experimental data shows an overall performance improvement of 15.03% for SPECfp2000 and 1.21% for SPECint2000. For some specific benchmarks, the performance improvement is even up to 37.09%.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.