Signedness-Agnostic Program Analysis: Precise Integer Bounds for Low-Level Code
Signedness-Agnostic Program Analysis: Precise Integer Bounds for Low-Level Code
复制标题
与符号无关的程序分析:低级代码的精确整数界限
DOI:
10.1007/978-3-642-35182-2_9
复制
发表时间:
2012
期刊:
影响因子:
--
通讯作者:
Peter James Stuckey
中科院分区:
文献类型:
--
作者:
J. Navas;P. Schachte;H. Søndergaard;Peter James Stuckey
Many compilers target common back-ends, thereby avoiding the need to implement the same analyses for many different source languages. This has led to interest in static analysis of LLVM code. In LLVM (and similar languages) most signedness information associated with variables has been compiled away. Current analyses of LLVM code tend to assume that either all values are signed or all are unsigned (except where the code specifies the signedness). We show how program analysis can simultaneously consider each bit-string to be both signed and unsigned, thus improving precision, and we implement the idea for the specific case of integer bounds analysis. Experimental evaluation shows that this provides higher precision at little extra cost. Our approach turns out to be beneficial even when all signedness information is available, such as when analysing C or Java code.