Pointer Disambiguation via Strict Inequalities

Abstract : The design and implementation of static analyses that disambiguate pointers has been a focus of research since the early days of compiler construction. One of the challenges that arise in this context is the analysis of languages that support pointer arithmetics, such as C, C++ and assembly dialects. This paper contributes to solve this challenge. We start from an obvious, yet unexplored, observation: if a pointer is strictly less than another, they cannot alias. Motivated by this remark, we use the abstract interpretation framework to build strict less-than relations between pointers. To this end, we construct a program representation that bestows the Static Single Information (SSI) property onto our dataflow analysis. SSI gives us an efficient sparse algorithm, which, once seen as a form of abstract interpretation, is correct by construction. We have implemented our static analysis in LLVM. It runs in time linear on the number of program variables, and, depending on the benchmark, it can be as much as six times more precise than the pointer disambiguation techniques already in place in that compiler.
Type de document :
Communication dans un congrès
Code Generation and Optimisation , Feb 2017, Austin, United States. Proceedings of the 2017 International Symposium on Code Generation and Optimization, pp.134-147, 2017
Liste complète des métadonnées

Littérature citée [43 références]  Voir  Masquer  Télécharger

https://hal.archives-ouvertes.fr/hal-01387031
Contributeur : Laure Gonnord <>
Soumis le : jeudi 22 décembre 2016 - 10:59:37
Dernière modification le : vendredi 20 avril 2018 - 15:44:27
Document(s) archivé(s) le : mardi 21 mars 2017 - 08:21:21

Fichier

CGO17_AuthorVersion.pdf
Fichiers produits par l'(les) auteur(s)

Identifiants

  • HAL Id : hal-01387031, version 1

Collections

Citation

Maroua Maalej, Vitor Paisante, Ramos Pedro, Laure Gonnord, Fernando Pereira. Pointer Disambiguation via Strict Inequalities. Code Generation and Optimisation , Feb 2017, Austin, United States. Proceedings of the 2017 International Symposium on Code Generation and Optimization, pp.134-147, 2017. 〈hal-01387031〉

Partager

Métriques

Consultations de la notice

288

Téléchargements de fichiers

561