previous up next top index
Précédent : Approche exacte pour l'optimisation des Remonter : Parallélisme d'instructions Suivant : Couplage ordonnancement et allocation de


Allocation de registres et déroulage de boucles

Participants : Christine Eisenbeis, Sylvain Lelait  

Nous continuons à nous intéresser au problème du dépliage de boucles pour l'allocation de registres, dont nous savons qu'il peut permettre de ne pas utiliser plus de registres que le nombre maximal de variables simultanément en vie à chaque pas de temps. Comme, en contrepartie, le dépliage peut coûter cher en taille de code engendré et en nombre de défauts de cache ou de tampon d'instructions, nous étudions plus particulièrement l'influence du dépliage de la boucle sur le nombre chromatique du graphe d'interférences résultant. Après avoir défini l'an dernier une formulation unifiant l'allocation de registres et le dépliage de boucles, nous avons implanté cette année des heuristiques que nous avons pu tester [3]. Les résultats expérimentaux ont confirmé l'adéquation de notre modélisation avec le problème du dépliage minimal de la boucle pour obtenir une allocation de registres optimale.

Cependant, les temps de calcul de ces heuristiques peuvent parfois être assez importants. C'est pourquoi, grâce à l'expérience acquise avec le meeting graph, nous avons établi une nouvelle heuristique en collaboration avec le professeur Gao de McGill University. Cette nouvelle méthode est adaptée aux méthodes d'ordonnancement actuelles en ne prenant en compte que les morceaux de durées de vie qui durent moins d'une itération de la boucle. L'implantation de cette méthode, inspirée de celles utilisant le meeting graph, est en cours au sein de la plate-forme d'expérimentation MOST développée à McGill University.