skip to main content
10.1145/263699.263705acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free Access

Partitioning dataflow analyses using types

Published:01 January 1997Publication History

ABSTRACT

We present a simple method for partitioning a dataflow analysis problem into a series of related subproblems. We use type information (either declared by the programmer, or computed via nonstandard type inference) to conservatively approximate analysis-time data dependences between program quantities. This dependence information frees us from the need to model all program quantities simultaneously in a single, monolithic analysis. Instead, we can model quantities in any order, or even in parallel, so long as we respect the dependences. Our approach is independent of the means used to solve the subproblems, and enables the wider application of existing sparse approaches previously restricted to "separable" dataflow problems. Preliminary experiments applying our technique to flow-sensitive points-to analysis of C programs have achieved storage savings of 1.3-7.2x over existing methods.

References

  1. CC77.P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Proceedings o,f the Fourth Annual A CM Symposium on Principles of Programming Languages, pages 238- 252, Los Angeles, January 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. CCF91.J.-D. Choi, R. Cytron, and J. Ferrante. Automatic construction of sparse data flow evaluation graphs. In Proceedings of the Eighteenth Annual ACM Symposium on Principles of Programming Languages, pages 55-66. ACM Press, January 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. CFR+91.R. Cytron, J. Ferrante, B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Efficiently computing static single assignment form and the control dependence graph. A CM Transactions on Programming Languages and Systems, 13(4):451-490, October 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. CWZ90.D.R. Chase, M. Wegman, and F. K. Zadeck. Analysis of pointers and structures. In Proceedings of the SIGPLAN '90 Conference on Programming Language Design and Implementation, pages 296-310, White Plains, NY, June 20-22, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Deu94.A. Deutsch. lnterprocedural may-alias analysis for pointers: Beyond k-limiting. In Proceedings of the SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 230-239. ACM Press, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. DGS94.E. Duesterwald, R. Gupta, and M. L. Sofia. Reducing the cost of data flow analysis by congruence partitioning. In CC '94: Fifth International Conference on Compiler Construction, pages 357-373, April 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. DRZ92.D.M. Dhamdhere, B. K. Rosen, and F. K. Zadeck. How to analyze large programs efficiently and informatively. In Proceedings o} the SIGPLAN '92 Conference on Programming Language Design and Implementation, pages 212-223. ACM Press, June 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Hen91.F. Henglein. Efficient type inference for higher-order binding-time analysis. In Functional Programming and Computer Architecture, pages 448-472, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Hen92.F. Henglein. Global tagging optimization by type inference. In Proceedings of The Conference on LISP and Functional Programming, pages 205-215, 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. HH92.L.J. Hendren and J. Hummel. Abstractions for recursive pointer data structures: Improving the analysis and transformation of imperative programs. In Proceedings of the SIGPLAN '92 Conference on Programmin9 Language Design and implementation, pages 249-260. ACM Press, June 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. JP90.M. Jourdan and D. Parigot. Techniques for improving grammar flow analysis. In 3rd European Symposium on Programming, number 432 in Lecture Notes in Computer Science, pages 240-255. Berlin: Springer- Verlag, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. JPP94.R. Johnson, D. Pearson, and K. Pingali. The program structure tree: Computing control regions in linear time. In Proceedings of the SIGPLAN '94 Conference on Programming Language Design and Implementation, pages 171-185, Orlando, Florida, June 20-24, 1994. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. LR91.W. Landi and B. G. Ryder. Pointer-induced aliasing: A problem classification. In Proceedings of the Eighteenth Annual A CM Symposium on Principles of Programming Languages, pages 93-103. ACM Press, January 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. LR92.W. Landi and B. G. Ryder. A safe approximate algorithm for interprocedural pointer aliasing. In Proceedings of the SIGPLAN '92 Conference on Programming Language Design and Implementation, pages 235-248. ACM Press, June 1992. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. LRF94.Y.-f. Lee, B. G. Ryder, and M. E. Fiuczynski. Region analysis: A parallel elimination method for data flow analysis. In International Conference on Computer Languages, pages 31-42. IEEE Computer Society, May 1994.Google ScholarGoogle Scholar
  16. OJ95.R. O'Callahan and D. Jackson. Detecting shared representations using type inference. Technical Report CMU-CS-95-202, School of Computer Science, Carnegie-Mellon University, September 1995.Google ScholarGoogle Scholar
  17. OJ96.R. O'Callahan and D. Jackson. Practical program understanding with type inference. Technical Report CMU-CS-96-130, School of Computer Science, Carnegie-Mellon University, May 1996.Google ScholarGoogle Scholar
  18. RHS95.T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In Proceedings 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 49-61, January 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Ruf95a.E. Ruf. Context-insensitive alias analysis reconsidered. In Proceedings of the SIGPLAN '95 Conference on Programming Language Design and Implementation, pages 13-22, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Ruf95b.E. Ruf. Optimizing sparse representations for dataflow analysis. In A CM SIGPLAN Workshop on Intermediate Representations (IR'95), pages 50-61, January 1995. Proceedings published as ACM SIG- PLAN Notices 30(3), March 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Ste95.B. Steensgaard. Sparse functional stores for imperative programs. In ACM SIGPLAN Workshop on Intermediate Representations (IR'95), pages 62-70, January 1995. Proceedings published as ACM SIG- PLAN Notices 30(3), March 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Ste96a.B. Steensgaard. Points-to analysis by type inference of programs with structures and unions. In International Conference on Compiler Construction, number 1060 in Lecture Notes in Computer Science, pages 136-150, April 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Ste96b.B. Steensgaard. Points-to analysis in almost linear time. In Proceedings #3rd ACM SIGPLAN- SIGACT Symposium on Principles of Programming Languages, pages 32-41, January 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. WCES94.D. Weise, R. F. Crew, M. Ernst, and B. Steensgaard. Value dependence graphs: Representation without taxation. Technical Report MSR-TR-94-03, Microsoft Research, Redmond, WA, April 13, 1994.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. WL95.R.P. Wilson and M. S. Lam. Efficient contextsensitive pointer analysis for C programs. In Proceedings of the SIGPLAN '95 Conference on Programming Language Design and Implementation. ACM Press, June 1995. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. ZRL96a.S. Zhang, B. G. Ryder, and W. Landi. Program decomposition for pointer aliasing: A step towards practical analyses. In Fourth Symposium on the Foundations of Software Engineering (FSE$), October 1996. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. ZRL96b.S. Zhang, B. G. Ryder, and W. Landi. Program decomposition for pointer-induced alia.sing analysis. Technical Report LCSR-TR-259, Laboratory for Computer Science, Rutgers University, March 1996.Google ScholarGoogle Scholar

Index Terms

  1. Partitioning dataflow analyses using types

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in
                • Published in

                  cover image ACM Conferences
                  POPL '97: Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
                  January 1997
                  497 pages
                  ISBN:0897918533
                  DOI:10.1145/263699

                  Copyright © 1997 ACM

                  Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 1 January 1997

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • Article

                  Acceptance Rates

                  POPL '97 Paper Acceptance Rate36of225submissions,16%Overall Acceptance Rate824of4,130submissions,20%

                  Upcoming Conference

                  POPL '25

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader