Author:
Chatterjee Krishnendu,Goharshady Amir Kafshdar,Ibsen-Jensen Rasmus,Pavlogiannis Andreas
Abstract
AbstractInterprocedural data-flow analyses form an expressive and useful paradigm of numerous static analysis applications, such as live variables analysis, alias analysis and null pointers analysis. The most widely-used framework for interprocedural data-flow analysis isIFDS, which encompasses distributive data-flow functions over a finite domain.On-demanddata-flow analyses restrict the focus of the analysis on specific program locations and data facts. This setting provides a natural split between (i) anoffline (or preprocessing) phase, where the program is partially analyzed and analysis summaries are created, and (ii) anonline (or query) phase, where analysis queries arrive on demand and the summaries are used to speed up answering queries.In this work, we consider on-demand IFDS analyses where the queries concern program locations of the same procedure (aka same-context queries). We exploit the fact that flow graphs of programs have low treewidth to develop faster algorithms that arespace and time optimalfor many common data-flow analyses, in both the preprocessing and the query phase. We also use treewidth to develop query solutions that areembarrassingly parallelizable, i.e. the total work for answering each query is split to a number of threads such that each thread performs only a constant amount of work. Finally, we implement a static analyzer based on our algorithms, and perform a series of on-demand analysis experiments on standard benchmarks. Our experimental results show a drastic speed-up of the queries after only a lightweight preprocessing phase, which significantly outperforms existing techniques.
Publisher
Springer International Publishing
Cited by
10 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献