Compiler Loop Transformations

Within a compiler, loop transformations can significantly improve the performance of the generated code.
This is because they provide better scope for other optimisations to work on, as well as being able to target loops to the characteristics of the underlying architecture (e.g. cache size).
The ILDJIT compilation framework is lacking many loop transformations.
The goal of this project is to implement a number of well-known loop transformation algorithms (e.g. loop unrolling, loop splitting and loop fusion) and study their impact on application performance.