Precise Null Pointer Analysis Through Global Value Numbering
Autor: | Ankush Das, Akash Lal |
---|---|
Rok vydání: | 2017 |
Předmět: |
Global value numbering
Alias Static single assignment form Computer science Optimizing compiler Program transformation 020207 software engineering Static program analysis 02 engineering and technology Alias analysis TheoryofComputation_LOGICSANDMEANINGSOFPROGRAMS Pointer (computer programming) 0202 electrical engineering electronic engineering information engineering 020201 artificial intelligence & image processing Algorithm |
Zdroj: | Automated Technology for Verification and Analysis ISBN: 9783319681665 ATVA |
DOI: | 10.1007/978-3-319-68167-2_2 |
Popis: | Precise analysis of pointer information plays an important role in many static analysis tools. The precision, however, must be balanced against the scalability of the analysis. This paper focusses on improving the precision of standard context and flow insensitive alias analysis algorithms at a low scalability cost. In particular, we present a semantics-preserving program transformation that drastically improves the precision of existing analyses when deciding if a pointer can alias Null. Our program transformation is based on Global Value Numbering, a scheme inspired from compiler optimization literature. It allows even a flow-insensitive analysis to make use of branch conditions such as checking if a pointer is Null and gain precision. We perform experiments on real-world code and show that the transformation improves precision (in terms of the number of dereferences proved safe) from 86.56% to 98.05%, while incurring a small overhead in the running time. |
Databáze: | OpenAIRE |
Externí odkaz: |