Efficient Memory Tracing by Program Skeletonization

Alain Ketterlin 1, 2, 3 Philippe Clauss 1, 2, 3
Abstract : Memory profiling is useful for a variety of tasks, most notably to produce traces of memory accesses for cache simulation. However, instrumenting every memory access incurs a large overhead, in the amount of code injected in the original program as well as in execution time. This paper describes how static analysis of the binary code can be used to reduce the amount of instrumentation. The analysis extracts loops and memory access functions by tracking how memory addresses are computed from a small set of base registers holding, e.g., routine parameters and loop counters. Instrumenting these base registers instead of memory operands reduces the weight of instrumentation, first statically by reducing the amount of injected code, and second dynamically by reducing the amount of instrumentation code actually executed. Also, because the static analysis extracts intermediate-level program structures (loops and branches) and access functions in symbolic form, it is easy to transform the original executable into a skeleton program that consumes base register values and produces memory addresses. The first advantage of using a skeleton is to be able to overlap the execution of the instrumented program with that of the skeleton, thereby reducing the overhead of recomputing addresses. The second advantage is that the skeleton program and its shorter input trace can be saved and rerun as many times as necessary without requiring access to the original architecture, e.g., for cache design space exploration. Experiments are performed on SPEC benchmarks compiled for the x86-64 instruction set.
Document type :
Conference papers
Complete list of metadatas

https://hal.inria.fr/inria-00544497
Contributor : Philippe Clauss <>
Submitted on : Wednesday, December 8, 2010 - 11:37:00 AM
Last modification on : Friday, January 12, 2018 - 1:09:50 AM

Identifiers

  • HAL Id : inria-00544497, version 1

Collections

Citation

Alain Ketterlin, Philippe Clauss. Efficient Memory Tracing by Program Skeletonization. IEEE International Symposium on Performance Analysis of Systems and Software, ISPASS, Apr 2011, Austin, United States. ⟨inria-00544497⟩

Share

Metrics

Record views

156