| Proving optimizations correct using parameterized program equivalence |
| Full text |
Pdf
(493 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 327-337
Year of Publication: 2009
ISBN:978-1-60558-392-1
Also published in ...
|
|
Authors
|
|
Sudipta Kundu
|
University of California, San Diego, San Diego, CA, USA
|
|
Zachary Tatlock
|
University of California, San Diego, San Diego, CA, USA
|
|
Sorin Lerner
|
University of California, San Diego, San Diego, CA, USA
|
|
| Sponsors |
|
| Publisher |
|
| Bibliometrics |
Downloads (6 Weeks): 17, Downloads (12 Months): 85, Citation Count: 0
|
|
|
ABSTRACT
Translation validation is a technique for checking that, after an optimization has run, the input and output of the optimization are equivalent. Traditionally, translation validation has been used to prove concrete, fully specified programs equivalent. In this paper we present Parameterized Equivalence Checking (PEC), a generalization of translation validation that can prove the equivalence of parameterized programs. A parameterized program is a partially specified program that can represent multiple concrete programs. For example, a parameterized program may contain a section of code whose only known property is that it does not modify certain variables. By proving parameterized programs equivalent, PEC can prove the correctness of transformation rules that represent complex optimizations once and for all, before they are ever run. We implemented our PEC technique in a tool that can establish the equivalence of two parameterized programs. To highlight the power of PEC, we designed a language for implementing complex optimizations using many-to-many rewrite rules, and used this language to implement a variety of optimizations including software pipelining, loop unrolling, loop unswitching, loop interchange, and loop fusion. Finally, to demonstrate the effectiveness of PEC, we used our PEC implementation to verify that all the optimizations we implemented in our language preserve program behavior.
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
|
|
| |
2
|
David Cachera, Thomas Jensen, David Pichardie, and Vlad Rusu. Extracting a data flow analyser in constructive logic. In ESOP, 2004.
|
 |
3
|
|
 |
4
|
|
 |
5
|
|
| |
6
|
Benjamin Goldberg, Lenore Zuck, and Clark Barrett. Into the loops: Practical issues in translation validation for optimizing compilers. Electronic Notes in Theoretical Computer Science, 132(1):53--71, May 2005.
|
| |
7
|
|
| |
8
|
M. Kauffmann and R.S. Boyer. The Boyer-Moore theorem prover and its interactive enhancement. Computers and Mathematics with Applications, 29(2):27--62, 1995.
|
| |
9
|
|
 |
10
|
|
| |
11
|
|
| |
12
|
|
 |
13
|
David Lacey , Neil D. Jones , Eric Van Wyk , Carl Christian Frederiksen, Proving correctness of compiler optimizations by temporal logic, Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.283-294, January 16-18, 2002, Portland, Oregon
|
 |
14
|
|
 |
15
|
Sorin Lerner , Todd Millstein , Erika Rice , Craig Chambers, Automated soundness proofs for dataflow analyses and transformations via local rules, Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.364-377, January 12-14, 2005, Long Beach, California, USA
|
 |
16
|
|
| |
17
|
|
| |
18
|
|
 |
19
|
|
| |
20
|
|
| |
21
|
William Pugh. The omega test: a fast and practical integer programming algorithm for dependence analysis. Communications of the ACM, 8:4--13, 1992.
|
| |
22
|
Martin Rinard and Darko Marinov. Credible compilation. In Proceedings of the FLoC Workshop Run-Time Result Verification, July 1999.
|
 |
23
|
|
 |
24
|
|
| |
25
|
|
 |
26
|
|
| |
27
|
Jean-Baptiste Tristan and Xavier Leroy. Verified validation of lazy code motion. In POPL, 2008.
|
| |
28
|
Jean-Baptiste Tristan and Xavier Leroy. Formal verification of translation validators: a case study on instruction scheduling optimizations. In PLDI, 2009.
|
 |
29
|
|
 |
30
|
|
| |
31
|
|
| |
32
|
Lenore Zuck , Amir Pnueli , Benjamin Goldberg , Clark Barrett , Yi Fang , Ying Hu, Translation and Run-Time Validation of Loop Transformations, Formal Methods in System Design, v.27 n.3, p.335-360, November 2005
[doi> 10.1007/s10703-005-3402-z]
|
|