SAS 2021
Sun 17 - Fri 22 October 2021 Chicago, Illinois, United States
co-located with SPLASH 2021
Tue 19 Oct 2021 14:20 - 14:35 at Zurich D - Session 3C Chair(s): David Pichardie
Tue 19 Oct 2021 22:20 - 22:35 at Zurich D - Session 3C Chair(s): Kedar Namjoshi

Points-to analysis is a fundamental static analysis, on which many other analyses and optimisations are built. The goal of points-to analysis is to statically approximate the set of abstract objects that a pointer can point to at runtime. Due to the nature of static analysis, points-to analysis introduces much redundancy which can result in duplicate points-to sets and duplicate set union operations, particularly when analysing large programs precisely. To improve performance, there has been extensive effort in mitigating duplication at the algorithmic level through, for example, cycle elimination and variable substitution.

Unlike previous approaches which make algorithmic changes to points-to analysis, this work aims to improve the underlying data structure, which is less studied. Inspired by hash consing from the functional programming community, this paper introduces the use of hash consed points-to sets to reduce the effects of this duplication on both space and time without any high-level algorithmic change. Hash consing can effectively handle duplicate points-to set by representing points-to sets once, and referring to such representations through references, and can speed up duplicate union operations through efficient memoisation. We have implemented and evaluated our approach using 16 real-world C/C++ programs (more than 9.5 million lines of LLVM instructions). Our results show that our approach speeds up state-of-the-art Andersen’s analysis by 1.86× on average (up to 3.21×) and staged flow-sensitive analysis (SFS) by 1.69× on average (up to 2.23×). We also observe an average ≥4.93× (up to ≥15.52×) memory usage reduction in SFS.

Tue 19 Oct

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

13:50 - 15:10
Session 3CSAS at Zurich D +8h
Chair(s): David Pichardie Facebook Paris
13:50
15m
Talk
Automatic Synthesis of Data-Flow AnalyzersVirtual
SAS
Xuezheng Xu UNSW Sydney, Xudong Wang UNSW Sydney, Jingling Xue UNSW Sydney
14:05
15m
Talk
Disjunctive Interval AnalysisVirtual
SAS
14:20
15m
Talk
Hash Consed Points-To SetsVirtual
SAS
Mohamad Barbar University of Technology Sydney; CSIRO’s Data61, Yulei Sui University of New South Wales, Sydney
14:35
15m
Talk
Selective Context-Sensitivity for k-CFA with CFL-ReachabilityVirtual
SAS
Jingbo Lu UNSW Sydney, Dongjie He UNSW Sydney, Jingling Xue UNSW Sydney
14:50
20m
Live Q&A
Session 3C Discussion, Questions and Answers
SAS

21:50 - 23:10
Session 3CSAS at Zurich D
Chair(s): Kedar Namjoshi Nokia Bell Labs
21:50
15m
Talk
Automatic Synthesis of Data-Flow AnalyzersVirtual
SAS
Xuezheng Xu UNSW Sydney, Xudong Wang UNSW Sydney, Jingling Xue UNSW Sydney
22:05
15m
Talk
Disjunctive Interval AnalysisVirtual
SAS
22:20
15m
Talk
Hash Consed Points-To SetsVirtual
SAS
Mohamad Barbar University of Technology Sydney; CSIRO’s Data61, Yulei Sui University of New South Wales, Sydney
22:35
15m
Talk
Selective Context-Sensitivity for k-CFA with CFL-ReachabilityVirtual
SAS
Jingbo Lu UNSW Sydney, Dongjie He UNSW Sydney, Jingling Xue UNSW Sydney
22:50
20m
Live Q&A
Session 3C Discussion, Questions and Answers
SAS