Skip to main content

A Structured Approach to Proving Compiler Optimizations Based on Dataflow Analysis

  • Conference paper
Types for Proofs and Programs (TYPES 2004)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3839))

Included in the following conference series:

  • 533 Accesses

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Cachera, D., Jensen, T., Pichardie, D., Rusu, V.: Extracting a data flow analyser in constructive logic. In: Schmidt, D. (ed.) ESOP 2004. LNCS, vol. 2986, pp. 385–400. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  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 

  3. Klein, G., Nipkow, T.: Verified bytecode verifiers. Theoretical Computer Science 298(3), 583–626 (2002)

    Article  MathSciNet  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 

  5. Morrisett, G., Walker, D., Crary, K., Glew, N.: From system F to typed assembly language. ACM Transactions on Programming Languages and Systems 21(3), 528–569 (1999)

    Article  Google Scholar 

  6. Necula, G.C.: Proof-carrying code. In: 24th symposium Principles of Programming Languages, pp. 106–119. ACM Press, New York (1997)

    Chapter  Google Scholar 

  7. Pnueli, A., Siegel, M., Singerman, E.: Translation validation. In: Steffen, B. (ed.) TACAS 1998. LNCS, vol. 1384, pp. 151–166. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  8. Rinard, M.: Credible compilation. Technical Report MIT-LCS-TR-776, MIT (1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Copyright information

© 2006 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bertot, Y., Grégoire, B., Leroy, X. (2006). A Structured Approach to Proving Compiler Optimizations Based on Dataflow Analysis. In: Filliâtre, JC., Paulin-Mohring, C., Werner, B. (eds) Types for Proofs and Programs. TYPES 2004. Lecture Notes in Computer Science, vol 3839. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11617990_5

Download citation

  • DOI: https://doi.org/10.1007/11617990_5

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-31428-8

  • Online ISBN: 978-3-540-31429-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics