MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  Deriving pre-conditions for array bound check elimination (2001) [6 citations — 3 self]

Download:
pdf | ps
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