Abstract
Building a summary for library code is a common approach to speeding up the analysis of client code. In presence of callbacks, some reachability relationships between library nodes cannot be obtained during library-code summarization. Thus, the library code may have to be analyzed again during the analysis of the client code with the library summary. In this paper, we propose to summarize library code with tree-adjoining-language (TAL) reachability. Compared with the summary built with context-free-language (CFL) reachability, the summary built with TAL reachability further contains conditional reachability relationships. The conditional reachability relationships can lead to much lighter analysis of the library code during the client code analysis with the TAL-reachability-based library summary. We also performed an experimental comparison of context-sensitive data-dependence analysis with the TAL-reachability-based library summary and context-sensitive data-dependence analysis with the CFL-reachability-based library summary using 15 benchmark subjects. Our experimental results demonstrate that the former has an 8X speed-up over the latter on average.
Supplemental Material
- GitHub Home. https://github.com/.Google Scholar
- SPECjvm2008 Benchmark Suite. http://www.spec.org/jvm2008/.Google Scholar
- S. A. Bohner and R. S. Arnold. Software Change Impact Analysis. IEEE Computer Society Press, 1996. Google Scholar
Digital Library
- S. Chaudhuri. Subcubic algorithms for recursive state machines. In Proc. POPL, pages 159--169, 2008. Google Scholar
Digital Library
- L. Chen, J. Qian, Y. Zhou, P. Wang, and B. Xu. Identifying extract class refactoring opportunities for internetware. Science China Information Sciences, 57(7):1--18, 2014.Google Scholar
- R. Chugh, J. A. Meister, R. Jhala, and S. Lerner. Staged information flow for javascript. In Proc. PLDI, pages 50--62, 2009. Google Scholar
Digital Library
- I. Dillig, T. Dillig, A. Aiken, and M. Sagiv. Precise and compact modular procedure summaries for heap manipulating programs. In Proc. PLDI, pages 567--577, 2011. Google Scholar
Digital Library
- G. Gazdar. Applicability of indexed grammars to natural languages. In U. Reyle and C. Rohrer, editors, Natural Language Parsing and Linguistic Theories, pages 69--94, 1988.Google Scholar
Cross Ref
- S. Horwitz, T. Reps, and M. Sagiv. Demand interprocedural dataflow analysis. In Proc. FSE, pages 104--115, 1995. Google Scholar
Digital Library
- S. Itzhaky, N. Bjørner, T. W. Reps, M. Sagiv, and A. V. Thakur. Property-directed shape analysis. In Proc. CAV, pages 35--51, 2014. Google Scholar
Digital Library
- A. K. Joshi, L. S. Levy, and M. Takahashi. Tree adjunct grammars. Journal of Computer and System Sciences, 10(1):136--163, 1975. Google Scholar
Digital Library
- J. Kodumal and A. Aiken. The set constraint/cfl reachability connection in practice. In Proc. PLDI, pages 207--218, 2004. Google Scholar
Digital Library
- J. Kodumal and A. Aiken. Regularly annotated set constraints. In Proc. PLDI, pages 331--341, 2007. Google Scholar
Digital Library
- R. Komondoor and G. Ramalingam. Recovering data models via guarded dependences. In Proc. WCRE, pages 110--119, 2007. Google Scholar
Digital Library
- D. J. Kuck, R. H. Kuhn, D. A. Padua, B. Leasure, and M. Wolfe. Dependence graphs and compiler optimizations. In Proc. POPL, pages 207--218, 1981. Google Scholar
Digital Library
- C. Lattner, A. Lenharth, and V. Adve. Making context-sensitive points- to analysis with heap cloning practical for the real world. In Proc. PLDI, pages 278--289, 2007. Google Scholar
Digital Library
- A. Lecomte and C. Retoré. Extending lambek grammars: a logical account of minimalist grammars. In Proc. ACL, pages 362--369, 2001. Google Scholar
Digital Library
- S. Litvak, N. Dor, R. Bodík, N. Rinetzky, and M. Sagiv. Field-sensitive program dependence analysis. In Proc. FSE, pages 287--296, 2010. Google Scholar
Digital Library
- R. Madhavan, G. Ramalingam, and K. Vaswani. Modular heap analysis for higher-order programs. In Proc. SAS, pages 370--387, 2012. Google Scholar
Digital Library
- D. Melski and T. Reps. Interconvertibility of a class of set constraints and context-free-language reachability. TCS, 248(1--2):29--98, 2000. Google Scholar
Digital Library
- M. Naik and A. Aiken. Conditional must not aliasing for static race detection. In Proc. POPL, pages 327--338, 2007. Google Scholar
Digital Library
- M. Pnueli. Two approaches to interprocedural data flow analysis. Program flow analysis: Theory and applications, pages 189--234, 1981.Google Scholar
- C. Pollard. Gneralized Phrase Structure Grammars, Head Grammars and Natural Language. PhD thesis, Stanford University, 1984.Google Scholar
- P. Pratikakis, J. S. Foster, and M. Hicks. Existential label flow inference via cfl reachability. In Proc. SAS, pages 88--106, 2006. Google Scholar
Digital Library
- P. Pratikakis, J. S. Foster, and M. W. Hicks. LOCKSMITH: Context- sensitive correlation analysis for race detection. In Proc. PLDI, pages 320--331, 2006. Google Scholar
Digital Library
- G. Ramalingam. Context-sensitive synchronization-sensitive analysis is undecidable. TOPLAS, 22(2):416--430, 2000. Google Scholar
Digital Library
- J. Rehof and M. Fähndrich. Type-based flow analysis: From poly- morphic subtyping to CFL-reachability. In Proc. POPL, pages 54--66, 2001. Google Scholar
Digital Library
- T. Reps. Shape analysis as a generalized path problem. In Proc. PEPM, pages 1--11, 1995. Google Scholar
Digital Library
- T. Reps. Program analysis via graph reachability. Information and Software Technology, 40(11--12):701--726, 1998.Google Scholar
- T. Reps. Undecidability of context-sensitive data-dependence analysis. TOPLAS, 22(1):162--186, 2000. Google Scholar
Digital Library
- T. Reps, S. Horwitz, M. Sagiv, and G. Rosay. Speeding up slicing. In Proc. FSE, pages 11--20, 1994. Google Scholar
Digital Library
- T. Reps, S. Horwitz, and M. Sagiv. Precise interprocedural dataflow analysis via graph reachability. In Proc. POPL, pages 49--61, 1995. Google Scholar
Digital Library
- N. Rinetzky, A. Poetzsch-Heffter, G. Ramalingam, M. Sagiv, and E. Yahav. Modular shape analysis for dynamically encapsulated programs. In Proc. ESOP, pages 220--236, 2007. Google Scholar
Digital Library
- A. Rountev, S. Kagan, and T. Marlowe. Interprocedural dataflow analysis in the presence of large libraries. In Proc. CC, pages 2--16. Springer, 2006. Google Scholar
Digital Library
- M. Sagiv, T. Reps, and S. Horwitz. Precise interprocedural dataflow analysis with applications to constant propagation. TCS, 167(1--2): 131--170, 1996. Google Scholar
Digital Library
- Y. Schabes and K. Vijay-Shanker. Deterministic left to right parsing of tree adjoining languages. In Proc. ACL, pages 276--283, 1990. Google Scholar
Digital Library
- M. Sridharan and R. Bodík. Refinement-based context-sensitive points-to analysis for Java. In Proc. PLDI, pages 387--400, 2006. Google Scholar
Digital Library
- M. Sridharan, D. Gopan, L. Shan, and R. Bodík. Demand-driven points-to analysis for Java. In Proc. OOPSLA, pages 57--76, 2005. Google Scholar
Digital Library
- M. Steedman. Combinators and grammars. In R. Oehrle, E. Bach, and D. Wheeler, editors, Categorial Grammars and Natural Language Structures, pages 417--442, 1988.Google Scholar
Cross Ref
- C. Sun, N. Xi, S. Gao, Z. Chen, and J. Ma. Automated enforcement for relaxed information release with reference points. Science China Information Sciences, 57(11):1--19, 2014.Google Scholar
Cross Ref
- K. Vijay-Shanker and D. J. Weir. The equivalence of four extensions of context-free grammars. Mathematical Systems Theory, 27(6):511--546, 1994. Google Scholar
Digital Library
- D. Weir. Characterizing mildly context-sensitive grammar formalisms. PhD thesis, University of Pennsylvania, 1988. Google Scholar
Digital Library
- T. Xie, L. Zhang, X. Xiao, Y.-F. Xiong, and D. Hao. Cooperative software testing and analysis: Advances and challenges. JCST, 29(4): 713--723, 2014.Google Scholar
Cross Ref
- G. Xu and A. Rountev. Merging equivalent contexts for scalable heap- cloning-based context-sensitive points-to analysis. In Proc. ISSTA, pages 225--235, 2008. Google Scholar
Digital Library
- G. Xu, A. Rountev, and M. Sridharan. Scaling CFL-reachability-based points-to analysis using context-sensitive must-not-alias analysis. In Proc. ECOOP, pages 98--122, 2009. Google Scholar
Digital Library
- M. Yannakakis. Graph-theoretic methods in database theory. In Proc. PODS, pages 230--242, 1990. Google Scholar
Digital Library
- X. Zhang, R. Mangal, M. Naik, and H. Yang. Hybrid top-down and bottom-up interprocedural analysis. In Proc. PLDI, pages 249--258, 2014. Google Scholar
Digital Library
- X. Zheng and R. Rugina. Demand-driven alias analysis for C. In Proc. POPL, pages 351--363, 2008. Google Scholar
Digital Library
Index Terms
Summary-Based Context-Sensitive Data-Dependence Analysis in Presence of Callbacks
Recommendations
Summary-Based Context-Sensitive Data-Dependence Analysis in Presence of Callbacks
POPL '15: Proceedings of the 42nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming LanguagesBuilding a summary for library code is a common approach to speeding up the analysis of client code. In presence of callbacks, some reachability relationships between library nodes cannot be obtained during library-code summarization. Thus, the library ...
Precise and scalable context-sensitive pointer analysis via value flow graph
ISMM '13In this paper, we propose a novel method for context-sensitive pointer analysis using the value flow graph (VFG) formulation. We achieve context-sensitivity by simultaneously applying function cloning and computing context-free language reachability (...
Fast graph simplification for interleaved Dyck-reachability
PLDI 2020: Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and ImplementationMany program-analysis problems can be formulated as graph-reachability problems. Interleaved Dyck language reachability. Interleaved Dyck language reachability (InterDyck-reachability) is a fundamental framework to express a wide variety of program-...







Comments