SVF: Interprocedural static value-flow analysis in LLVM

Publisher:
ASSOC COMPUTING MACHINERY
Publication Type:
Conference Proceeding
Citation:
Proceedings of CC 2016: The 25th International Conference on Compiler Construction, 2016, pp. 265-266
Issue Date:
2016-03-17
Filename Description Size
2-s2.0-84966565039 am Combined .pdfAccepted Manuscript Version817.4 kB
Adobe PDF
Full metadata record
© 2016 ACM. 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 pointsto 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. SVF is publicly available at http://unsw-corg.github.io/SVF.
Please use this identifier to cite or link to this item: