Loopy: Programmable and Formally Verified Loop Transformations
- Cite this paper as:
- Namjoshi K.S., Singhania N. (2016) Loopy: Programmable and Formally Verified Loop Transformations. In: Rival X. (eds) Static Analysis. SAS 2016. Lecture Notes in Computer Science, vol 9837. Springer, Berlin, Heidelberg
This paper presents a system, Loopy, for programming loop transformations. Manual loop transformation can be tedious and error-prone, while fully automated methods do not guarantee improvements. Loopy takes a middle path: a programmer specifies a loop transformation at a high level, which is then carried out automatically by Loopy, and formally verified to guard against specification and implementation mistakes. Loopy ’s notation offers considerable flexibility with assembling transformations, while automation and checking prevent errors. Loopy is implemented for the LLVM framework, building on a polyhedral compilation library. Experiments show substantial improvements over fully automated loop transformations, using simple and direct specifications.