Optimizing array accesses is extremely critical in embedded computing as many embedded applications make use of arrays (in form of images, video frames, etc). Previous research considered both loop and data transformations for improving array accesses. However, data transformations considered were mostly limited to linear data transformations and array interleaving. In this paper, we introduce two data transformations: array decomposition (breaking up a large array into multiple smaller arrays) and array composition (combining multiple small arrays into a single large array). This paper discusses that it is feasible to implement these optimizations within an optimizing compiler.
Guilin Chen, Mahmut T. Kandemir, A. Nadgir, Ugur S