The interprocedural coincidence theorem

  • Jens Knoop
  • Bernhard Steffen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 641)

Abstract

We present an interprocedural generalization of the well-known (intraprocedural) Coincidence Theorem of Kam and Ullman, which provides a sufficient condition for the equivalence of the meet over all paths (MOP) solution and the maximal fixed point (MFP) solution to a data flow analysis problem. This generalization covers arbitrary imperative programs with recursive procedures, global and local variables, and formal value parameters. In the absence of procedures, it reduces to the classical intraprocedural version. In particular, our stack-based approach generalizes the coincidence theorems of Barth and Sharir/Pnueli for the same setup, which do not properly deal with local variables of recursive procedures.

References

  1. [All]
    Allen, F. E. Control flow analysis. SIGPLAN Not. 5, 7 (1970), 1–19.Google Scholar
  2. [Ba1]
    Barth, G. Interprozedurale Datenflußsysteme. Habilitationsschrift, University of Kaiserslautern, Germany, 1981.Google Scholar
  3. [Ba2]
    Barth, G. Interprocedural data flow systems. In Proceedings 6 th GI-Conference, Dortmund, Germany, Springer-Verlag, LNCS 145 (1983), 49–59.Google Scholar
  4. [Bo]
    Bourdoncle, F. Interprocedural abstract interpretation of block structured languages with nested procedures, aliasing and recursivity. In Proceedings 2 nd PLILP, Linköping, Sweden, Springer-Verlag, LNCS 456 (1990), 307–323.Google Scholar
  5. [CC1]
    Cousot, P., and Cousot, R. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings 4 th POPL, Los Angeles, California, 1977, 238–252.Google Scholar
  6. [CC2]
    Cousot, P., and Cousot, R. Static determination of dynamic properties of recursive procedures. In: Neuhold, E. (Ed.). Proceedings of the 2 nd IFIP TC-2 Working Conference on Formal Description of Programming Concepts, St. Andrews, N. B., Canada, 1977, 237–277.Google Scholar
  7. [CCKT]
    Callahan, D., Cooper, K. D., Kennedy, K. W., and Torczon, L. M. Interprocedural constant propagation. In Proceedings SIGPLAN'86 Symp. on Compiler Construction, SIGPLAN Not. 21, 7 (1986), 152–161.Google Scholar
  8. [He]
    Hecht, M. S. Flow analysis of computer programs. Elsevier, North-Holland, 1977.Google Scholar
  9. [JM]
    Jones, N. D., and Muchnick, S. S. A flexible approach to interprocedural data flow analysis and programs with recursive data structures. In Proceedings 9 th POPL, Albuquerque, New Mexico, 1982, 66–74.Google Scholar
  10. [Ki]
    Kildall, G. A. A unified approach to global program optimization. In Proceedings 1 st POPL, Boston, Massachusetts, 1973, 194–206.Google Scholar
  11. [KS1]
    Knoop, J., and Steffen, B. The interprocedural coincidence theorem. Aachener Informatik-Berichte Nr. 91-27, Rheinisch-Westfälische Technische Hochschule Aachen, Aachen, Germany, 1991.Google Scholar
  12. [KS2]
    Knoop, J., and Steffen, B. Optimal interprocedural partial redundancy elimination. In Addenda to Proceedings 4 th CC, Paderborn, Germany, October 5–7, 1992. Technical Report, Department of Computer Science, University of Paderborn, Germany, 1992.Google Scholar
  13. [KS3]
    Knoop, J., and Steffen, B. Efficient and optimal bit-vector data flow analyses: A uniform interprocedural framework. To appear.Google Scholar
  14. [KU]
    Kam, J. B., and Ullman, J. D. Monotone data flow analysis frameworks. Acta Informatica 7, (1977), 309–317.Google Scholar
  15. [La]
    Langmaack, H. On procedures as open subroutines. Part I. Acta Informatica 2, (1973), 311–333.Google Scholar
  16. [Mo]
    Morel, E. Data flow analysis and global optimization. In: Lorho, B. (Ed.). Methods and tools for compiler construction. Cambridge University Press, 1984, 289–315.Google Scholar
  17. [My]
    Myers, E. W. A precise inter-procedural data flow algorithm. In Proceedings 8 th POPL, Williamsburg, Virginia, 1981, 219–230.Google Scholar
  18. [MJ]
    Muchnick, S. S., and Jones, N. D. (Eds.). Program flow analysis: Theory and applications. Prentice Hall, Englewood Cliffs, New Jersey, 1981.Google Scholar
  19. [MR]
    Morel, E., and Renvoise, C. Interprocedural elimination of partial redundancies. In [MJ], 1981, 160–188.Google Scholar
  20. [Ro]
    Rosen, B. K. Data flow analysis for procedural languages. Journal of the ACM 26, 2 (1979), 322–344.Google Scholar
  21. [SK1]
    Steffen, B., and Knoop, J. Finite constants: Characterizations of a new decidable set of constants. In Proceedings 14 th MFCS, Porabka-Kozubnik, Poland, Springer-Verlag, LNCS 379 (1989), 481–491. An extended version appeared in: Theoretical Computer Science 80, 2 (1991), 303–318.Google Scholar
  22. [SK2]
    Steffen, B., and Knoop, J. Finite interprocedural constants. To appear.Google Scholar
  23. [SP]
    Sharir, M., and Pnueli, A. Two approaches to interprocedural data flow analysis. In [MJ], 1981, 189–233.Google Scholar

Copyright information

© Springer-Verlag 1992

Authors and Affiliations

  • Jens Knoop
    • 1
  • Bernhard Steffen
    • 2
  1. 1.Institut für Informatik und Praktische MathematikChristian-Albrechts-UniversitätKiel 1
  2. 2.Lehrstuhl für Informatik IIRheinisch-Westfälische Technische Hochschule AachenAachen

Personalised recommendations