Skip to main content
Log in

On the sequential nature of interprocedural program-analysis problems

  • Published:
Acta Informatica Aims and scope Submit manuscript

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.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  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 1988

  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)

    Article  Google Scholar 

  3. Deransart, P., Jourdan, M., Lorho, B.: Attribute Grammars: Definitions, Systems and Bibliography (Lecture Notes in Comput. Sci., Vol. 323). New York: Springer 1988

    Google Scholar 

  4. Dwork, C., Kanellakis, P.C., Mitchell, J.C.: On the sequential nature of unification. J. Logic Program.1, 35–50 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  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)

    Article  MATH  Google Scholar 

  6. Goldschlager, L.: The monotone and planar circuit value problems are log-space comnplete for P. ACM SIGACT News9 (2), 25–29 (1977)

    Article  Google Scholar 

  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 1990

    Google Scholar 

  8. Horwitz, S., Prins, J., Reps, T.: Integrating non-interfering versions of programs. ACM Trans. Program. Lang. Syst.11 (3), 345–387 (1989)

    Article  Google Scholar 

  9. Horwitz, S., Reps, T., Binkley, D.: Interprocedural slicing using dependence graphs. ACM Trans. Program. Lang. Syst.12 (1), 26–60 (1990)

    Article  Google Scholar 

  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 1988

    Google Scholar 

  11. Jones, N.D., Laaser, W.T.: Complete problems for deterministic polynomial time. Theoret. Comput. Sci.3, 105–117 (1977)

    MATH  MathSciNet  Google Scholar 

  12. Kastens, U.: Ordered attribute grammars. Acta Inform.13 (3), 229–256 (1980)

    Article  MATH  MathSciNet  Google Scholar 

  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 1976

    Google Scholar 

  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 1973

    Google Scholar 

  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 1992

    Google Scholar 

  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 1981

    Google Scholar 

  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 1991

    Google Scholar 

  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)

    Article  Google Scholar 

  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 1993

    Chapter  Google Scholar 

  20. Landi, W.: Undecidability of static analysis. ACM Lett. on Programming Languages and Systems1 (4), (1993)

  21. Lyle, J., Weiser, M.: Experiments on slicing-based debugging tools. In Proc. First Conf. on Empirical Studies of Programming, 1986. Ablex Publishing Co. 1986

  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 1991

    Google Scholar 

  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 1981

    Google Scholar 

  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)

    Article  Google Scholar 

  25. Papadimitriou, C.H., Computational Complexity. Reading, MA: Addison-Wesley 1994

    MATH  Google Scholar 

  26. Ramalingam, G.: The undecidability of aliasing. ACM Trans. Program. Lang. Syst.16 (5), 1476–1471 (1994)

    Article  Google Scholar 

  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)

    Article  Google Scholar 

  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 1994

    Google Scholar 

  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 1995

    Google Scholar 

  30. Robinson, J.A.: Logic and logic programming. Comm. ACM35 (3), 40–65 (1992)

    Article  MathSciNet  Google Scholar 

  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 1995

    Google Scholar 

  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 1981

    Google Scholar 

  33. Weiser, M.: Reconstructing sequential behavior from parallel behavior projections. Inform. Process. Lett.17, 129–135 (1983).

    Article  MATH  Google Scholar 

  34. Weiser, M.: Program slicing, IEEE Trans. on Software Eng.SE-10 (4), 352–357 (1984)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Thomas Reps.

Additional information

Work performed at the Datalogisk Institut, University of Copenhagen, Copenhagen, Denmark. This work was supported in part by a David and Lucile Packard Fellowship for Science and Engineering, by the National Science Foundation under grant CCR-9100424, and by the Defense Advanced Research Projects Agency under ARPA Order No. 8856 (monitored by the Office of Naval Research under contract N00014-92-J-1937).

Rights and permissions

Reprints and permissions

About this article

Cite this article

Reps, T. On the sequential nature of interprocedural program-analysis problems. Acta Informatica 33, 739–757 (1996). https://doi.org/10.1007/BF03036473

Download citation

  • Received:

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF03036473

Keywords

Navigation