Preview

Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS)

Advanced search

Optimizations in Dynamic Binary Translation

Abstract

Binary translation is a process of constructing program Q's binary code from program P's binary code according to a certain specification. If a binary translation is performed in runtime it is called dynamic binary translation. We evaluate application of different optimizations during dynamic binary translation. We improve lookup of existing translation block in translation cache in QEMU, evaluate impact of register allocation algorithm on program performance in QEMU, implement simple machine independent optimizations in QEMU and implement an instruction scheduler in Valgrind. The improvement of translation block lookup gives the greatest speedup among all these optimizations. Instruction scheduler in Valgrind is promising too.

About the Authors

Kirill Batuzov
ISP RAS, Moscow
Russian Federation


Alexey Merkulov
ISP RAS, Moscow
Russian Federation


References

1. Nicolas Nethercote, Julina Seward. Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation. Proceedings of ACM SIGPLAN 2007 Conference on Programming Languages Design and Implementation, 2007.

2. QEMU – Open Source Processor Emulator. http://wiki.qemu.org/Main_Page. Дата обращения: 09.12.2010.

3. Valgrind. http://www.valgrind.org/. Дата обращения: 09.12.2010.

4. Oprofile – A System Profiler For Linux. http://oprofile.sourceforge.net/. Дата обращения: 10.12.2010.

5. qemu.git – the QEMU master repository. http://git.qemu.org/qemu.git/commit/?id=2c90fe2b71df2534884bce96d90cbfcc93aeedb8. Дата обращения 16.12.2010.

6. qemu.git – the QEMU master repository. http://git.qemu.org/qemu.git/commit/?id=6648e29608ce17f6109d5696fb01f056238e2628. Дата обращения 16.12.2010.

7. SPEC CPU2000. http://www.spec.org/cpu2000. Дата обращения 21.12.2010.

8. Steven Muchnick. Advanced compiler design and implementation. Morgan Kaufmann Publishers Inc., 1997.

9. А.Белеванцев, Д.Журихин, Д.Мельник. Компиляция программ для современных архитектур. Труды института системного программирования РАН, том 16, 2009, стр. 31-50.

10. Andrey Belevantsev, Alexander Chernov, Maxim Kuvyrkov, Vladimir Makarov, Dmitry Melnik. Improving GCC instruction scheduling for Itanium. In Proceedings of GCC Developers' Summit 2005, Ottawa, Canada, June 2005, pp.1-13.

11. Andrey Belevantsev, Maxim Kuvyrkov, Vladimir Makarov, Dmitry Melnik, Dmitry Zhurikhin. An interblock VLIW-targeted instruction scheduler for GCC. In Proceedings of GCC Developers' Summit 2006, Ottawa, Canada, June 2006, pp.1-12.


Review

For citations:


Batuzov K., Merkulov A. Optimizations in Dynamic Binary Translation. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2011;20. (In Russ.)



Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)