Projet : PARA

previous up next contents
Précédent : Résultats nouveaux Remonter : Résultats nouveaux Suivant : Validation de logiciels parallèles par


   
Analyse d'échappements et glanage de cellules statique



Participants : Alain Deutsch, Bruno Blanchet.

  

L'analyse d'échappement (escape analysis) est une analyse par interprétation abstraite, qui vise à déterminer si la durée de vie d'une donnée dépasse sa portée statique. Elle peut être utilisée pour remplacer l'allocation dynamique avec utilisation d'un glaneur de cellules (GC), par de l'allocation en pile, plus efficace car elle diminue la charge du GC et elle améliore la localité des données (très importante pour optimiser la gestion des caches dans les processeurs modernes)

L'étude de cette analyse, déjà commencée les années précédentes avec l'étude d'une première version de l'analyse en O(nlog2n) pour le langage ML, s'est poursuivie cette année dans deux directions: tout d'abord, nous avons continué le travail sur ML en étudiant une analyse plus précise mais aussi plus complexe qui représente l'échappement à l'aide de graphes. D'autre part, nous avons appliqué l'analyse d'échappement au langage Java, ce qui a nécessité la refonte complète de l'étude effectuée sur ML, en particulier pour pouvoir prendre en compte plus précisément l'affectation, beaucoup plus fréquente en Java qu'en ML. Nous avons donné une preuve de correction de ces deux analyses. Sur le plan expérimental, ces deux analyses ont été implantées dans des compilateurs (voir §5.3).



previous up next contents
Précédent : Résultats nouveaux Remonter : Résultats nouveaux Suivant : Validation de logiciels parallèles par