Skip to main content

Improving the Precision of Equality-Based Dataflow Analyses

  • Conference paper
  • First Online:
Static Analysis (SAS 2002)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2477))

Included in the following conference series:

  • 668 Accesses

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.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, MA, USA, 1986.

    Google Scholar 

  2. 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. 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. 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. 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. 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. 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. 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. James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. The Java Series. Addison-Wesley, Reading, MA, USA, June 1996.

    MATH  Google Scholar 

  10. Fritz Henglein. Efficient type inference for higher-order binding-time analysis. In Functional Programming and Computer Architecture, pages 448–472, 1991.

    Google Scholar 

  11. Fritz Henglein. Type inference with polymorphic recursion. ACM Transactions on Programming Languages and Systems, 15(2):253–289, April 1993.

    Google Scholar 

  12. 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. 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. 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. 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. 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. 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. 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 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Ruf, E. (2002). Improving the Precision of Equality-Based Dataflow Analyses. In: Hermenegildo, M.V., Puebla, G. (eds) Static Analysis. SAS 2002. Lecture Notes in Computer Science, vol 2477. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45789-5_19

Download citation

  • DOI: https://doi.org/10.1007/3-540-45789-5_19

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-44235-6

  • Online ISBN: 978-3-540-45789-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics