Parameteriserade kakelslingor-där kakelstorlekarna inte är fasta vid kompileringstid, men förbli symboliska parametrar tills senare-är ganska användbara för iterativa kompilatorer och "auto-tuners" som producerar högt optimerade bibliotek och koder. Tile storlek parameterization kan också möjliggöra optimeringar såsom register tiling för att bli dynamiska optimeringar. Även om det är lätt att generera sådana loopar för (hyper) rektangulära iteration utrymmen klinkrade med (hyper) rektangulära plattor, många viktiga beräkningar faller inte in i denna begränsade domän. Parameteriserad kakelkodsgenerering för det allmänna fallet av konvexa iterationsutrymmen som kaklas av (hyper) rektangulära plattor har i det förflutna lösts med avgränsande box tillvägagångssätt eller symboliska Fourier Motzkin tillvägagångssätt. Båda tillvägagångssätten har dock mindre än idealisk genereringseffektivitet och resulterande kodkvalitet. Vi presenterar de teoretiska grunderna, implementeringen och experimentell validering av en enkel, enhetlig teknik för att generera parameteriserad kaklad kod. Vår kodgenereringseffektivitet är jämförbar med alla befintliga kodgenereringstekniker inklusive de för fasta kakelstorlekar, och den resulterande koden är lika effektiv som, om inte mer än, alla tidigare tekniker. Således tekniken ger parameteriserade kaklade slingor gratis! Vår "one-size-fits-all"-lösning, som finns som öppen programvara, kan anpassas för användning i produktionskompilatorer.
I REF tillämpas loop tiling med fasta kakelstorlekar.
Parameterized tiled loops for free
{'venue': "PLDI '07", 'journal': None, 'mag_field_of_study': ['Computer Science']}