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.
Type de document :
Communication dans un congrès
IEEE. IEEE International Symposium on Performance Analysis of Systems and Software, ISPASS, Apr 2011, Austin, United States. 2011
Liste complète des métadonnées

https://hal.inria.fr/inria-00544497
Contributeur : Philippe Clauss <>
Soumis le : mercredi 8 décembre 2010 - 11:37:00
Dernière modification le : vendredi 12 janvier 2018 - 01:09:50

Identifiants

  • HAL Id : inria-00544497, version 1

Collections

Citation

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

Partager

Métriques

Consultations de la notice

116