Adaptable Binary Programs
CARNEGIE-MELLON UNIV PITTSBURGH PA DEPT OF COMPUTER SCIENCE
Pagination or Media Count:
To accurately and comprehensively monitor a programs behavior, many performance measurement tools must transform the programs executable representation or binary. By instrumenting binary programs to monitor program events, tools can precisely analyze compiler optimization effectiveness, memory system performance, pipeline interlocking, and other dynamic program characteristics that are fully exposed only at this level. Binary transformation has also been used to support software-enforced fault isolation, debugging, machine re-targeting and machine-dependent optimization. At present, binary transformation applications face a difficult trade-off. Previous approaches to implementing robust transformations incur significant disk space and run-time overhead. To improve efficiency, some current systems sacrifice robustness, relying on heuristic assumptions about the program and recognition of complex, compiler-dependent code generation idioms. In this paper we present adaptable binaries, a technique for implementing robust, efficient, and compiler- independent binary transformations. We evaluated a prototype implementation of adaptable binaries under the Ultrix 4.2 operating system and the MIPS processor architecture. Using the C SPEC92 benchmarks, we assessed adaptable binaries in three ways. First, we demonstrated that the information necessary to build adaptable binaries can be compactly recorded, increasing space overhead by only 9 for the SPEC92 benchmarks. Second, we measured the run-time overhead of previous approaches to implementing robust binary transformations, and showed that adaptable binaries significantly reduce this overhead. Finally, we measured the run-time transformation overhead of two user applications, pixie and MemSpy.
- Computer Programming and Software
- Computer Hardware