Lune

PLDI2021Top-tier venue

Incremental whole-program analysis in Datalog with lattices

Tamás Szabó, Sebastian Erdweg, Gábor Bergmann

2021Year
39Citations
16Top-tier citations

Abstract

Incremental static analyses provide up-to-date analysis results in time proportional to the size of a code change, not the entire code base. This promises fast feedback to programmers in IDEs and when checking in commits. However, existing incremental analysis frameworks fail to deliver on this promise for whole-program lattice-based data-flow analyses. In particular, prior Datalog-based frameworks yield good incremental performance only for intra-procedural analyses.

In this paper, we first present a methodology to empirically test if a computation is amenable to incrementalization. Using this methodology, we find that incremental wholeprogram analysis may be possible. Second, we present a new incremental Datalog solver called Laddder to eliminate the shortcomings of prior Datalog-based analysis frameworks. Our Datalog solver uses a non-standard aggregation semantics which allows us to loosen monotonicity requirements on analyses and to improve the performance of lattice aggregators considerably. Our evaluation on real-world Java code confirms that Laddder provides up-to-date points-to, constant propagation, and interval information in milliseconds.

• Software and its engineering → Automated static analysis.

Ask about this paper

Your agent reads all of it.

Lune indexed this paper to the last equation, along with the top-tier papers that cite it. Ask a question and the answer quotes them.

Questions to start from

Your agent calls

Luneget_paper_fulltext

Ask in Lune

Free to start. No credit card required.

lune papers fulltext 8cafea4b-5288-4044-8c44-4b4e3402272e

Cited by top-tier papers16

Ask how each one uses it

Builds on1

Related papers

Dusk over the sea between two cliffs drawn in fine vertical lines