A Structured Approach to Proving Compiler Optimizations Based on Dataflow Analysis
This paper reports on the correctness proof of compiler optimizations based on data-flow analysis. We formulate the optimizations and analyses as instances of a general framework for data-flow analyses and transformations, and prove that the optimizations preserve the behavior of the compiled programs. This development is a part of a larger effort of certifying an optimizing compiler by proving semantic equivalence between source and compiled code.
KeywordsProof Obligation Correctness Proof Symbolic Expression Program Point Register Allocation
Unable to display preview. Download preview PDF.
- 2.Kildall, G.A.: A unified approach to global program optimization. In: 1st symposium on Principles of Programming Languages, pp. 194–206. ACM Press, New York (1973)Google Scholar
- 4.Lerner, S., Millstein, T., Rice, E., Chambers, C.: Automated soundness proofs for dataflow analyses and transformations via local rules. In: 32nd symposium on Principles of Programming Languages, pp. 364–377. ACM Press, New York (2005)Google Scholar
- 8.Rinard, M.: Credible compilation. Technical Report MIT-LCS-TR-776, MIT (1999)Google Scholar