Verified Validation of Lazy Code Motion

Abstract : Translation validation establishes a posteriori the correctness of a run of a compilation pass or other program transformation. In this paper, we develop an efficient translation validation algorithm for the Lazy Code Motion (LCM) optimization. LCM is an interesting challenge for validation because it is a global optimization that moves code across loops. Consequently, care must be taken not to move computations that may fail before loops that may not terminate. Our validator includes a specific check for anticipability to rule out such incorrect moves. We present a mechanically-checked proof of correctness of the validation algorithm, using the Coq proof assistant. Combining our validator with an unverified implementation of LCM, we obtain a LCM pass that is provably semantics-preserving and was integrated in the CompCert formally verified compiler.
Type de document :
Communication dans un congrès
ACM SIGPLAN conference on Programming Language Design and Implementation (PLDI), Jun 2009, Dublin, Ireland. ACM, pp.316-326, 2009, <10.1145/1542476.1542512>
Liste complète des métadonnées


https://hal.inria.fr/inria-00415865
Contributeur : Xavier Leroy <>
Soumis le : vendredi 11 septembre 2009 - 12:16:10
Dernière modification le : jeudi 8 octobre 2015 - 01:03:58
Document(s) archivé(s) le : mardi 16 octobre 2012 - 10:50:29

Fichier

validation-LCM.pdf
Fichiers produits par l'(les) auteur(s)

Identifiants

Collections

Citation

Jean-Baptiste Tristan, Xavier Leroy. Verified Validation of Lazy Code Motion. ACM SIGPLAN conference on Programming Language Design and Implementation (PLDI), Jun 2009, Dublin, Ireland. ACM, pp.316-326, 2009, <10.1145/1542476.1542512>. <inria-00415865>

Partager

Métriques

Consultations de
la notice

176

Téléchargements du document

143