Building a Polyhedral Representation from an Instrumented Execution: Making Dynamic Analyses of Nonaffine Programs Scalable
Building a Polyhedral Representation from an Instrumented Execution: Making Dynamic Analyses of Nonaffine Programs Scalable
复制标题
从仪表化执行构建多面体表示:使非仿射程序的动态分析可扩展
DOI:
10.1145/3363785
复制
发表时间:
2020
影响因子:
1.6
通讯作者:
Rastello, Fabrice
中科院分区:
文献类型:
--
作者:
Selva, Manuel;Gruber, Fabian;Sampaio, Diogo;Guillon, Christophe;Pouchet, Louis-Noël;Rastello, Fabrice
The polyhedral model has been successfully used in production compilers. Nevertheless, only a very restricted class of applications can benefit from it. Recent proposals investigated how runtime information could be used to apply polyhedral optimization on applications that do not statically fit the model. In this work, we go one step further in that direction. We propose thefolding-based analysisthat, from the output of an instrumented program execution, builds a compact polyhedral representation. It is able to accurately detect affine dependencies, fixed-stride memory accesses, and induction variables in programs. It scales to real-life applications, which often include some nonaffine dependencies and accesses in otherwise affine code. This is enabled by a safe fine-grained polyhedral overapproximation mechanism. We evaluate our analysis on the entire Rodinia benchmark suite, enabling accurate feedback about the potential for complex polyhedral transformations.