Name: tile  Association: loop 
Category: executable  Properties: pure 

Clauses
sizesSemantics
The tile construct tiles the outer n loops of the associated loop nest, where n is the number of items in the sizes clause, which consists of items s_{1},…,s_{n}. Let ℓ_{1}, …, ℓ_{n} be the associated loops, from outermost to innermost, which the construct replaces with a loop nest that consists of 2n perfectly nested loops. Let f_{1},…,f_{n},t_{1},…,t_{n} be the generated loops, from outermost to innermost. The loops f_{1},…,f_{n} are the ﬂoor loops and the loops t_{1},…,t_{n} are the tile loops. The tile loops do not have canonical loop nest form.Let Ω be the logical iteration vector space of the associated loops. For any (α_{1},…,α_{n}) ∈ ℕ^{n}, deﬁne the set of iterations {(i_{1},…,i_{n}) ∈ Ω ∣∀k ∈{1,…,n} : s_{k}α_{k} ≤ i_{k} < s_{k}α_{k} + s_{k}} to be tile T_{α1,…,αn} and F = {T_{α1,…,αn} ∣ T_{α1,…,αn}≠∅} to be the set of tiles with at least one iteration. Tiles that contain ∏ _{k=1}^{n}s_{k} iterations are complete tiles. Otherwise, they are partial tiles.
The ﬂoor loops iterate over all tiles {T_{α1,…,αn} ∈ F} in lexicographic order with respect to their indices (α_{1},…,α_{n}) and the tile loops iterate over the iterations in T_{α1,…,αn} in the lexicographic order of the corresponding iteration vectors. An implementation may reorder the sequential execution of two iterations if at least one is from a partial tile and if their respective logical iteration vectors in loopnest do not have a product order relation.
Restrictions
Restrictions to the tile construct are as follows:Cross References