DocumentCode :
2569767
Title :
Recovering the Memory Behavior of Executable Programs
Author :
Ketterlin, Alain ; Clauss, Philippe
Author_Institution :
INRIA, Univ. de Strasbourg, Strasbourg, France
fYear :
2010
fDate :
12-13 Sept. 2010
Firstpage :
189
Lastpage :
198
Abstract :
This paper deals with the binary analysis of executable programs, with the goal of understanding how they access memory. It explains how to statically build a formal model of all memory accesses. Starting with a control-flow graph of each procedure, well-known techniques are used to structure this graph into a hierarchy of loops in all cases. The paper shows that much more information can be extracted by performing a complete data-flow analysis over machine registers after the program has been put in static single assignment (SSA) form. By using the SSA form, registers used in addressing memory can be symbolically expressed in terms of other, previously set registers. By including the loop structures in the analysis, loop indices and trip counts can also often be expressed symbolically. The whole process produces a formal model made of loops where memory accesses are linear expressions of loop counters and registers. The paper provides a quantitative evaluation of the results when applied to several dozens of SPEC benchmark programs. Because static analysis is often incomplete, the paper ends by describing a lightweight instrumentation strategy that collects at run time enough information to complete the program´s symbolic description.
Keywords :
data flow analysis; program control structures; storage allocation; storage management; binary analysis; control flow graph; data flow analysis; executable program; formal model; lightweight instrumentation strategy; linear expression; loop counter; loop structure; machine registers; memory access; memory recovey; program symbolic description; quantitative evaluation; static analysis; static single assignment; Analytical models; Benchmark testing; Binary codes; Instruments; Optimization; Radiation detectors; Registers; binary analysis; memory accesses; modeling; profiling; static single assignment form;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Source Code Analysis and Manipulation (SCAM), 2010 10th IEEE Working Conference on
Conference_Location :
Timisoara
Print_ISBN :
978-1-4244-8655-7
Type :
conf
DOI :
10.1109/SCAM.2010.18
Filename :
5601848
Link To Document :
بازگشت