Poly can reorder loops, change iteration spaces, reorder instructions, and restructure code. The main goal is to allow for vectorization and efficient loop execution
@poly_loop can be used to tag a loop for code restructuring by Poly, using the polyhedral model of compilation. This can result in automatic loop reordering, domain coalescing, tiling, and more, specifically with memory locality and vectorization in mind. See the documentation for details on how to use @poly_loop.