SVF: Interprocedural Static Value-Flow Analysis in LLVM

被引:285
作者
Sui, Yulei [1 ]
Xue, Jingling [1 ]
机构
[1] UNSW, Sch Comp Sci & Engn, Sydney, NSW, Australia
来源
PROCEEDINGS OF THE 25TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION (CC 2016) | 2016年
关键词
Pointer Analysis; Sparse Analysis; Flow-Sensitivity;
D O I
10.1145/2892208.2892235
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This paper presents SVF, a tool that enables scalable and precise interprocedural Static Value-Flow analysis for C programs by leveraging recent advances in sparse analysis. SVF, which is fully implemented in LLVM, allows value-flow construction and pointer analysis to be performed in an iterative manner, thereby providing increasingly improved precision for both. SVF accepts points-to information generated by any pointer analysis (e.g., Andersen's analysis) and constructs an interprocedural memory SSA form, in which the def-use chains of both top-level and address-taken variables are captured. Such value-flows can be subsequently exploited to support various forms of program analysis or enable more precise pointer analysis (e.g., flow-sensitive analysis) to be performed sparsely. By dividing a pointer analysis into three loosely coupled components: Graph, Rules and Solver, SVF provides an extensible interface for users to write their own solutions easily.
引用
收藏
页码:265 / 266
页数:2
相关论文
共 26 条
[1]  
[Anonymous], P CGO
[2]  
[Anonymous], TJ WATS LIB AN WALA
[3]  
[Anonymous], WORKSH INSP SOFTW EN
[4]  
Arzt S, 2014, ACM SIGPLAN NOTICES, V49, P259, DOI [10.1145/2594291.2594299, 10.1145/2666356.2594299]
[5]   THE PROGRAM DEPENDENCE GRAPH AND ITS USE IN OPTIMIZATION [J].
FERRANTE, J ;
OTTENSTEIN, KJ ;
WARREN, JD .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 1987, 9 (03) :319-349
[6]  
HORWITZ S, 1988, SIGPLAN NOTICES, V23, P35
[7]  
Reps T., 1995, Conference Record of POPL'95: 22nd ACM SIGPLAN-SIGACT Symposium Principles of Programming Languages, P49, DOI 10.1145/199448.199462
[8]   Detecting Memory Leaks Statically with Full-Sparse Value-Flow Analysis [J].
Sui, Yulei ;
Ye, Ding ;
Xue, Jingling .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 2014, 40 (02) :107-122
[9]   PROGRAMMERS USE SLICES WHEN DEBUGGING [J].
WEISER, M .
COMMUNICATIONS OF THE ACM, 1982, 25 (07) :446-452
[10]   Region-Based selective flow-sensitive pointer analysis [J].
Ye, Sen ;
Sui, Yulei ;
Xue, Jingling .
Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2014, 8723 :319-336