Compilateurs
Pour l'allocation de registres par coloration du graphe d'interférence, quelle combinaison de ce que représentent nœuds et arêtes est correcte ?
- ALes nœuds sont les instructions, les arêtes l'ordre d'exécution
- BLes nœuds sont les registres, les arêtes le câblage entre registres
- CLes nœuds sont les valeurs, les arêtes la relation d'être vivantes simultanément
Afficher la réponse et l'explication
Réponse : C. Les nœuds sont les valeurs, les arêtes la relation d'être vivantes simultanément
Dans le graphe d'interférence, les variables et valeurs intermédiaires sont les nœuds, et deux valeurs toutes deux encore utilisées (vivantes) à un même instant sont reliées par une arête. Des valeurs reliées étant nécessaires simultanément, elles ne peuvent partager un registre. Avec k registres, si l'on parvient à colorier le graphe en k couleurs sans que deux voisins aient la même couleur, chaque couleur correspond directement à un registre. Sinon, certaines valeurs sont déversées en mémoire (spill). Ce n'est pas un graphe de l'ordre des instructions ni du câblage des registres.