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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Alfred V. Aho, Ravi Sethi, and Jeffrey D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, MA, USA, 1986.
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.
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.
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.
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.
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.
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.
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.
James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. The Java Series. Addison-Wesley, Reading, MA, USA, June 1996.
Fritz Henglein. Efficient type inference for higher-order binding-time analysis. In Functional Programming and Computer Architecture, pages 448–472, 1991.
Fritz Henglein. Type inference with polymorphic recursion. ACM Transactions on Programming Languages and Systems, 15(2):253–289, April 1993.
D. Liang and M. J. Harrold. Efficient points-to analysis for whole-program analysis. In Proceedings FSE’99, pages 199–215. ACM, 1999.
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.
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.
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.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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