Hash Consed Points-To SetsVirtual
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 OctDisplayed time zone: Central Time (US & Canada) change
13:50 - 15:10 | |||
13:50 15mTalk | Automatic Synthesis of Data-Flow AnalyzersVirtual SAS | ||
14:05 15mTalk | Disjunctive Interval AnalysisVirtual SAS Graeme Gange , Jorge A. Navas SRI International, Peter Schachte , Harald Sondergaard , Peter J. Stuckey Monash University | ||
14:20 15mTalk | 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 15mTalk | Selective Context-Sensitivity for k-CFA with CFL-ReachabilityVirtual SAS | ||
14:50 20mLive Q&A | Session 3C Discussion, Questions and Answers SAS |
21:50 - 23:10 | |||
21:50 15mTalk | Automatic Synthesis of Data-Flow AnalyzersVirtual SAS | ||
22:05 15mTalk | Disjunctive Interval AnalysisVirtual SAS Graeme Gange , Jorge A. Navas SRI International, Peter Schachte , Harald Sondergaard , Peter J. Stuckey Monash University | ||
22:20 15mTalk | 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 15mTalk | Selective Context-Sensitivity for k-CFA with CFL-ReachabilityVirtual SAS | ||
22:50 20mLive Q&A | Session 3C Discussion, Questions and Answers SAS |