Future Plans
Future plans for LoopVectorization:
- Support triangular iteration spaces.
- Identify obvious loop-carried dependencies like
A[j]
andA[j-1]
. - Be able to generate optimized kernels from simple loop-based implementations of operations like Cholesky decompositions or solving triangular systems of equations.
- Model memory and CPU-cache to possibly insert extra loops and packing of data when deemed profitable.
- Track types of individual operations in the loops. Currently, multiple types in loops aren't really handled, so this is a bit brittle at the moment.
- Handle loops where arrays contain non-primitive types (e.g., Complex numbers) well.
Contributions are more than welcome, and I would be happy to assist if anyone would like to take a stab at any of these. Otherwise, while LoopVectorization is a core component to much of my work, so that I will continue developing it, I have many other projects that require active development, so it will be a long time before I am able to address these myself.