Adaptable Binary Programs (1994) [5 citations — 0 self]
Abstract:
To accurately and comprehensively monitor a program's behavior, many performance measurement tools must transform the program's 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

