Parallel Data-Flow Analysis of Explicitly Parallel Programs

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


In terms of program verification data-flow analysis (DFA) is commonly understood as the computation of the strongest postcondition for every program point with respect to a precondition which is assured to be valid at the entry of the program. Here, we consider DFA under the dual weakest precondition view of program verification. Based on this view we develop an approach for demand-driven DFA of explicitly parallel programs, which we exemplify for the large and practically most important class of bitvector problems. This approach can directly be used for the construction of online debugging tools. Moreover, it is tailored for parallelization. For bitvector problems, this allows us to compute the information provided by conventional, strongest postcondition-centered DFA at the costs of answering a data-flow query, which are usually much smaller. In practice, this can lead to a remarkable speed-up of analysing and optimizing explicitly parallel programs.


Shared Memory Parallel Statement Parallel Program Sequential Program Semantic Function 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. [1]
    K.R. Apt and E.-R. Olderog. Verification of Sequential and Concurrent Programs. 2nd edition, Springer-V., 1997.Google Scholar
  2. [2]
    P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conf. Rec. 4th Symp. Principles of Prog. Lang. (POPL’77), pages 238–252. ACM, NY, 1977.Google Scholar
  3. [3]
    E. Duesterwald, R. Gupta, and M.L. Soffa. Demand-driven computation of interprocedural data flow. In Conf. Rec. 22nd Symp. Principles of Prog. Lang. (POPL’95), pages 37–48. ACM, NY, 1995.Google Scholar
  4. [4]
    E. Duesterwald, R. Gupta, and M.L. Soffa. A demand-driven analyzer for data flow testing at the integration level. In Proc. IEEE Int. Conf. on Software Engineering (CoSE’96), pages 575–586, 1996.Google Scholar
  5. [5]
    E. Duesterwald, R. Gupta, and M.L. Soffa. A practical framework for demanddriven interprocedural data flow analysis. ACM Trans. Prog. Lang. Syst., 19(6):992–1030, 1997.Google Scholar
  6. [6]
    M.S. Hecht. Flow Analysis of Computer Programs. Elsevier, North-Holland, 1977.Google Scholar
  7. [7]
    S. Horwitz, T. Reps, and M. Sagiv. Demand interprocedural dataflow analysis. In Proc. 3rd ACM SIGSOFT Symp. Foundations of Software Eng. (FSE’95), pages 104–115, 1995.Google Scholar
  8. [8]
    J. Hughes and J. Launchbury. Reversing abstract interpretations. Science of Computer Programming, 22:307–326, 1994.Google Scholar
  9. [9]
    J.B. Kam and J.D. Ullman. Monotone data flow analysis frameworks. Acta Informatica, 7:305–317, 1977.Google Scholar
  10. [10]
    J. Knoop. Optimal Interprocedural Program Optimization: A new Framework and its Application. PhD thesis, Univ. of Kiel, Germany, 1993. LNCS Tutorial 1428, Springer-V., 1998.Google Scholar
  11. [11]
    J. Knoop. Eliminating partially dead code in explicitly parallel programs. TCS, 196(1-2):365–393, 1998. (Special issue devoted to Euro-Par’96).Google Scholar
  12. [12]
    J. Knoop. Parallel constant propagation. In Proc. 4th Europ. Conf. on Parallel Processing (Euro-Par’98), LNCS 1470, pages 445–455. Springer-V., 1998.Google Scholar
  13. [13]
    J. Knoop. Parallel data-flow analysis of explicitly parallel programs. Technical Report 707/1999, Fachbereich Informatik, Universität Dortmund, Germany, 1999.Google Scholar
  14. [14]
    J. Knoop and B. Steffen. Code motion for explicitly parallel programs. In Proc. 7th ACM SIGPLAN Symp. on Principles and Practice of Parallel Programming (PPoPP’99), Atlanta, Georgia, pages 13–24, 1999.Google Scholar
  15. [15]
    J. Knoop, B. Steffen, and J. Vollmer. Parallelism for free: Efficient and optimal bitvector analyses for parallel programs. ACM Trans. Prog. Lang. Syst., 18(3):268–299, 1996.Google Scholar
  16. [16]
    T. Reps. Solving demand versions of interprocedural analysis problems. In Proc. 5th Int. Conf. on Compiler Construction (CC’94), LNCS 786, pages 389–403. Springer-V., 1994.Google Scholar
  17. [17]
    X. Yuan, R. Gupta, and R. Melham. Demand-driven data flow analysis for communication optimization. Parallel Processing Letters, 7(4):359–370, 1997.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1999

Authors and Affiliations

  • Jens Knoop
    • 1
  1. 1.Universität DortmundDortmundGermany

Personalised recommendations