Advertisement

Improving the Precision of Equality-Based Dataflow Analyses

  • Erik Ruf
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2477)

Abstract

We present two new, orthogonal techniques for improving the precision of equality-based dataflow analyses. Subtype expansion models objects at a per-type granularity, enabling a form of subtype-restricted equality constraint, while mutation tracking uses a simple effect analysis to avoid a class of false aliases induced by the bidirectional nature of equality constraints. The utility and costs of these techniques are demonstrated in a context-sensitive interprocedural optimization whose static precision improves by 6-600% when our techniques are applied.

Keywords

Object Representative Strongly Connect Component Call Site Program Language Design Method Summary 
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. [ASU86]
    Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, MA, USA, 1986.Google Scholar
  2. [CGS+99]
    Jong-Deok Choi, Manish Gupta, Mauricio Serrano, Vugranam C. Sreedhar, and Sam Midkiff. Escape analysis for Java. In Proceedings of the 14th Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’ 99), November 1999.Google Scholar
  3. [CRL99]
    Ramkrishna Chatterjee, Barbara G. Rynder, and William A. Landi. Relevant context inference. In Proceedings 26th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 133–146, January 1999.Google Scholar
  4. [Das00]
    Manuvir Das. Unification-based pointer analysis with directional assignments. In Proceedings of the SIGPLAN 2000 Conference on Programming Language Design and Implementation, pages 35–46, 2000.Google Scholar
  5. [DGC98]
    Greg DeFouw, David Grove, and Craig Chambers. Fast interprocedural class analysis. In Proceedings 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 222–236, 1998.Google Scholar
  6. [FKR+00]
    Robert Fitzgerald, Todd B. Knoblock, Erik Ruf, Bjarne Steensgaard, and David Tarditi. Marmot: An optimizing compiler for Java. Software: Practice and Experience, 30(3):199–232, March 2000.Google Scholar
  7. [FRD00]
    Manuel Fähndrich, Jakob Rehof, and Manuvir Das. Scalable context-sensitive flow analysis using instantiation constraints. In Proceedings of the SIGPLAN 2000 Conference on Programming Language Design and Implementation, June 2000.Google Scholar
  8. [GDDC97]
    David Grove, Greg DeFouw, Jeffrey Dean, and Craig Chambers. Call graph construction in object-oriented languages. In Proceedings of the 12th Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’ 97), pages 108–124, October 1997.Google Scholar
  9. [GJS96]
    James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. The Java Series. Addison-Wesley, Reading, MA, USA, June 1996.zbMATHGoogle Scholar
  10. [Hen91]
    Fritz Henglein. Efficient type inference for higher-order binding-time analysis. In Functional Programming and Computer Architecture, pages 448–472, 1991.Google Scholar
  11. [Hen93]
    Fritz Henglein. Type inference with polymorphic recursion. ACM Transactions on Programming Languages and Systems, 15(2):253–289, April 1993.Google Scholar
  12. [LH99]
    D. Liang and M. J. Harrold. Efficient points-to analysis for whole-program analysis. In Proceedings FSE’99, pages 199–215. ACM, 1999.Google Scholar
  13. [RF01]
    Jakob Rehof and Manuel Fähndrich. Type-based flow analysis: from polymorhphic subtyping to CFL-reachability. In Proceedings 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 2001.Google Scholar
  14. [Ruf00]
    Erik Ruf. Effective synchronization removal for Java. In Proceedings of the SIGPLAN 2000 Conference on Programming Language Design and Implementation, pages 208–218, June 2000.Google Scholar
  15. [Ste96a]
    Bjarne 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, Where?, April 1996.Google Scholar
  16. [Ste96b]
    Bjarne Steensgaard. Points-to analysis in almost linear time. In Proceedings 23rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pages 32–41, St. Petersburg Beach, FL, January 1996.Google Scholar
  17. [Ste00]
    Bjarne Steensgaard. Thread-specific heaps for multi-threaded programs. In Proceedings of the ISMM 2000 International Symposium on Memory Management, July 2000. also published as SIGPLAN Notices 36(1), January 2001, ACM.Google Scholar
  18. [WR99]
    John Whaley and Martin Rinard. Compositional pointer and escape analysis for Java programs. In Proceedings of the 14th Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA’99), November 1999.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2002

Authors and Affiliations

  • Erik Ruf
    • 1
  1. 1.Microsoft ResearchRedmondUSA

Personalised recommendations