Advertisement

Acta Informatica

, Volume 33, Issue 5, pp 739–757 | Cite as

On the sequential nature of interprocedural program-analysis problems

  • Thomas Reps
Article

Abstract

In this paper, we study two interprocedural program-analysis problems—interprocedural slicing and interprocedural dataflow analysis— and present the following results:
  • • Interprocedural slicing is log-space complete forP.

  • • The problem of obtaining “meet-over-all-valid-paths” solutions to interprocedural versions of distributive dataflow-analysis problems isP-hard.

  • • Obtaining “meet-over-all-valid-paths” solutions to interprocedural versions of distributive dataflow-analysis problems that involve finite sets of dataflow facts (such as the classical “gen/kill” problems) is log-space complete forP.

These results provide evidence that there do not exist fast (Nℐ-class) parallel algorithms for interprocedural slicing and precise interprocedural dataflow analysis (unlessP =Nℐ). That is, it is unlikely that there are algorithms for interprocedural slicing and precise interprocedural dataflow analysis for which the number of processors is bounded by a polynomial in the size of the input, and whose running time is bounded by a polynomial in the logarithm of the size of the input. This suggests that there are limitations on the ability to use parallelism to overcome compiler bottlenecks due to expensive interprocedural-analysis computations.

Keywords

Dependence Graph Sequential Nature Program Point Input Gate Output Gate 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Badger, L., Weiser, M.: Minimizing communication for synchronizing parallel dataflow programs. In Proc. 1988 Int. Conf. on Parallel Processing, St. Charles, IL, 1988. University Park, PA: Pennsylvania State University Press 1988Google Scholar
  2. 2.
    Callahan, D.: The program summary graph and flow-sensitive interprocedural data flow analysis. Proc. ACM SIGPLAN 88 Conf. on Programming Language Design and Implementation, Atlanta, GA, 1988. ACM SIGPLAN Notices23 (7), 47–56 (1988)CrossRefGoogle Scholar
  3. 3.
    Deransart, P., Jourdan, M., Lorho, B.: Attribute Grammars: Definitions, Systems and Bibliography (Lecture Notes in Comput. Sci., Vol. 323). New York: Springer 1988Google Scholar
  4. 4.
    Dwork, C., Kanellakis, P.C., Mitchell, J.C.: On the sequential nature of unification. J. Logic Program.1, 35–50 (1984)MATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    Ferrante, J., Ottenstein, K., Warren, J.: The program dependence graph and its use in optimization. ACM Trans. Program. Lang. Syst.9 (3), 319–349 (1987)MATHCrossRefGoogle Scholar
  6. 6.
    Goldschlager, L.: The monotone and planar circuit value problems are log-space comnplete for P. ACM SIGACT News9 (2), 25–29 (1977)CrossRefGoogle Scholar
  7. 7.
    Henglein, F.: Fast left-linear semi-unification. In Proc. Int. Conf. on Computing and Information, 1990 (Lecture Notes in Computer Science, Vol. 468, pp. 82–91). New York: Springer 1990Google Scholar
  8. 8.
    Horwitz, S., Prins, J., Reps, T.: Integrating non-interfering versions of programs. ACM Trans. Program. Lang. Syst.11 (3), 345–387 (1989)CrossRefGoogle Scholar
  9. 9.
    Horwitz, S., Reps, T., Binkley, D.: Interprocedural slicing using dependence graphs. ACM Trans. Program. Lang. Syst.12 (1), 26–60 (1990)CrossRefGoogle Scholar
  10. 10.
    Hwang, J.C., Du, M.W., Chou, C.R.: Finding program slices for recursive procedures. In Proc. IEEE COMPSAC 88, Chicago, IL, 1988. Washington, DC: IEEE Computer Society 1988Google Scholar
  11. 11.
    Jones, N.D., Laaser, W.T.: Complete problems for deterministic polynomial time. Theoret. Comput. Sci.3, 105–117 (1977)MATHMathSciNetGoogle Scholar
  12. 12.
    Kastens, U.: Ordered attribute grammars. Acta Inform.13 (3), 229–256 (1980)MATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Kennedy, K., Warren, S.K.: Automatic generation of efficient evaluators for attribute grammars. In Conf. Record of the Third ACM Symp. on Principles of Programming Languages, Atlanta, GA, pp. 32–49, 1976. New York: ACM 1976Google Scholar
  14. 14.
    Kildall, G.: A unified approach to global program optimization. In Conf. Record of the First ACM Symp. on Principles of Programming Languages. pp. 194–206, 1973. New York: ACM 1973Google Scholar
  15. 15.
    Knoop, J., Steffen, B.: The interprocedural coincidence theorem. In Proc. Fourth Int. Conf. on Compiler Construction, Paderborn, FRG, 1992 (Lecture Notes in Computer Science, Vol. 641, ed. U. Kastens and P. Pfahler). New York: Springer 1992Google Scholar
  16. 16.
    Kuck, D.J., Kuhn, R.H., Leasure, B., Padua, D.A., Wolfe, M.: Dependence graphs and compiler optimizations. In Conf. Record of the Eighth ACM Symp. on Principles of Programming Languages, pp. 207–218. Willamsburg, VA, 1981. New York: ACM 1981Google Scholar
  17. 17.
    Landi, W., Ryder, B.G.: Pointer-induced aliasing: A problem classification. In Conf. Record of the Eighteenth ACM Symp. on Principles of Programming Languages, Orlando, FL, pp. 93–101, 1991. New York: ACM 1991Google Scholar
  18. 18.
    Landi, W., Ryder, B.G.: A safe approximate algorithm for interprocedural pointer aliasing. Proc. ACM SIGPLAN 92 Conf. on Programming Language Design and Implementation, San Farncisco, CA, 1991. ACM SIGPLAN Notices27 (7), 235–248 (1992)CrossRefGoogle Scholar
  19. 19.
    Landi, W., Ryder, B.G., Zhang, S.: Interprocedural modification side effect analysis with pointer aliasing. In Proc. ACM SIGPLAN 93 Conf. on Programming Language Design and Implementation, Albuquerque, NM, pp. 56–67, 1993. New York: ACM 1993CrossRefGoogle Scholar
  20. 20.
    Landi, W.: Undecidability of static analysis. ACM Lett. on Programming Languages and Systems1 (4), (1993)Google Scholar
  21. 21.
    Lyle, J., Weiser, M.: Experiments on slicing-based debugging tools. In Proc. First Conf. on Empirical Studies of Programming, 1986. Ablex Publishing Co. 1986Google Scholar
  22. 22.
    Möncke, U., Wilhelm, R.: Grammar flow analysis. In Attribute Grammars, Applications and Systems, International Summer School SAGA, Prague, Czechoslovakia, pp. 151–186, 1991. (Lectures in Comput. Sci., Vol. 545, ed. H. Alblas and B. Melichar). New York: Springer 1991Google Scholar
  23. 23.
    Myers, E.: A precise inter-procedural data flow algorithm. In Conf. Record of the Eighth ACM Symp. on Principles of Programming Languages, Williamsburg, VA, pp. 219–230, 1981. New York: ACM 1981Google Scholar
  24. 24.
    Ottenstein, K.J., Ottenstein, L.M.: The program dependence graph in a software development environment. Proc. ACM SIGSOFT/SIGPLAN Software Engineering Symp. on Practical Software Development Environments, Pittsburgh, PA, 1984. ACM SIGPLAN Notices19 (5), 177–184 (1984)CrossRefGoogle Scholar
  25. 25.
    Papadimitriou, C.H., Computational Complexity. Reading, MA: Addison-Wesley 1994MATHGoogle Scholar
  26. 26.
    Ramalingam, G.: The undecidability of aliasing. ACM Trans. Program. Lang. Syst.16 (5), 1476–1471 (1994)CrossRefGoogle Scholar
  27. 27.
    Reps, T., Horwitz, S., Sagiv, M., Rosay, G.: Speeding up slicing, SIGSOFT 94: Proc. Second ACM SIGSOFT Symp. on the Foundations of Software Engineering, New Orleans, LA, 1994, ACM SIGSOFT Software Engineering Notes19 (5), 11–20 (1994)CrossRefGoogle Scholar
  28. 28.
    Reps, T.: Demand interprocedural program analysis using logic databases. In R. Ramakrishnan (ed.) Applications of Logic Databases, pp. 163–196. Boston, MA: Kluwer Academic Publishers 1994Google Scholar
  29. 29.
    Reps, T., Horwitz, S., Sagiv, M.: Precise interprocedural dataflow analysis via graph reachability. In Conf. Record of the Twenty-Second ACM Symp. on Principles of Programming Languages, San Francisco, CA, pp. 49–61, 1995. New York: ACM 1995Google Scholar
  30. 30.
    Robinson, J.A.: Logic and logic programming. Comm. ACM35 (3), 40–65 (1992)CrossRefMathSciNetGoogle Scholar
  31. 31.
    Sagiv, M., Reps, T., Horwitz, S.: Precise interprocedural dataflow analysis with applications to constant propagation. In M.I. Schwartzbach (ed.) Proc. FASE 95: Colloquium on Formal Approaches in Software Engineering. Aarhus, Denmark, 1995. (Lecture Notes in Comput. Sci. Vol. 915) New York: Springer 1995Google Scholar
  32. 32.
    Sharir, M., Pnueli, A.: Two approaches to interprocedural data flow analysis. In S.S. Muchnick and N.D. Jones (eds.) Program Flow Analysis: Theory and Applications, pp. 189–233. Englewood Cliffs, NJ: Prentice-Hall 1981Google Scholar
  33. 33.
    Weiser, M.: Reconstructing sequential behavior from parallel behavior projections. Inform. Process. Lett.17, 129–135 (1983).MATHCrossRefGoogle Scholar
  34. 34.
    Weiser, M.: Program slicing, IEEE Trans. on Software Eng.SE-10 (4), 352–357 (1984)Google Scholar

Copyright information

© Springer-Verlag 1996

Authors and Affiliations

  1. 1.Computer Sciences DepartmentUniversity of Wisconsin-MadisonMadisonUSA

Personalised recommendations