-
Recherche
- Présentation
- Trimestres et mois thématiques
- Evénements scientifiques
-
Chercheurs invités
- Chercheurs invités 2021
- Chercheurs invités 2022
- Chercheurs invités 2023
-
Post-doctorants Milyon
- Post-doctorants 2022
- Post-doctorants 2023
- Publications
- Prix, honneurs, bourses de recherche
- Portraits de chercheurs
- Formation
- Médiation
- Entreprise
-
Appels à candidature
- Appels en cours
- Étudiants : Bourses d'excellence
- Doctorants : contrats doctoraux
- Post-doctorants : contrats post-doctoraux
- Chercheurs : Aide à la mobilité
- Contacts
Vous êtes ici : Version française > Présentation > Thèses
-
Partager cette page
Thèse soutenue
Publié le 15 mai 2019 | Mis à jour le 15 mai 2019
Low cost memory analysis for efficient compilers
Maroua MAALEJ KAMMOUN
Thèse sous la direction de : Frédéric Vivien, Directeur de Recherches, Inria et de Laure Gonnord, Maître de Conférences, Université Claude Bernard Lyon 1 Discipline : Informatique
La thèse - document
La rapidité, la consommation énergétique et l'efficacité des systèmes logiciels et matériels sont devenues les préoccupations majeures de la communauté informatique de nos jours. Gérer de manière correcte et efficace les problématiques mémoire est essentiel pour le développement des programmes de grandes tailles sur des architectures de plus en plus complexes. Dans ce contexte, cette thèse contribue aux domaines de l'analyse mémoire et de la compilation tant sur les aspects théoriques que sur les aspects pratiques et expérimentaux. Outre l'étude approfondie de l'état de l'art des analyses mémoire et des différentes limitations qu'elles montrent, notre contribution réside dans la conception et l'évaluation de nouvelles analyses qui remédient au manque de précision des techniques publiées et implémentées. Nous nous sommes principalement attachés à améliorer l'analyse de pointeurs appartenant à une même structure de données, afin de lever une des limitations majeures des compilateurs actuels. Nous développons nos analyses dans le cadre général de l'interprétation abstraite « non dense ». Ce choix est motivé par les aspects de correction et d'efficacité : deux critères requis pour une intégration facile dans un compilateur. La première analyse que nous concevons est basée sur l'analyse d'intervalles des variables entières ; elle utilise le fait que deux pointeurs définis à l'aide d'un même pointeur de base n'aliasent pas si les valeurs possibles des décalages sont disjointes. La seconde analyse que nous développons est inspirée du domaine abstrait des Pentagones ; elle génère des relations d'ordre strict entre des paires de pointeurs comparables. Enfin, nous combinons et enrichissons les deux analyses précédentes dans un cadre plus général. Ces analyses ont été implémentées dans le compilateur LLVM. Nous expérimentons et évaluons leurs performances, et les comparons aux implémentations disponibles selon deux métriques : le nombre de paires de pointeurs pour lesquelles nous inférons le non-aliasing et les optimisations rendues possibles par nos analyses
La rapidité, la consommation énergétique et l'efficacité des systèmes logiciels et matériels sont devenues les préoccupations majeures de la communauté informatique de nos jours. Gérer de manière correcte et efficace les problématiques mémoire est essentiel pour le développement des programmes de grandes tailles sur des architectures de plus en plus complexes. Dans ce contexte, cette thèse contribue aux domaines de l'analyse mémoire et de la compilation tant sur les aspects théoriques que sur les aspects pratiques et expérimentaux. Outre l'étude approfondie de l'état de l'art des analyses mémoire et des différentes limitations qu'elles montrent, notre contribution réside dans la conception et l'évaluation de nouvelles analyses qui remédient au manque de précision des techniques publiées et implémentées. Nous nous sommes principalement attachés à améliorer l'analyse de pointeurs appartenant à une même structure de données, afin de lever une des limitations majeures des compilateurs actuels. Nous développons nos analyses dans le cadre général de l'interprétation abstraite « non dense ». Ce choix est motivé par les aspects de correction et d'efficacité : deux critères requis pour une intégration facile dans un compilateur. La première analyse que nous concevons est basée sur l'analyse d'intervalles des variables entières ; elle utilise le fait que deux pointeurs définis à l'aide d'un même pointeur de base n'aliasent pas si les valeurs possibles des décalages sont disjointes. La seconde analyse que nous développons est inspirée du domaine abstrait des Pentagones ; elle génère des relations d'ordre strict entre des paires de pointeurs comparables. Enfin, nous combinons et enrichissons les deux analyses précédentes dans un cadre plus général. Ces analyses ont été implémentées dans le compilateur LLVM. Nous expérimentons et évaluons leurs performances, et les comparons aux implémentations disponibles selon deux métriques : le nombre de paires de pointeurs pour lesquelles nous inférons le non-aliasing et les optimisations rendues possibles par nos analyses
Mots clés
Compilateurs - Optimisations - Analyse statique - Interprétation abstraite
Liste des publications issues de la thèse :
- « Combining Range and Inequality Information for Pointer Disambiguation », Maroua Maalej, Vitor Paisante, Fernando Pereira and Laure Gonnord, In Science of Computer Programming Journal, 2018. – Lire l’article
- « Pointer Disambiguation via Strict Inequalities », Maroua Maalej, Vitor Paisante, Pedro Ramos, Laure Gonnord, and Fernando Pereira, In Proceedings of International Symposium of Code Generation and Optmization, 2017. – Lire l’article
- « Symbolic Range Analysis of Pointers », Vitor Paisante, Maroua Maalej, Leonardo Barbosa, Laure Gonnord, and Fernando Pereira, In Proceedings of International Symposium of Code Generation and Optmization, 2016. – Lire l’article