TY - JOUR
T1 - Affine Modeling of Program Traces
AU - Rodriguez, Gabriel
AU - Kandemir, Mahmut T.
AU - Tourino, Juan
N1 - Funding Information:
This research was supported by the Ministry of Economy and Competitiveness of Spain, Project TIN2016-75845-P (AEI/FEDER, EU); NSF grants 1626251, 1409095, 1629129, 1439057, 1213052, 1439021; and a grant from Intel Corp. We gratefully thank Prof. Alain Ketterlin and Prof. Philippe Clauss for providing access to their trace analysis tool.
Publisher Copyright:
© 1968-2012 IEEE.
PY - 2019/2/1
Y1 - 2019/2/1
N2 - A formal, high-level representation of programs is typically needed for static and dynamic analyses performed by compilers. However, the source code of target applications is not always available in an analyzable form, e.g., to protect intellectual property. To reason on such applications it becomes necessary to build models from observations of its execution. This paper presents an algebraic approach which, taking as input the trace of memory addresses accessed by a single memory reference, synthesizes an affine loop with a single perfectly nested statement that generates the original trace. This approach is extended to support the synthesis of unions of affine loops, useful for minimally modeling traces generated by automatic transformations of polyhedral programs, such as tiling. The resulting system is capable of processing hundreds of gigabytes of trace data in minutes, minimally reconstructing 100 percent of the static control parts in PolyBench/C applications and 99.9 percent in the Pluto-tiled versions of these benchmarks.
AB - A formal, high-level representation of programs is typically needed for static and dynamic analyses performed by compilers. However, the source code of target applications is not always available in an analyzable form, e.g., to protect intellectual property. To reason on such applications it becomes necessary to build models from observations of its execution. This paper presents an algebraic approach which, taking as input the trace of memory addresses accessed by a single memory reference, synthesizes an affine loop with a single perfectly nested statement that generates the original trace. This approach is extended to support the synthesis of unions of affine loops, useful for minimally modeling traces generated by automatic transformations of polyhedral programs, such as tiling. The resulting system is capable of processing hundreds of gigabytes of trace data in minutes, minimally reconstructing 100 percent of the static control parts in PolyBench/C applications and 99.9 percent in the Pluto-tiled versions of these benchmarks.
UR - http://www.scopus.com/inward/record.url?scp=85049678553&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85049678553&partnerID=8YFLogxK
U2 - 10.1109/TC.2018.2853747
DO - 10.1109/TC.2018.2853747
M3 - Article
AN - SCOPUS:85049678553
SN - 0018-9340
VL - 68
SP - 294
EP - 300
JO - IEEE Transactions on Computers
JF - IEEE Transactions on Computers
IS - 2
M1 - 8408540
ER -