ACM Home Page
Please provide us with feedback. Feedback
Verified validation of lazy code motion
Full text PdfPdf (450 KB)
Source
Conference on Programming Language Design and Implementation archive
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation table of contents
Dublin, Ireland
SESSION: Optimizations and proofs table of contents
Pages 316-326  
Year of Publication: 2009
ISBN:978-1-60558-392-1
Also published in ...
Authors
Jean-Baptiste Tristan  INRIA Paris-Rocquencourt, Rocquencourt, France
Xavier Leroy  INRIA Paris-Rocquencourt, Rocquencourt, France
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 24,   Downloads (12 Months): 81,   Citation Count: 1
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1542476.1542512
What is a DOI?

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.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Clark W. Barret, Yi Fang, Benjamin Goldberg, Ying Hu, Amir Pnueli, and Lenore Zuck. TVOC: A translation validator for optimizing compilers. In phComputer Aided Verification, 17th Int. Conf., CAV 2005, volume 3576 of Lecture Notes in Computer ScienceLNCS, pages 291---295. Springer, 2005.
 
2
3
 
4
CoqCoq development team. The Coq proof assistant. Software and documentation available at http://coq.inria.fr/, 1989--2009.
 
5
Sumit Gulwani and George C. Necula. A polynomial-time algorithm for global value numbering. In phStatic Analysis, 11th Int. Symp., SAS 2004, volume 3148 of Lecture Notes in Computer Science, pages 212--227. Springer, 2004.
 
6
Yuqiang Huang, Bruce R. Childers, and Mary Lou Soffa. Catching and identifying bugs in register allocation. In phStatic Analysis, 13th Int. Symp., SAS 2006, volume 4134 of Lecture Notes in Computer Science, pages 281--300. Springer, 2006.
 
7
8
9
10
 
11
12
 
13
Xavier Leroy. A formally verified compiler back-end. arXiv:0902.2137 {cs}. Submitted, July 2008.
14
 
15
 
16
Xavier Leroy et al. The CompCert verified compiler. Development available at http://compcert.inria.fr, 2004--2009.
17
18
 
19
Amir Pnueli, Ofer Shtrichman, and Michael Siegel. The code validation tool (CVT) -- automatic verification of a compilation process. phInternational Journal on Software Tools for Technology Transfer, 2: 192--201, 1998a.
 
20
 
21
Martin Rinard and Darko Marinov. Credible compilation with pointers. In phWorkshop on Run-Time Result Verification, 1999.
22
 
23
24
 
25
 
26
 
27
Lenore Zuck, Amir Pnueli, Yi Fang, and Benjamin Goldberg. VOC: A methodology for translation validation of optimizing compilers. phJournal of Universal Computer Science, 9 (3): 223--247, 2003.


Collaborative Colleagues:
Jean-Baptiste Tristan: colleagues
Xavier Leroy: colleagues