Speed and precision in range analysis

5Citations
Citations of this article
9Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Range analysis is a compiler technique that determines statically the lower and upper values that each integer variable from a target program may assume during this program's execution. This type of inference is very important, because it enables several compiler optimizations, such as dead and redundant code elimination, bitwidth aware register allocation, and detection of program vulnerabilities. In this paper we describe an inter-procedural, context-sensitive range analysis algorithm that we have implemented in the LLVM compiler. During the effort to produce an industrial-quality implementation of our algorithm, we had to face a constant tension between precision and speed. The foremost goal of this paper is to discuss the many engineering choices that, due to this tension, have shaped our implementation. Given the breath of our evaluation, we believe that this paper contains the most comprehensive empirical study of a range analysis algorithm ever presented in the compiler related literature. © 2012 Springer-Verlag.

Cite

CITATION STYLE

APA

Campos, V. H. S., Rodrigues, R. E., De Assis Costa, I. R., & Pereira, F. M. Q. (2012). Speed and precision in range analysis. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 7554 LNCS, pp. 42–56). https://doi.org/10.1007/978-3-642-33182-4_5

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free