| OPENMP API Specification: "Version 5.2 -- GIT rev 95b2e3a44"

9.1  tile Construct

Name: tile

Association: loop

Category: executable

Properties: pure




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 s1,…,sn. 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 f1,…,fn,t1,…,tn be the generated loops, from outermost to innermost. The loops f1,…,fn are the floor loops and the loops t1,…,tn 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, define the set of iterations {(i1,…,in) Ω ∣∀k ∈{1,…,n} : skαk ik < skαk + sk} 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=1nsk iterations are complete tiles. Otherwise, they are partial tiles.

The floor 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 loop-nest do not have a product order relation.


Restrictions to the tile construct are as follows:

Cross References