Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Open access

An interval-based approach to exhaustive and incremental interprocedural data-flow analysis

Published: 01 July 1990 Publication History

Abstract

We reformulate interval analysis so that it can he applied to any monotone data-flow problem, including the nonfast problems of flow-insensitive interprocedural analysis. We then develop an incremental interval analysis technique that can be applied to the same class of problems. When applied to flow-insensitive interprocedural data-flow problems, the resulting algorithms are simple, practical, and efficient. With a single update, the incremental algorithm can accommodate any sequence of program changes that does not alter the structure of the program call graph. It can also accommodate a large class of structural changes. For alias analysis, we develop an incremental algorithm that obtains the exact solution as computed by an exhaustive algorithm. Finally, we develop a transitive closure algorithm that is particularly well suited to the very sparse matrices associated with the problems we address.

References

[1]
ALLEN, F., BURKE, M., CHARLES, P., CYTRON, R., AND FERRANTE, J. An overview of the PTRAN analysis system for multiprocessing. In Proceedings of the 1987 International Conference on Supercomputing (Athens, June 8-12, 1987). Springer-Verlag, New York, 1987, pp. 194-211. (Also published in J. Parallel Distrib. Comput. 5 (Oct. 1988), 617-640.)
[2]
ALLEN, F. E. Interprocedural data flow analysis. In Proceedings of the IFIP Congress 74 (Stockholm, Aug. 5-10, 1974). North-Holland, Amsterdam, 1974, pp. 398-402.
[3]
ALLEN, F. E., COCKE, J. A program data-flow analysis procedure. Commun. ACM 19, 3 (Mar.{ 1976), 137-147.
[4]
ALLEN, F. E., CARTER, J. L., FABR1, J., FERRANTE, J., HARRISON, W. H., LOEWNER, P. G., AND TREVILLYAN, L.H. The experimental compiling system. IBM J. Res. Dev. 24, 6 (Nov. 1980), 695-715.
[5]
ALLEN, J. R. Dependence analysis for subscript variables and its application to program transformations. Ph.D. thesis, Computer Science Dept., Rice Univ., Houston, Tex., 1983.
[6]
ALLEN, R., CALLAHAN, D., ANO KENNEOY, K. Automatic decomposition of scientific programs for parallel execution. In Conference Record of the 14th Annual ACM Symposium on Principles of Programming Languages (Munich, Jan. 21-23, 1987). ACM, New York, 1987, pp. 63-76.
[7]
BANERJEE, U. Data dependence in ordinary programs. M.S. thesis, Computer Science Dept., Univ. of Illinois at Urbana-Champaign, Urbana, 1976.
[8]
BANNING, J. A method for determining the side effects of procedure calls. Ph.D. thesis, Stanford Univ., Palo Alto, Calif., 1978.
[9]
BANNING, J. An efficient way to find the side effects of procedure calls and the aliases of variables. In Conference Record of the 6th ACM Symposium on Principles of Programming Languages (San Antonio, Tex., Jan. 29-31, 1979). ACM, New York, 1979, pp. 29-41.
[10]
BARTH, J. A practical interprocedural data flow analysis algorithm. Commun. ACM 21, 9 (Sept. 1978), 724-736.
[11]
BARTH, J.M. An interprocedural data-flow analysis algorithm. In Conference Record of the 4th ACM Symposium on Principles of Programming Languages (Santa Monica, Calif., Jan. 17-19, 1977). ACM, New York, 1977, pp. 119-131.
[12]
BECKMAN-DAVIES, C.S. Improving parallelism in LINPACK. M.S. thesis, Computer Science Dept., Univ. of Illinois at Urbana-Champaign, Urbana, May 1983.
[13]
BURKE, M. An interval analysis approach toward interprocedural data-flow. IBM Res. Rep. RC10640, IBM Corp., Armonk, N.Y., July 1984.
[14]
BURKE, M. An interval-based approach to exhaustive and incremental interprocedural dataflow analysis. IBM Res. Rep. RC12702, IBM Corp., Armonk, N.Y., Aug. 1987.
[15]
BURKE, M., AND CYTRON, R. Interprocedural dependence analysis and parallelization. In Proceedings of the SIGPLAN 86 Symposium on Compiler Construction. SIGPLAN Not. (ACM) 21, 7 (July 1986), 162-175.
[16]
BURKE, M., AND RYDER, B. A critical analysis of incremental iterative data-flow analysis algorithms. IEEE Trans. Softw. Eng. 16, 7 (July 1990).
[17]
BURKE, M., COOPER, K. D., KENNEDY, K., AND TORCZON, L. Interprocedural optimization: Eliminating unnecessary recompilation. IBM Res. Rep., IBM, Armonk, N.Y., July 1990.
[18]
CALLAHAN, D. The program summary graph and flow-sensitive interprocedural data-flow analysis. In Proceedings of the SIGPLAN 88 Conference on Programming Language Design and Implementation. SIGPLAN Not. (ACM), 23, 7 (July 1988), 47-56.
[19]
CARROLL, M.D. Data-flow update via dominator and attribute updates. Ph.D. thesis, Computer Science Dept., Rutgers, Univ., New Brunswick, N.J., May 1988.
[20]
COOPER, K. Interprocedural data-flow analysis in a programming environment. Ph.D. thesis, Computer Science Dept., Rice Univ., Houston, Tex., 1983.
[21]
COOPER, K. Analyzing aliases of reference formal parameters. In Conference Record of the 12th A CM Symposium on Principles of Programming Languages (New Orleans, La., Jan. 14-16, 1985). ACM, New York, 1985, pp. 281-290.
[22]
COOPER, K., AND KENNEDY, K. Efficient computation of flow insensitive interprocedural{ summary information. In Proceedings of the SIGPLAN 84 Symposium on Compiler Construction. SIGPLANNot. (ACM) 19, 6 (June 1984), 247-258.
[23]
COOPER, K. D., AND KENNEDY, K. Complexity of interprocedural side-effect analysis. Tech. Rep. 87-61, Dept. of Computer Science, Rice Univ., Houston, Tex., 1987.
[24]
COOPER, K. D., AND KENNEDY, K. Interprocedural side-effect analysis in linear time. In Proceedings of the SIGPLAN 88 Conference on Programming Language Design and Implementation SIGPLAN Not. 23, 7 (ACM) (July 1988), 57-66.
[25]
COOPER, K. D., AND KENNEDY, K. Fast interprocedural alias analysis. In Proceedings of the 16th ACM Symposium on Principles of Programming Languages (Austin, Tex., Jan. 11-13). ACM, New York, 1989, pp. 49-59.
[26]
COOPER, K. D., KENNEDY, K., AND TORCZON, L. The impact of interprocedural analysis and optimization in the Rn programming environment. ACM Trans. Program. Lang. Syst. 8, 4 (Oct. 1986), 491-523.
[27]
CYTRON, a. Doacross: Beyond veetorization for multiprocessors. In Proceedings of the 1986 International Conference on Parallel Processing (St. Charles, Ill., Aug. 1986). Dept. of Electrical Engineering, Pennsylvania State Univ., University Park, 1986, pp. 836-844.
[28]
EVE, J., AND KURKI-SUONIO, R. On computing the transitive closure of a relation. Acta Inf. 8 (1977), 303-314.
[29]
FREUDENBERGER, S. M., SCHWARTZ, T., AND SHARIR, M. Experience with the SETL Optimizer. ACM Trans. Program. Lang. Syst. 5, I (Jan. 1983), 26-45.
[30]
GHODSSl, V. Incremental analysis of programs. Ph.D. thesis, Dept. of Computer Science, Univ. of Central Florida, Orlando, Fla., 1983.
[31]
GRAHAM, S. I., AND WEGMAN, M. A fast and usually linear algorithm for global flow analysis. J. ACM 23, i (Jan. 1976), 172-202.
[32]
HECHT, M.S. Flow Analysis of Computer Programs. Elsevier North-Holland, New York, 1977.
[33]
HECHT, M. S., AND ULLMAN, J.D. Flow graph reducibility. SIAM J. Comput. 1, 2 (June 1972), 188-202.
[34]
HECHT, M. S., AND ULLMAN, J.D. Characterizations of reducible flow graphs. J. ACM 21, 3 (July 1974), 367-375.
[35]
HECHT, M. S., AND ULLMAN, J.D. A simple algorithm for global data-flow analysis problems. SIAMJ. Comput. 4, 4 (Dec. 1975), 519-532.
[36]
HUSON, C.A. An in-line subroutine expander for parafrase. M.S. thesis, Computer Science Dept., Univ. of Illinois at Urbana-Champaign, Urbana, 1982.
[37]
KAM, J. B., AND ULLMAN, J.D. Global data-flow analysis and iterative algorithms. J. ACM 23, i (Jan. 1976), 158-171.
[38]
KAM, J. B., AND ULLMAN, J.D. Monotone data-flow analysis frameworks. Acta Inf 7 (1977), 305-317.
[39]
KENNEDY, K. A global flow analysis algorithm. Int. J. Comput. Math. 3 (Dec. 1971), 5-15.
[40]
KENNEDY, K. A comparison of two algorithms for global data flow analysis. SIAM J. Comput. 5, I (Mar. 1976), 158-180.
[41]
KILDALL, C. A unified approach to global program optimization. In Conference Record of the 1st ACM Symposium on Principles of Programming Languages (Boston, Oct. 1-3, 1973). ACM, New York, 1973, pp. 194-206.
[42]
KUCK, D. J., KUHN, R. H., PADUA, D. A., LEASURE, B., AND WOLFE, M. Dependence graphs and compiler optimizations. In Conference Record of the 8th ACM Symposium on Principles of Programming Languages (Williamsburg, Va., Jan. 26-28, 1981). ACM, New York, 1981, pp. 207-218.
[43]
MARLOWE, T.J. Data flow analysis and incremental iteration. Ph.D. thesis, Computer Science Dept., Rutgers Univ., New Brunswick, N.J., Oct. 1989.
[44]
MYERS, E.W. A precise inter-procedural data-flow algorithm. In Conference Record of the 8th ACM Symposium on Principles of Programming Languages ACM, New York, 1981, pp. 219-230.
[45]
PADUA, D., KUCK, D., AND LAWRIE, D. High-speed multiprocessors and compilation techniques. IEEE Trans. Comput. C-29, 9 (Sept. 1980), 763-776.
[46]
RICHARDSON, S., AND GANAPATHI, M. Interprocedural optimization: Experimental results. Softw. Pract. Exper. 19, 2 (Feb. 1989), 149-169.
[47]
ROSEN, B.K. High-level data-flow analysis. Commun. ACM 20, 10 (Oct. 1977), 712-724.
[48]
ROSEN, B. K. Data-flow analysis for procedural languages. J. ACM 26, 2 (April. 1979), 322-344.
[49]
ROSEN, B. K. Monoids for rapid data-flow analysis. SlAM J. Comput. 9, i (Feb. 1980), 159-196.
[50]
ROSEN, B.K. Linear cost is sometimes quadratic. In Conference Record of the 8th Annual ACM Symposium on Principles of Programming Languages. ACM, New York, 1981, pp. 117-124.
[51]
ROSEN, B.K. A lubricant for data flow analysis. SIAM J. Comput. 11, 3 (Aug. 1982), 493-511.
[52]
RYDER, B. Incremental data flow analysis. In Conference Record of the IOth Annual ACM Symposium on Principles of Programming Languages (Austin, Tex., Jan. 24-26, 1983). ACM, New York, 1983, pp. 167-176.
[53]
RYDER, B. Incremental data flow analysis based on a unified model of elimination algorithms. Ph.D. thesis, Computer Science Dept., Rutgers Univ., New Brunswick, N.J., 1982.
[54]
RYDER, B. G., AND CARROLL, M. D. An incremented algorithm for software analysis. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments. SIGPLAN Not. (ACM) 22, i (Jan. 1987), 171-179.
[55]
RYDER, B. G., AND PAULL, M.C. Elimination algorithms for data flow analysis. Comput. Surv. 18, 3 (ACM) (Sept. 1986), 277-316.
[56]
RYDER, B. G., PAULL, M.C. Incremental data flow analysis algorithms. ACM Trans. Program. Lang. Syst. 10, I (Jan. 1988), 1-50.
[57]
RYDER, B. G., MARLOWE, T. G., AND PAULL, M. C. Conditions for incremental iteration: Examples and counterexamples. Sci. Comput. Program. 11, I (Oct. 1988), 1-15.
[58]
SCHWARTZ, J. T., AND SHARIR, M. A design for optimizations of the bitvectoring class. Courant Computer Science Rep. 17, New York Univ., New York, Sept. 1979.
[59]
TARJAN, R.Depth-first search and linear graph algorithms. SIAM J. Comput. 1, 2 (Sept. 1972), 146-160.
[60]
TARJAN, g. Testing flow graph reducibility. J. Comput. Syst. Sci. 9, 3 (Dec. 1974), 355-365.
[61]
TARJAN, R. A unified approach to path problems. J. ACM 28, 3 (July 1981), 577-593.
[62]
TARJAN. g. Fast algorithms for solving path problems. J. ACM 28, 3 (July 1981), 594-614.
[63]
ULLMAN, J.D. Fast algorithms for the elimination of common subexpressions. Acta Inf. 2, 3 (1973), 191-213.
[64]
WARSHALL, S. A theorem on Boolean matrices. J. ACM 8, 1 (1962), 11-12.
[65]
WEGBREIT, B. Property extraction in well-founded property sets. IEEE Trans. Softw. Eng. 1, 3 (Sept. 1975), 270-285.
[66]
WOLFE, M. J. Optimizing supereompilers for supercomputers. Rep. UIUCDCS-R-82-1105, Ph.D. thesis, Computer Science Dept., Univ. of Illinois at Urbana-Champaign, Urbana, 1982.
[67]
ZADECK, F.K. Incremental data-flow analysis in a structured program editor. In Proceedings of the SIGPLAN 84 Symposium on Compiler Construction. SIGPLAN Not. (ACM) 19, 6 (June 1984), 132-143.

Cited By

View all

Recommendations

Reviews

Martin Joseph Jourdan

In this respectable research paper the author presents an original method to solve the archetypal interprocedural dataflow problem of computing the MOD and REF sets for each procedure in a complete program. His method is based on the decomposition of this problem into a hierarchical collection of subproblems, some of which reduce to mere intraprocedural problems, and on structuring the program call graph into intervals. Burke also shows how to adapt his method to perform incremental analysis, which is quite useful for program development environments. The paper is very long both because the problem is hard and because the author thoroughly explores all the details of his technique, gives numerous examples that he discusses at length, and constantly compares his ideas with other relevant works. Because the paper has been revised several times over an unusually long period (six years), it includes comments on other works based on earlier versions of itself, which gives a broad perspective on the problem and alternative ways to solve it. This makes the paper very interesting for those who are motivated enough to absorb the huge quantity of terminology and details (basic knowledge of dataflow analysis and graph theory is helpful). In spite of the weight of the formalism, the paper is clear and well structured. The numerous comparisons with other works and the good bibliography qualify the paper as a reference work, which undoubtedly deserved to be published in this archival journal. In addition, in spite of the long publication delays, it is still up to date: in a personal communication, the author told me that today he would write nearly the same paper. I recommend this paper to all who are interested in the theoretical and practical aspects of interprocedural dataflow analysis.

Access critical reviews of Computing literature here

Become a reviewer for Computing Reviews.

Comments

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 12, Issue 3
July 1990
152 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/78969
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 July 1990
Published in TOPLAS Volume 12, Issue 3

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)92
  • Downloads (Last 6 weeks)13
Reflects downloads up to 10 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Change Pattern Detection for Optimising Incremental Static Analysis2023 IEEE 23rd International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM59687.2023.00016(49-60)Online publication date: 2-Oct-2023
  • (2023)BibliographyEngineering a Compiler10.1016/B978-0-12-815412-0.00023-1(793-813)Online publication date: 2023
  • (2023)Data-Flow AnalysisEngineering a Compiler10.1016/B978-0-12-815412-0.00015-2(449-516)Online publication date: 2023
  • (2023)Result Invalidation for Incremental Modular AnalysesVerification, Model Checking, and Abstract Interpretation10.1007/978-3-031-24950-1_14(296-319)Online publication date: 16-Jan-2023
  • (2022)Efficient trimming for strongly connected components calculationProceedings of the 19th ACM International Conference on Computing Frontiers10.1145/3528416.3530247(131-140)Online publication date: 17-May-2022
  • (2021)On probabilistic termination of functional programs with continuous distributionsProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454111(1312-1326)Online publication date: 19-Jun-2021
  • (2021)Incremental and Modular Context-sensitive AnalysisTheory and Practice of Logic Programming10.1017/S1471068420000496(1-48)Online publication date: 19-Jan-2021
  • (2020)Incremental Flow Analysis through Computational Dependency Reification2020 IEEE 20th International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM51674.2020.00008(25-36)Online publication date: Sep-2020
  • (2019)Iodine: Fast Dynamic Taint Tracking Using Rollback-free Optimistic Hybrid Analysis2019 IEEE Symposium on Security and Privacy (SP)10.1109/SP.2019.00043(490-504)Online publication date: May-2019
  • (2019)Finding strongly connected components of simple digraphs based on granulation strategyInternational Journal of Approximate Reasoning10.1016/j.ijar.2019.12.001Online publication date: Dec-2019
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media