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.
Similar content being viewed by others
References
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
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)
Deransart, P., Jourdan, M., Lorho, B.: Attribute Grammars: Definitions, Systems and Bibliography (Lecture Notes in Comput. Sci., Vol. 323). New York: Springer 1988
Dwork, C., Kanellakis, P.C., Mitchell, J.C.: On the sequential nature of unification. J. Logic Program.1, 35–50 (1984)
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)
Goldschlager, L.: The monotone and planar circuit value problems are log-space comnplete for P. ACM SIGACT News9 (2), 25–29 (1977)
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
Horwitz, S., Prins, J., Reps, T.: Integrating non-interfering versions of programs. ACM Trans. Program. Lang. Syst.11 (3), 345–387 (1989)
Horwitz, S., Reps, T., Binkley, D.: Interprocedural slicing using dependence graphs. ACM Trans. Program. Lang. Syst.12 (1), 26–60 (1990)
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
Jones, N.D., Laaser, W.T.: Complete problems for deterministic polynomial time. Theoret. Comput. Sci.3, 105–117 (1977)
Kastens, U.: Ordered attribute grammars. Acta Inform.13 (3), 229–256 (1980)
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
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
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
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
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
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)
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
Landi, W.: Undecidability of static analysis. ACM Lett. on Programming Languages and Systems1 (4), (1993)
Lyle, J., Weiser, M.: Experiments on slicing-based debugging tools. In Proc. First Conf. on Empirical Studies of Programming, 1986. Ablex Publishing Co. 1986
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
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
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)
Papadimitriou, C.H., Computational Complexity. Reading, MA: Addison-Wesley 1994
Ramalingam, G.: The undecidability of aliasing. ACM Trans. Program. Lang. Syst.16 (5), 1476–1471 (1994)
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)
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
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
Robinson, J.A.: Logic and logic programming. Comm. ACM35 (3), 40–65 (1992)
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
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
Weiser, M.: Reconstructing sequential behavior from parallel behavior projections. Inform. Process. Lett.17, 129–135 (1983).
Weiser, M.: Program slicing, IEEE Trans. on Software Eng.SE-10 (4), 352–357 (1984)
Author information
Authors and Affiliations
Corresponding author
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
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
Received:
Issue Date:
DOI: https://doi.org/10.1007/BF03036473