Collaborative Static and Dynamic analysis for feedback-directed optimisations

Profiling a program consists in collecting opportune informations during its execution in order to guide efficient optimizations (dead code elimination, prefetching, instruction scheduling, memory layout transformation, ...). Those optimisations can be applied either by transforming the initial source code or by re-compiling it guided by the collected informations.

Profiling is essential when optimizing codes where dynamic control structures occur and for which static analysis is inadequate. But this approach has several drawbacks :

Our objective is to develop some automatic methods for collaborative static and dynamic analysis of programs :

We recently proposed a model of program behavior capture called the periodic-linear model (PLI). Program profiling traces are analyzed and represented as periodic-linear functions that exhibit useful information about periodicity and repetitive behaviors of the analyzed program. Moreover, the whole trace is represented as a sequence of loop nests that constitutes a rich analysis and optimization framework. More details and the current software implementation can be found here.
 
Related publications