Optimal and Perfectly Parallel Algorithms for On-demand Data-Flow Analysis

Publikation: Bidrag til bog/antologi/rapport/proceedingKonferencebidrag i proceedingsForskningpeer review

DOI

  • Krishnendu Chatterjee, IST Austria
  • ,
  • Amir Kafshdar Goharshady, IST Austria
  • ,
  • Rasmus Ibsen-Jensen, University of Liverpool
  • ,
  • Andreas Pavlogiannis

Interprocedural 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 is IFDS, which encompasses distributive data-flow functions over a finite domain. On-demand data-flow analyses restrict the focus of the analysis on specific program locations and data facts. This setting provides a natural split between (i) an offline (or preprocessing) phase, where the program is partially analyzed and analysis summaries are created, and (ii) an online (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 are space and time optimal for many common data-flow analyses, in both the preprocessing and the query phase. We also use treewidth to develop query solutions that are embarrassingly 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.

OriginalsprogEngelsk
TitelProgramming Languages and Systems- 29th European Symposium on Programming, ESOP 2020 held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020, Proceedings
RedaktørerPeter Müller
Antal sider29
ForlagSpringer
Udgivelsesårjan. 2020
Sider112-140
ISBN (trykt)9783030449131
DOI
StatusUdgivet - jan. 2020
Begivenhed29th European Symposium on Programming, ESOP 2020, held as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020 - Dublin, Irland
Varighed: 25 apr. 202030 apr. 2020

Konference

Konference29th European Symposium on Programming, ESOP 2020, held as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2020
LandIrland
ByDublin
Periode25/04/202030/04/2020
SerietitelLecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
Vol/bind12075
ISSN0302-9743

Se relationer på Aarhus Universitet Citationsformater

ID: 186729145