Allocation de registres par balayage linéaire : gestion des trous de durée de vie
Cet article détaille les améliorations apportées à l'algorithme d'allocation de registres par balayage linéaire pour gérer les trous de durée de vie. L'auteur explique comment ces trous apparaissent lorsque le graphe de flot de contrôle est réduit à une séquence linéaire d'instructions, créant des discontinuités dans les durées de vie des registres virtuels. La solution consiste à modifier la structure de données d'intervalle pour prendre en charge plusieurs plages disjointes, permettant ainsi d'identifier et d'exploiter ces trous. L'algorithme de balayage linéaire est ensuite adapté pour prendre en compte ces trous lors de l'affectation des registres, ce qui améliore l'utilisation des registres. Cela améliore la capacité du compilateur à exploiter les ressources des registres, augmentant ainsi les performances du code.