Abstract
Pointer information, indispensable for static analysis tools, is expensive to compute and query. We provide a query-efficient persistence technique, Pestrie, to mitigate the costly computation and slow querying of precise pointer information. Leveraging equivalence and hub properties, Pestrie can compress pointer information and answers pointer related queries very efficiently. The experiment shows that Pestrie produces 10.5X and 17.5X smaller persistent files than the traditional bitmap and BDD encodings. Meanwhile, Pestrie is 2.9X to 123.6X faster than traditional demand-driven approaches for serving points-to related queries.
- R. Agrawal, A. Borgida, and H. V. Jagadish. Efficient management of transitive relationships in large data and knowledge bases. In SIGMOD, 1989. Google Scholar
Digital Library
- K. Ali and O. Lhoták. Averroes: Whole-program analysis without the whole program. In ECOOP, 2013. Google Scholar
Digital Library
- E. Bodden. Pointer analyses for open programs. In O. Lhotak, Y. Smaragdakis, and M. Sridharan, editors, Pointer Analysis (Dagstuhl Seminar 13162). 2013.Google Scholar
- E. Bodden, A. Sewe, J. Sinschek, H. Oueslati, and M. Mezini. Taming reflection: Aiding static analysis in the presence of reflection and custom class loaders. In ICSE, 2011. Google Scholar
Digital Library
- M. Bravenboer and Y. Smaragdakis. Strictly declarative specification of sophisticated points-to analyses. In OOPSLA, 2009. Google Scholar
Digital Library
- D. Comer. Analysis of a heuristic for full trie minimization. ACM Trans. Database Syst., Sept. 1981. Google Scholar
Digital Library
- D. Comer and R. Sethi. The complexity of trie index construction. J. ACM, July 1977. Google Scholar
Digital Library
- M. Das, B. Liblit, M. Fähndrich, and J. Rehof. Estimating the impact of scalable pointer analysis on optimization. In SAS, 2001. Google Scholar
Digital Library
- I. Dillig, T. Dillig, A. Aiken, and M. Sagiv. Precise and compact modular procedure summaries for heap manipulating programs. In PLDI, 2011. Google Scholar
Digital Library
- N. Dor, S. Adams, M. Das, and Z. Yang. Software validation via scalable path-sensitive value flow analysis. In ISSTA, 2004. Google Scholar
Digital Library
- N. Dor, T. Lev-Ami, S. Litvak, M. Sagiv, and D. Weiss. Customization change impact analysis for ERP professionals via program slicing. In ISSTA, 2008. Google Scholar
Digital Library
- B. Hackett and A. Aiken. How is aliasing used in systems software? In FSE, 2006. Google Scholar
Digital Library
- B. Hardekopf and C. Lin. The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code. In PLDI, 2007. Google Scholar
Digital Library
- B. Hardekopf and C. Lin. Exploiting pointer and location equivalence to optimize pointer analysis. In SAS, 2007. Google Scholar
Digital Library
- B. Hardekopf and C. Lin. Flow-sensitive pointer analysis for millions of lines of code. In CGO, 2011. Google Scholar
Digital Library
- J. M. Kleinberg. Authoritative sources in a hyperlinked environment. J. ACM, 1999. Google Scholar
Digital Library
- M. S. Lam, J. Whaley, V. B. Livshits, M. C. Martin, D. Avots, M. Carbin, and C. Unkel. Context-sensitive program analysis as database queries. In PODS, 2005. Google Scholar
Digital Library
- A. Le, O. Lhoták, and L. Hendren. Using inter-procedural side-effect information in JIT optimizations. In CC, 2005. Google Scholar
Digital Library
- O. Lhoták and K.-C. A. Chung. Points-to analysis with efficient strong updates. In POPL, 2011. Google Scholar
Digital Library
- O. Lhoták and L. Hendren. Evaluating the benefits of context-sensitive points-to analysis using a BDD-based implementation. ACM Trans. Softw. Eng. Methodol., 2008. Google Scholar
Digital Library
- L. Li, C. Cifuentes, and N. Keynes. Boosting the performance of flow-sensitive points-to analysis using value flow. In FSE, 2011. Google Scholar
Digital Library
- R. Manevich, M. Sridharan, S. Adams, M. Das, and Z. Yang. PSE: Explaining program failures via postmortem static analysis. In FSE, 2004. Google Scholar
Digital Library
- M. Martin, B. Livshits, and M. S. Lam. Finding application errors and security flaws using PQL: a program query language. In OOPSLA, 2005. Google Scholar
Digital Library
- N. A. Naeem and O. Lhotak. Typestate-like analysis of multiple interacting objects. In OOPSLA, 2008. Google Scholar
Digital Library
- M. Naik, A. Aiken, and J. Whaley. Effective static race detection for Java. In PLDI, 2006. Google Scholar
Digital Library
- M. Naik, C.-S. Park, K. Sen, and D. Gay. Effective static deadlock detection. In ICSE, 2009. Google Scholar
Digital Library
- C. M. Papadimitriou. Computational complexity. Addison-Wesley, Reading, Massachusetts, 1994.Google Scholar
- A. Rountev and S. Chandra. Off-line variable substitution for scaling points-to analysis. In PLDI, 2000. Google Scholar
Digital Library
- A. Rountev and B. G. Ryder. Points-to and side-effect analyses for programs built with precompiled libraries. In CC, 2001. Google Scholar
Digital Library
- A. Rountev, B. G. Ryder, and W. Landi. Data-flow analysis of program fragments. In FSE, 1999. Google Scholar
Digital Library
- A. Rountev, M. Sharp, and G. Xu. IDE dataflow analysis in the presence of large object-oriented libraries. In CC, 2008. Google Scholar
Digital Library
- Y. Smaragdakis, M. Bravenboer, and O. Lhoták. Pick your contexts well: understanding object-sensitivity. In POPL, 2011. Google Scholar
Digital Library
- M. Sridharan. Practical aspects of pointer analysis. In O. Lhotak, Y. Smaragdakis, and M. Sridharan, editors, Pointer Analysis (Dagstuhl Seminar 13162). 2013.Google Scholar
- M. Sridharan and R. Bodík. Refinement-based context-sensitive points-to analysis for Java. In PLDI, 2006. Google Scholar
Digital Library
- M. Sridharan, S. J. Fink, and R. Bodik. Thin slicing. In PLDI, 2007. Google Scholar
Digital Library
- Y. Sui, D. Ye, and J. Xue. Static memory leak detection using full-sparse value-flow analysis. In ISSTA, 2012. Google Scholar
Digital Library
- O. Tripp, M. Pistoia, S. J. Fink, M. Sridharan, and O. Weisman. TAJ: effective taint analysis of web applications. In PLDI, 2009. Google Scholar
Digital Library
- R. Vallee-Rai, E. Gagnon, L. Hendren, P. Lam, P. Pominville, and V. Sundaresan. Optimizing Java bytecode using the Soot framework: Is it feasible? In CC, 2000. Google Scholar
Digital Library
- J. Whaley and M. S. Lam. Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In PLDI, 2004. Google Scholar
Digital Library
- X. Xiao and C. Zhang. Geometric encoding: forging the high performance context sensitive points-to analysis for Java. In ISSTA, 2011. Google Scholar
Digital Library
- G. Xu and A. Rountev. Merging equivalent contexts for scalable heap-cloning-based context-sensitive points-to analysis. In ISSTA, 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 ECOOP, 2009. Google Scholar
Digital Library
- G. Xu, D. Yan, and A. Rountev. Static detection of loop-invariant data structures. In ECOOP, 2012. Google Scholar
Digital Library
- D. Yan, G. Xu, and A. Rountev. Demand-driven context-sensitive alias analysis for Java. In ISSTA, 2011. Google Scholar
Digital Library
- G. Yorsh, E. Yahav, and S. Chandra. Generating precise and concise procedure summaries. In POPL, 2008. Google Scholar
Digital Library
- H. Yu, J. Xue, W. Huo, X. Feng, and Z. Zhang. Level by level: making flow- and context-sensitive pointer analysis scalable for millions of lines of code. In CGO, 2010. Google Scholar
Digital Library
- Q. Zhang, M. R. Lyu, H. Yuan, and Z. Su. Fast algorithms for Dyck-CFL-reachability with applications to alias analysis. In PLDI, 2013. Google Scholar
Digital Library
- X. Zheng and R. Rugina. Demand-driven alias analysis for C. In POPL, 2008. Google Scholar
Digital Library
Index Terms
Persistent pointer information
Recommendations
Persistent pointer information
PLDI '14: Proceedings of the 35th ACM SIGPLAN Conference on Programming Language Design and ImplementationPointer information, indispensable for static analysis tools, is expensive to compute and query. We provide a query-efficient persistence technique, Pestrie, to mitigate the costly computation and slow querying of precise pointer information. Leveraging ...
Interprocedural pointer alias analysis
We present practical approximation methods for computing and representing interprocedural aliases for a program written in a language that includes pointers, reference parameters, and recursion. We present the following contributions: (1) a framework ...







Comments