Précédent : Allocation de registres et déroulage
Remonter : Parallélisme d'instructions Suivant :
Pipeline logiciel à haut niveau
Participants : Christine Eisenbeis, Sylvain Lelait, Jérôme Santini L'idée de cette étude est de rapprocher la décomposition en circuits du meeting graph (paragraphe 3.2.2 ) de la décomposition en chaînes du graphe de dépendances de données dans les travaux de Berson (Pittsburgh University). Une chaîne correspond à une série d'opérations pouvant utiliser la même ressource. Le nombre minimal de chaînes est ainsi une borne supérieure du taux de parallélisme présent dans le programme. Si le nombre d'unités fonctionnelles est plus petit, l'introduction de nouvelles contraintes de succession diminue ce nombre de chaînes pour rendre le code exécutable sur l'architecture. On utilise le même principe pour les registres, en désignant au préalable pour chaque variable la dernière opération qui l'utilise (killing instruction ). Lors de son stage de DEA, Jérôme Santini a étendu cette étude aux boucles, avec des circuits possibles dans le graphe de dépendances. Les chaînes deviennent des circuits, et l'allocation de registres se traduit par une décomposition en circuits, comme dans le meeting graph [5].