Skip to main content

Optimization Under the Perspective of Soundness, Completeness, and Reusability

  • Chapter
  • First Online:
Correct System Design

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1710))

Abstract

While soundness and completeness are unchallengedly the surveyor‘s rod for evaluating the worthiness of proof calculi in program verification, it is not common to refer to these terms for rating the worthiness of performance improving transformations in program optimization. In this article we reconsider optimization under the perspective of soundness, completeness, and, additionally, reusability. Soundness can here be interpreted as semantics preservation, completeness as optimality in a specific, well-defined sense, and reusability as paradigm-transcending robustness of the rationale guaranteeing soundness and completeness of an optimization for a specific setting. Using partial redundancy elimination (PRE) for illustration, we demonstrate that these rationales are usually quite sensitive to paradigm changes. Neither completeness nor soundness are generally preserved. Hence, the reuse of optimization strategies in new paradigms requires usually paradigm-specific adaptations in order to accommodate their specifics. We exemplify this for PRE, and demonstrate that it is generally worth the effort, and an effective means for mastering the complexity of compiler construction in the specific field of code optimization.

Acknowledgements

We dedicate this article to Hans Langmaack. It presents a profile of our work on optimizing compilation under the perspective of soundness and completeness, a focal point of his research interests. We appreciate his constant encouragement and support, and gratefully acknowledge the inspiring and stimulating impact of his advice and attitude towards computer science on our research.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. M. Auslander and M. Hopkins. An overview of the PL.8 compiler. In Proceedings of the ACM SIGPLAN Symposium on Compiler Construction (SCC‘82) (Boston, Massachusetts), volume 17, 6 of ACM SIGPLAN Notices, pages 22–31, 1982.

    Google Scholar 

  2. S. Benkner, S. Andel, R. Blasko, P. Brezany, A. Celic, B. M. Chapman, M. Egg, T. Fahringer, J. Hulman, E. Kelc, E. Mehofer, H. Moritsch, M. Paul, K. Sanjari, V. Sipkova, B. Velkov, B. Wender, and H. P. Zima. Vienna Fortran Compilation System-Version 1.2-User’s Guide. Institute for Software Technology and Parallel Systems, University of Vienna, Vienna, Austria, 1996.

    Google Scholar 

  3. P. Cousot. Abstract interpretation. ACM Computing Surveys, 28(2):324–328, 1996.

    Article  Google Scholar 

  4. P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conference Record of the 4th Annual Symposium on Principles of Programming Languages (POPL‘77) (Los Angeles, California), pages 238–252. ACM, New York, 1977.

    Google Scholar 

  5. P. Cousot and R. Cousot. Systematic design of program analysis frameworks. In Conference Record of the 6th Annual Symposium on Principles of Programming Languages (POPL‘79) (San Antonio, Texas), pages 269–282. ACM, New York, 1979.

    Google Scholar 

  6. P. Cousot and R. Cousot. Abstract interpretation frameworks. Journal of Logic and Computation, 2(4):511–547, 1992.

    Article  MATH  MathSciNet  Google Scholar 

  7. K.-H. Drechsler and M. P. Stadel. A variation of Knoop, Rüthing and Steffen’s LAZY CODE MOTION. ACM SIGPLAN Notices, 28(5):29–38, 1993.

    Google Scholar 

  8. M. S. Hecht. Flow Analysis of Computer Programs. Elsevier, North-Holland, 1977.

    MATH  Google Scholar 

  9. J. B. Kam and J. D. Ullman. Monotone data flow analysis frameworks. Acta Informatica, 7:305–317,1977.

    Article  MATH  MathSciNet  Google Scholar 

  10. G. A. Kildall. A unified approach to global program optimization. In Conference Record of the 1st Annual Symposium on Principles of Programming Languages (POPL‘73) (Boston, Massachusetts), pages 194–206. ACM, New York, 1973.

    Google Scholar 

  11. M. Klein, J. Knoop, D. Koschützki, and B. Steffen. DFA&OPT-MetaFrame: A tool kit for program analysis and optimization. In Proceedings of the 2nd International Workshop on Tools and Algorithms for the Construction and Analysis of Systems (TACAS‘96) (Passau, Germany), Lecture Notes in Computer Science, vol. 1055, pages 422–426. Springer-Verlag, Heidelberg, Germany, 1996.

    Google Scholar 

  12. J. Knoop. Eliminating partially dead code in explicitly parallel programs. Theoretical Computer Science, 196(1-2):365–393, 1998. (Special issue devoted to Euro-Par‘96).

    Article  MATH  MathSciNet  Google Scholar 

  13. J. Knoop. Formal callability and its relevance and application to interprocedural data-flow analysis. In Proceedings of the 6th IEEE Computer Society 1998 International Conference on Computer Languages (ICCL‘98) (Chicago, Illinois), pages 252–261. IEEE Computer Society, Los Alamitos, 1998.

    Google Scholar 

  14. J. Knoop. Optimal Interprocedural Program Optimization: A new Framework and its Application. PhD thesis. University of Kiel, Germany, 1993. Lecture Notes in Computer Science Tutorial, vol. 1428, Springer-Verlag, Heidelberg, Germany, 1998.

    Google Scholar 

  15. J. Knoop. From DFA-frameworks to DFA-generators: A unifying multiparadigm approach. In Proceedings of the 5th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS‘99) (Amsterdam, The Netherlands), Lecture Notes in Computer Science, vol. 1579, pages 360–374. Springer-Verlag, Heidelberg, Germany, 1999.

    Chapter  Google Scholar 

  16. J. Knoop and W. Golubski. Abstract interpretation: A uniform framework for type analysis and classical optimization of object-oriented programs. In Proceedings of the 1st International Symposium on Object-Oriented Technology “The White OO Nights” (WOON‘96) (St. Petersburg, Russia), pages 126–142, 1996.

    Google Scholar 

  17. J. K noop, D. Koschützki, and B. Steffen. Basic-block graphs: Living dinosaurs? In Proceedings of the 7th International Conference on Compiler Construction (CC‘98) (Lisbon, Portugal), Lecture Notes in Computer Science, vol. 1383, pages 65–79. Springer-Verlag, Heidelberg, Germany, 1998.

    Google Scholar 

  18. J. Knoop and E. Mehofer. Interprocedural distribution assignment placement: More than just enhancing intraprocedural placing techniques. In Proceedings of the 5th IEEE International Conference on Parallel Architectures and Compilation Techniques (PACT‘97) (San Francisco, California), pages 26–37. IEEE Computer Society, Los Alamitos, 1997.

    Google Scholar 

  19. J. Knoop and E. Mehofer. Optimal distribution assignment placement. In Proceedings of the 3rd European Conference on Parallel Processing (Euro-Par‘97) (Passau, Germany), Lecture Notes in Computer Science, vol. 1300, pages 364–373. Springer-Verlag, Heidelberg, Germany, 1997.

    Google Scholar 

  20. J. Knoop, O. Rüthing, and B. Steffen. Lazy code motion. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI‘92) (San Francisco, California), volume 27,7 of ACM SIGPLAN Notices, pages 224–234, 1992.

    Google Scholar 

  21. J. Knoop, O. Rüthing, and B. Steffen. Optimal code motion: Theory and practice. ACM Transactions on Programming Languages and Systems, 16(4):1117–1155, 1994.

    Article  Google Scholar 

  22. J. Knoop, O. Rüthing, and B. Steffen. Partial dead code elimination. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI‘94) (Orlando, Florida), volume 29,6 of ACM SIGPLAN Notices, pages 147–158, 1994.

    Google Scholar 

  23. J. Knoop, O. Rüthing, and B. Steffen. The power of assignment motion. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI‘95) (La Jolla, California), volume 30,6 of ACM SIGPLAN Notices, pages 233–245, 1995.

    Article  Google Scholar 

  24. J. Knoop, O. Rüthing, and B. Steffen. Towards a tool kit for the automatic generation of interprocedural data flow analyses. Journal of Programming Languages, 4(4):211–246, 1996.

    Google Scholar 

  25. J. Knoop, O. Rüthing, and B. Steffen. Code motion and code placement: Just synomyms? In Proceedings of the 7th European Symposium on Programming (ESOP‘98) (Lisbon, Portugal), Lecture Notes in Computer Science, vol. 1381, pages 154–169. Springer-Verlag, Heidelberg, Germany, 1998.

    Google Scholar 

  26. J. Knoop and F. Schreiber. Analysing and optimizing strongly typed objectoriented languages: A generic approach and its application to Oberon-2. In Proceedings of the 2nd International Symposium on Object-Oriented Technology “The White OO Nights★#x201D; (WOON‘97) (St. Petersburg, Russia), pages 252–266, 1997.

    Google Scholar 

  27. J. Knoop and B. Steffen. Code motion for explicitly parallel programs. In Proceedings of the 7th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming (PPoPP‘99) (Atlanta, Georgia), pages 13–14, 1999.

    Google Scholar 

  28. J. Knoop and B. Steffen. The interprocedural coincidence theorem. In Proceedings of the 4th International Conference on Compiler Construction (CC‘92) (Paderborn, Germany), Lecture Notes in Computer Science, vol. 641, pages 125–140. Springer-Verlag, Heidelberg, Germany, 1992.

    Google Scholar 

  29. J. Knoop, B. Steffen, and J. Vollmer. Parallelism for free: Bitvector analyses → No state explosion! In Proceedings of the 1st International Workshop on Tools and Algorithms for the Construction and Analysis of Systems (TACAS‘95) (Aarhus, Denmark), Lecture Notes in Computer Science, vol. 1019, pages 264–289. Springer-Verlag, Heidelberg, Germany, 1995.

    Google Scholar 

  30. J. Knoop, B. Steffen, and J. Vollmer. Parallelism for free: Efficient and optimal bitvector analyses for parallel programs. ACM Transactions on Programming Languages and Systems, 18(3):268–299, 1996.

    Article  Google Scholar 

  31. K. Marriot. Frameworks for abstract interpretation. Acta Informatica, 30:103–129, 1993.

    Article  MathSciNet  Google Scholar 

  32. E. Morel and C. Renvoise. Global optimization by suppression of partial redundancies. Communications of the ACM, 22(2):96–103, 1979.

    Article  MATH  MathSciNet  Google Scholar 

  33. E. Morel and C. Renvoise. Interprocedural elimination of partial redundancies. In S. S. Muchnick and N. D. Jones, editors, Program Flow Analysis: Theory and Applications, chapter 7, pages 160–188. Prentice Hall, Englewood Cliffs, New Jersey, 1981.

    Google Scholar 

  34. R. Morgan. Building an Optimizing Compiler. Digital Press, 1998.

    Google Scholar 

  35. S. S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann, San Francisco, California, 1997.

    Google Scholar 

  36. S. S. Muchnick and N. D. Jones, editors. Program Flow Analysis: Theory and Applications. Prentice Hall, Englewood Cliffs, New Jersey, 1981.

    MATH  Google Scholar 

  37. F. Nielson. A bibliography on abstract interpretations. ACM SIGPLAN Notices, 21:31–38, 1986.

    Google Scholar 

  38. J. Palsberg and M. I. Schwartzbach. Object-oriented Type Systems. John Wiley & Sons, 1994.

    Google Scholar 

  39. Jens Palsberg. Type inference for objects. ACM Computing Surveys, 28(2):358–359, June 1996.

    Article  Google Scholar 

  40. O. Rüthing. Bidirectional data flow analysis in code motion: Myth and reality. In Proceedings of the 5th Static Analysis Symposium (SAS‘98) (Pisa, Italy), Lecture Notes in Computer Science, vol. 1503, pages 1–16. Springer-Verlag, Heidelberg, Germany, 1998.

    Google Scholar 

  41. O. Rüthing. Interacting Code Motion Transformations: Their Impact and Their Complexity. PhD thesis. University of Kiel, Germany, 1997. Lecture Notes in Computer Science, vol. 1539, Springer-Verlag, Heidelberg, Germany, 1998.

    Google Scholar 

  42. O. Rüthing. Optimal code motion in the presence of large expressions. In Proceedings of the 6th IEEE Computer Society 1998 International Conference on Computer Languages (ICCL‘98) (Chicago, Illinois), pages 216–225. IEEE Computer Society, Los Alamitos, 1998.

    Google Scholar 

  43. O. Rüuthing, J. Knoop, and B. Steffen. Sparse code motion. Technical Report 712/1999, Department of Computer Science, University of Dortmund, Germany, 1999.

    Google Scholar 

  44. M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis. In S. S. Muchnick and N. D. Jones, editors, Program Flow Analysis: Theory and Applications, chapter 7, pages 189–233. Prentice Hall, Englewood Cliffs, New Jersey, 1981.

    Google Scholar 

  45. VFCS/VFC Homepage. Institute for Softwaretechnology and Parallel Systems, University of Vienna, Austria, http://www.par.univie.ac.at/research/langcomp/ lang-comp.html.

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 1999 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Knoop, J., Rüthing, O. (1999). Optimization Under the Perspective of Soundness, Completeness, and Reusability. In: Olderog, ER., Steffen, B. (eds) Correct System Design. Lecture Notes in Computer Science, vol 1710. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48092-7_13

Download citation

  • DOI: https://doi.org/10.1007/3-540-48092-7_13

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-66624-0

  • Online ISBN: 978-3-540-48092-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics