by Wei-ngan Chin, Siau-cheng Khoo, Dana N. Xu
In Proceedings of the Second Symposium on Programs as Data Objects, PADO 2001
http://www.comp.nus.edu.sg/~khoosc/papers/chin-khoo-xu_pado2.ps.gz
Add To MetaCart
Abstract:
Abstract. We present a high-level approach to array bound check optimization that is neither hampered by recursive functions, nor disabled by the presence of partially redundant checks. Our approach combines a forward analysis to infer precise contextual constraint at designated program points, and a backward method for deriving a safety pre-condition for each bound check. Both analyses are formulated with the help of a practical constraint solver based on Presburger formulae; resulting in an accurate and fully automatable optimization. The derived pre-conditions are also used to guide bound check specialization, for the purpose of eliminating partially redundant checks. 1
Citations
|
811
|
Proof-Carrying Code
– Necula
- 1997
|
|
358
|
N.: Automatic discovery of linear restraints among variables of a program
– Cousot, Halbwachs
- 1978
|
|
352
|
The omega test: a fast and practical integer programming algorithm for dependence analysis
– Pugh
- 1991
|
|
330
|
Synchronous Programming of Reactive Systems
– Halbwachs
- 1993
|
|
216
|
The design and implementation of a certifying compiler
– Necula, Lee
- 1998
|
|
141
|
Eliminating Array Bound Checking Through Dependent Types
– Xi, Pfenning
- 1998
|
|
86
|
Eliminating array bounds checks on demand
– Bodik, Gupta, et al.
- 2002
|
|
78
|
Symbolic bounds analysis of pointers, array indices, and accessed memory regions
– Rugina, Rinard
- 2005
|
|
76
|
Compiler Analysis of the Value Ranges for Variables
– Harrison
- 1977
|
|
68
|
Termination Proofs for Logic Programs
– Plumer
- 1988
|
|
67
|
Verification of real-time systems using linear relation analysis
– Halbwachs, Proy, et al.
- 1997
|
|
64
|
Efficient tests for top-down termination of logic rules
– Ullman, Gelder
- 1988
|
|
63
|
Elimination of redundant array subscript range checks
– Kolte, Wolfe
- 1995
|
|
59
|
A fresh look at optimizing array bound checking
– Gupta
- 1990
|
|
58
|
K.: Implementation of an array bound checker
– Suzuki, Ishihata
- 1977
|
|
47
|
Optimization of range checking
– Markstein, Cocke, et al.
- 1982
|
|
41
|
Safety checking of machine code
– Xu, Miller, et al.
- 2000
|
|
37
|
Inferring Argument Size Relationships with CLP(R
– Benoy, King
- 1997
|
|
32
|
Calculating sized types
– Chin, Khoo
- 2000
|
|
23
|
About synchronous programming and abstract interpretation
– Halbwachs
- 1994
|
|
21
|
Constraint-based Partial Evaluation of Rewriting-based Functional Logic Programs
– Lafave, Gallagher
- 1997
|
|
15
|
Optimising bounds checking in Java programs
– Midkiff, Moreira, et al.
- 1998
|
|
13
|
Lower-bound Time-complexity Analysis of Logic Programs
– King, Shen, et al.
- 1997
|
|
12
|
The Omega Library Version 1.1.0 Interface Guide
– Kelly, Maslov, et al.
- 1996
|
|
9
|
Optimizing array bound checks using analysis
– Gupta
- 1993
|
|
1
|
Rules and stratigies for contextual specialization of constraint logic programs
– Fioravanti, Pettorossi, et al.
- 1990
|
|
1
|
The insertion of speculative tests may look similar to check hoisting. The key dierent is that no exception is raised if speculative test fails
– Compilers, Techniques, et al.
- 1986
|