一句话:提出批处理别名分析框架,通过消除无关与冗余数据流路径,在不牺牲精度的前提下加速按需别名分析。
按需别名分析只为给定查询计算必要的 points-to/alias 信息,但在大规模系统中查询数量很多时开销巨大,难以满足 IDE 等实时性约束。本文提出批处理分析(batch analysis)思想,可批量回答多个查询,并基于消除给定查询的无关与冗余数据流路径,构建了一个能够加速现有按需别名分析的批处理别名分析框架。作者用两种按需别名分析实例化该框架:面向竞争检测客户端的最佳性能按需别名分析工具,以及避免无关计算的优化版本。在模拟数据竞争客户端和近期程序理解工具上的评估表明,批处理分析带来显著性能提升,同时还有少量精度改进。
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.
DOI 原文 ·
@inproceedings{paperbot5202,
title = {Batch Alias Analysis},
author = {Jyothi Vedurada and V. Krishna Nandivada},
booktitle = {ASE},
year = {2019},
doi = {10.1109/ase.2019.00091}
}