Speed and Precision in Range Analysis
Autor: | Fernando Magno Quintão Pereira, Victor Hugo Sperle Campos, Igor Rafael de Assis Costa, Raphael Ernani Rodrigues |
---|---|
Rok vydání: | 2012 |
Předmět: | |
Zdroj: | Programming Languages ISBN: 9783642331817 SBLP |
DOI: | 10.1007/978-3-642-33182-4_5 |
Popis: | 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. |
Databáze: | OpenAIRE |
Externí odkaz: |