Batch Alias Analysis
Authors:
- 1 November 2019
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 936-948
Abstract
Many program-analysis based tools require precise points-to/alias information only for some program variables. To meet this requirement efficiently, there have been many works on demand-driven analyses that perform only the work necessary to compute the points-to or alias information on the requested variables (queries). However, these demand-driven analyses can be very expensive when applied on large systems where the number of queries can be significant. Such a blow-up in analysis time is unacceptable in cases where scalability with real-time constraints is crucial; for example, when program analysis tools are plugged into an IDE (Integrated Development Environment). In this paper, we propose schemes to improve the scalability of demand-driven analyses without compromising on precision. Our work is based on novel ideas for eliminating irrelevant and redundant data-flow paths for the given queries. We introduce the idea of batch analysis, which can answer multiple given queries in batch mode. Batch analysis suits the environments with strict time constraints, where the queries come in batch. We present a batch alias analysis framework that can be used to speed up given demand-driven alias analysis. To show the effectiveness of this framework, we use two demand-driven alias analyses (1) the existing best performing demand-driven alias analysis tool for race-detection clients and (2) an optimized version thereof that avoids irrelevant computation. Our evaluations on a simulated data-race client, and on a recent program-understanding tool, show that batch analysis leads to significant performance gains, along with minor gains in precision.Keywords
This publication has 27 references indexed in Scilit:
- On abstraction refinement for program analyses in DatalogACM SIGPLAN Notices, 2014
- An Incremental Points-to Analysis with CFL-Reachability2013
- On-demand dynamic summary-based points-to analysis2012
- Demand-driven context-sensitive alias analysis for Java2011
- Scaling CFL-Reachability-Based Points-To Analysis Using Context-Sensitive Must-Not-Alias Analysis2009
- Client-Driven Pointer Analysis2003
- Scaling Java Points-to Analysis Using Spark2003
- Dimensions of Precision in Reference Analysis of Object-Oriented Programming Languages2003
- Which pointer analysis should I use?2000
- Linear cost is sometimes quadratic1981