Fri 25 Oct 2024 11:40 - 12:00 at IBR West - Static Analysis and Program Verification 4 Chair(s): Anders Møller

Data-flow analyses like points-to analysis can vastly improve the precision of other analyses, and help perform powerful code optimizations. However, whole-program points-to analysis of large programs tend to be expensive – both in terms of time and memory. Consequently, many compilers (both static and JIT) and program-analysis tools tend to employ faster – but more conservative – points-to analysis to improve usability. As an alternative to such trading of precision for performance, various techniques have been proposed to perform precise yet expensive fixed-point points-to analyses ahead of time in a static analyzer, store the results, and then transmit them to independent compilation/program-analysis stages that may need them. However, an underlying concern of safety affects all such techniques – can a compiler (or program analysis tool) trust the points-to analysis results generated by another compiler/tool?

In this work, we address this issue of trust, while keeping the issues of performance efficiency in mind. We propose ART: Analysis-results Representation Template – a novel scheme to efficiently and concisely encode results of flow-sensitive, context-insensitive points-to analysis computed by a static analyzer for use in any independent system that may benefit from such a highly precise points-to analysis. ART also allows for fast regeneration of the encoded sound analysis results in such systems. Our scheme has two components: (i) a producer that can statically perform expensive points-to analysis and encode the same concisely. (ii) a consumer that, on receiving such encoded results (called artwork), can regenerate the points-to analysis results encoded by the artwork if it is deemed “safe". The regeneration scheme completely avoids fixed-point computations and thus can help consumers like static analyzers and JIT compilers to obtain precise points-to information without paying a prohibitively high cost. We demonstrate the usage of ART by implementing a producer (in Soot) and two consumers (in Soot and the Eclipse OpenJ9 JIT compiler). We have evaluated our implementation over various benchmarks from the DaCapo and SPECjvm2008 suites. Our results demonstrate that using ART, a consumer can obtain precise flow-sensitive, context-insensitive points-to analysis results in less than (average) 1% of the time taken by a static analyzer to perform the same analysis, with the storage overhead of ART representing a small fraction of the program size (average around 4%).

Fri 25 Oct

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

11:00 - 12:20
Static Analysis and Program Verification 4OOPSLA 2024 at IBR West
Chair(s): Anders Møller Aarhus University
11:00
20m
Talk
A Learning-Based Approach to Static Program Slicing
OOPSLA 2024
Aashish Yadavally University of Texas at Dallas, Yi Li University of Texas at Dallas, Shaohua Wang Central University of Finance and Economics, Tien N. Nguyen University of Texas at Dallas
DOI Pre-print
11:20
20m
Talk
Boosting the Performance of Alias-Aware IFDS Analysis with CFL-based Environment Transformers
OOPSLA 2024
Haofeng Li Institute of Computing Technology at Chinese Academy of Sciences, Chenghang Shi SKLP, Institute of Computing Technology, CAS, Jie Lu SKLP, Institute of Computing Technology, CAS, Lian Li Institute of Computing Technology at Chinese Academy of Sciences; University of Chinese Academy of Sciences, Jingling Xue UNSW Sydney
DOI
11:40
20m
Talk
The ART of Sharing Points-to Analysis: Reusing Points-to Analysis Results Safely and Efficiently
OOPSLA 2024
Shashin Halalingaiah UT Austin, IIT Madras, Vijay Sundaresan IBM Canada, Daryl Maier IBM Canada, V Krishna Nandivada IIT Madras
DOI
12:00
20m
Talk
UniSparse: An Intermediate Language for General Sparse Format Customization
OOPSLA 2024
Jie Liu Cornell University, Zhongyuan Zhao Qualcomm, Zijian Ding UCLA, Benjamin Brock Parallel Computing Lab (PCL), Intel, Hongbo Rong Intel Labs, Zhiru Zhang Cornell University, USA
DOI