Valgrind is a widely used framework for dynamic binary instrumentation and its mostly known by its memcheck tool. Valgrind's code generation module is far from producing optimal code. In addition it has many backends for different CPU architectures, which difficults code optimization in an architecture independent way. Our work focused on identifying sub-optimal code produced by Valgrind and optimizing it.
@article{arxiv.0810.0372,
title = {Optimizing Binary Code Produced by Valgrind (Project Report on Virtual Execution Environments Course - AVExe)},
author = {Filipe Cabecinhas and Nuno Lopes and Renato Crisostomo and Luis Veiga},
journal= {arXiv preprint arXiv:0810.0372},
year = {2008}
}
Comments
Technical report from INESC-ID Lisboa describing optimizations to code generation of the Valgring execution environment. Work developed in the context of a Virtual Execution Environments course (AVExe) at IST/Technical university of Lisbon