Constraint-Based Inter-Procedural Analysis of Parallel Programs

  • Helmut Seidl
  • Bernhard Steffen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1782)


We provide a uniform framework for the analysis of programs with procedures and explicit, unbounded, fork/join parallelism covering not only bitvector problems like reaching definitions or live variables but also non-bitvector problems like simple constant propagation. Due to their structural similarity to the sequential case, the resulting algorithms are as efficient as their widely accepted sequential counterparts, and they can easily be integrated in existing program analysis environments like e.g. MetaFrame or PAG. We are therefore convinced that our method will soon find its way into industrial-scale computer systems.


Inter-procedural program analysis explicit parallelism bit-vector problems simple constant propagation coincidence theorems 


  1. [1]
    Martin Alt and Florian Martin. Generation of Efficient Interprocedural Analyzers with PAG. In Proceedings of 2nd Static Analysis Symposium (SAS), pages 33–50. LNCS 983, Springer Verlag, 1995.Google Scholar
  2. [2]
    Patrick Cousot. Semantic Foundations of Program Analysis. In Steven S. Muchnick and Neil D. Jones, editors, Program Flow Analysis: Theory and Applications, chapter 10, pages 303–342. Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1981.Google Scholar
  3. [3]
    Patrick Cousot and Radhia Cousot. Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fix-points. In Proceedings of 4th ACM Symposium on Principles of Programming Languages (POPL), pages 238–252. ACM Press, 1977.Google Scholar
  4. [4]
    Patrick Cousot and Radhia Cousot. Static Determination of Dynamic Properties of Recursive Programs. In E.J. Neuhold, editor, Formal Descriptions of Programming Concepts, pages 237–277. North-Holland Publishing Company, 1977.Google Scholar
  5. [5]
    J. Esparza and J. Knoop. An Automata-theoretic Approach to Interprocedural Data-flow Analysis. In FoSSaCS’ 99, volume 1578 of Lecture Notes in Computer Science (LNCS), pages 14–30. Springer-Verlag, 1999.Google Scholar
  6. [6]
    J. Esparza and A. Podelski. Efficient Algorithms for pre* and post* on Interprocedural Parallel Flow Graphs. In ACM International Conference on Princples of Programming Languages (POPL), 2000. To appear.Google Scholar
  7. [7]
    M.S. Hecht. Flow Analysis of Computer Programs. The Computer Science Library. North-Holland, New York, 1977.zbMATHGoogle Scholar
  8. [8]
    J. Knoop and B. Steffen. The Interprocedural Coincidence Theorem. In 4th International Conference on Compiler Construction (CC’92), volume 641 of Lecture Notes in Computer Science (LNCS), pages 125–140. Springer-Verlag, 1992.Google Scholar
  9. [9]
    J. Knoop. Parallel Constant Propagation. In 4th European Conference on Parallel Processing (Euro-Par), volume 1470 of Lecture Notes in Computer Science (LNCS), pages 445–455. Springer-Verlag, 1998.Google Scholar
  10. [10]
    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, December 1996. Chapman & Hall, London (UK).Google Scholar
  11. [11]
    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.CrossRefGoogle Scholar
  12. [12]
    D. Lugiez and P. Schnoebelen. The Regular Viewpoint on PA-Processes. In 9th International Conference on Concurrency (CONCUR), volume 1466 of Lecture Notes In Computer Science (LNCS), pages 50–66. Springer-Verlag, 1998.Google Scholar
  13. [13]
    H. Seidl and C. Fecht. Interprocedural Analyses: A Comparison. Journal of Logic Programming (JLP), 43(2):123–156, 2000.zbMATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2000

Authors and Affiliations

  • Helmut Seidl
    • 1
  • Bernhard Steffen
    • 2
  1. 1.FB IV - InformatikUniversität TrierTrierGermany
  2. 2.Lehrstuhl für ProgrammiersystemeUniversität DortmundDortmundGermany

Personalised recommendations