Polly as an Analysis pass in LLVM

Utpal Bora, Johannes Doerfert, Tobias Grosser, Venugopal Raghavan and Ramakrishna Upadrasta

Presented at US LLVM Developers’ Meeting, 2016


The Polyhedral framework provides an exact dependence analysis, which is more powerful than conventional dependence testing algorithms. Currently, LLVM mainline lacks a powerful dependence analysis framework, and at the same time, Polly’s (a high-level data locality optimizer based on polyhedral framework) dependence analysis is suitable for many transformation passes in LLVM like Loop Vectorization, Loop Versioning, Modulo Scheduling, Loop Nest Optimizations, etc. I propose to provide an API for Polly such that its precise dependence analysis can be used as an Analysis pass within LLVM’s transformation passes.