PILO : pipeline logiciel

PILO est un package de pipeline logiciel interfaçable, développé par Antoine Sawaya dans sa thèse [9]. PILO est basé sur une modélisation de la boucle (de type FOR) à optimiser, ainsi que des contraintes architecturales du processeur. La boucle est donnée sous la forme de son graphe de dépendances de données, spécifiant les latences d'exécution ainsi que les distances de dépendance. On peut aussi préciser pour chaque variable portée par une dépendance si le renommage est autorisé ou non. Les contraintes architecturales sont spécifiées sous la forme de tables de réservation, nombre d'unités fonctionnelles et nombre de registres disponibles. En sortie, PILO donne un ordonnancement de pipeline logiciel, avec prologue, état permanent et épilogue.

PILO est basé sur la méthode DESP (Decomposed Software Pipelining [10]), améliorée dans [9]. Il est utilisé dans l'environnement Sage++ (transformation source à source [11]) ainsi que dans l'environnement SALTO (projet ESPRIT OCEANS).