Adaptable Binary Programs

  • Authors:
  • Robert Wahbe;Steven Lucco;Susan L. Graham

  • Affiliations:
  • -;-;-

  • Venue:
  • Adaptable Binary Programs
  • Year:
  • 1994

Quantified Score

Hi-index 0.00

Visualization

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 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. For our benchmark programs, using adaptable binaries eliminates pixie''s 110% average transformation overhead and reduces MemSpy''s average overhead from 1296% to 33%.