Mon 16 Jan 2023 11:00 - 11:30 at Arlington - Static Analysis Chair(s): Xavier Rival

We consider interprocedural data-flow analysis as formalized by the standard IFDS framework, which can express many widely-used static analyses such as reaching definitions, live variables, and null-pointer. We focus on the well-studied on-demand setting in which queries arrive one-by-one in a stream and each query should be answered as fast as possible. While the classical IFDS algorithm provides a polynomial-time solution for this problem, it is not scalable in practice. More specifically, it will either require a quadratic-time preprocessing phase or takes linear time per query, both of which are untenable for modern huge codebases with hundreds of thousands of lines. Previous works have already shown that parameterizing the problem by the treewidth of the program’s control-flow graph is promising and can lead to significant gains in efficiency. Unfortunately, these results were only applicable to the limited special case of same-context queries.

In this work, we obtain significant speedups for the general case of on-demand IFDS with queries that are not necessarily same-context. This is achieved by exploiting a new graph sparsity parameter, namely the treedepth of the program’s call graph. Our approach is the first to exploit the sparsity of control-flow graphs and call graphs at the same time and parameterize by both the treewidth and the treedepth. We obtain an algorithm with a linear preprocessing phase that can answer each query in constant time wrt the size of the input. Finally, our experimental results demonstrate that our approach outperforms the classical IFDS and its on-demand variant by several orders of magnitude.

Mon 16 Jan

Displayed time zone: Eastern Time (US & Canada) change

11:00 - 12:30
Static AnalysisVMCAI at Arlington
Chair(s): Xavier Rival Inria; ENS; CNRS; PSL University
11:00
30m
Talk
Efficient Interprocedural Data-Flow Analysis using Treedepth and Treewidth
VMCAI
Amir Kafshdar Goharshady IST Austria, Austria, Ahmed Khaled Zaher HKUST
11:30
30m
Talk
Result Invalidation for Incremental Modular Analyses
VMCAI
Jens Van der Plas Software Languages Lab, Vrije Universiteit Brussel, Quentin Stiévenart Vrije Universiteit Brussel, Coen De Roover Vrije Universiteit Brussel
12:00
30m
Talk
Symbolic Abstract Heaps for Polymorphic Information-flow Guard Inference
VMCAI
Nicolas Berthier OCamlPro, Narges Khakpour Linnaeus University