50 citations found. Retrieving documents...
R. Gupta. A fresh look at optimizing array bound checking. In Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, pages 272-282, White Plains, NY, June 1990.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

Exploiting Specifications to Improve Program Performance - Vandevoorde (1994)   (13 citations)  (Correct)

....over the loop. To get theses optimizations, the author of remove duplicates did not have to write any specifications. Instead, the compiler used the specifications of the procedures and data types used in remove duplicates. On the surface, many of the array optimizations seem similar to those in [20]. However, there is a significant difference. In [20] the compiler relies on the semantics of arrays as defined by the programming language. The technique does not work for optimizations of user defined data types, e.g. sets. Here, the compiler relies on the specifications of procedures and data ....

....of remove duplicates did not have to write any specifications. Instead, the compiler used the specifications of the procedures and data types used in remove duplicates. On the surface, many of the array optimizations seem similar to those in [20] However, there is a significant difference. In [20], the compiler relies on the semantics of arrays as defined by the programming language. The technique does not work for optimizations of user defined data types, e.g. sets. Here, the compiler relies on the specifications of procedures and data types to perform optimizations, so the technique ....

[Article contains additional citation context not shown here]

Rajiv Gupta. A fresh look at optimizing array bound checking. In Proceedings of the 1990.


Optimizing Array Reference Checking in Java Programs - Midkiff, Moreira, Snir (1998)   (8 citations)  (Correct)

.... to optimizing array bounds checks: i) the use of static data flow analysis information to determine that a test is unnecessary [11, 12, 13, 14, 10] and (ii) the use of data flow information and symbolic analysis at compile time to reduce the dynamic number of tests remaining in the program [15, 16, 17, 18, 19]. Work in the first group uses data flow information to prove at compile time that an array bounds violation cannot occur at run time, and therefore, that the test for the violation is unnecessary. Using the terms of our discussion, the goal of this work is to identify loops that are safe ....

....group attempts to reduce the dynamic and static number of bounds tests. It also attempts to reduce the overhead induced by a test even if it cannot be eliminated. This is done (i) by hoisting tests out of loops when possible [19] and (ii) by also determining that a test is covered by another test [18, 17, 15, 16] and can be eliminated. The optimization method of Markstein, Cocke, and Markstein [19] is closely related to our computation of l for a single linear reference. It is implemented by three changes to the loop. First, before entering the loop a test is made to determine if a bounds violation ....

R. Gupta. A fresh look at optimizing array bounds checking. In Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, pages 272--282, June 1990.


Elimination of Java Array Bounds Checks in the.. - Lujan, Gurd, Freeman, .. (2002)   (1 citation)  (Correct)

....of indirection, ii) are suitable for adaptive just in time compilation, or (iii) support multi threading and (iv) dynamic class loading. Techniques based on theorem probers [SI77, NL98, XMR00] are too heavy weight. Algorithms based on data ow style have been published extensively [MCM82, Gup90, Gup93, KW95, Asu92, CG96] but for languages that do not provide multi threading. Another technique is based on type analysis and has its application in functional languages [XP98] Linear program solvers have also been proposed [RR00] Bodik, Gupta and Sarkar developed the ABCD (Array Bounds ....

Rajiv Gupta. A fresh look at optimizing array bound checking. In Proceedings of the ACM Conference on Programming Language Design and Implementation { PLDI'90, pages 272-282, 1990.


Solving Integer Range Constraints in Polynomial Time (Extended.. - Su, Wagner   (Correct)

....time algorithms are useful in practice for implementing scalable program analysis and veri cation tools. 1 Introduction Many program analysis and veri cation algorithms and tools have the need to solve linear integer constraints, such as for checking array bounds to ensure memory safety [11, 12, 27, 30] and for detecting bu er overruns for security applications [28] However, solving integer linear constraints is a dicult problem [17] and only very special cases have ecient algorithms [1, 24] In this paper, we study constraints over integer ranges such as the set f1; 0; 1g Z, which we ....

R. Gupta. A fresh look at optimizing array bound checking. In Proceedings of the Conference on Programming Language Design and Implementation, pages 272-282, 1990.


Deriving Pre-conditions for Array Bound Check Elimination - Chin, Khoo, Xu (2001)   (1 citation)  (Correct)

....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 Introduction Array bound check optimization has been extensively investigated over the last three decades [24, 12, 5, 17, 7, 8, 15], with renewed interests as recently as [3, 27, 23] While successful bound check elimination can bring about measurable gains in performance, the importance of bound check optimization goes beyond these direct gains. In safety oriented languages, such as Ada or Java, all bound violation must be ....

....procedure is more challenging. A key problem is that the check may be executed repeatedly, and any derived pre condition must ensure that the check is completely eliminated. One well known technique for the elimination of checks from loop based program is the loop limit substitution method of [7]. Depending on the direction of monotonicity, the check of either the rst or last iteration of the loop is used as a condition for the elimination of all checks. However, this 2 In Omega, the simpli cation can be done by a special operator, called gist . method is restricted to checks on ....

R. Gupta. A fresh look at optimizing array bound checking. In ACM SIGPLAN Conf. on Program Lang. Design and Impl., pages 272-282, New York, June 1990.


Efficient Algorithms for General Classes of Integer Range.. - Su, Wagner   (Correct)

....time algorithms are useful in practice for implementing scalable program analysis and veri cation tools. 1 Introduction Many program analysis and veri cation algorithms and tools have the need to solve linear integer constraints, such as for checking array bounds to ensure memory safety [20, 21, 48, 51] and for detecting bu er overruns for security applications [49] However, solving integer linear constraints is a dicult problem [30] and only very special cases have e cient algorithms [5, 41] In this paper, we study constraints over integer ranges such as the set f1; 0; 1; g Z, which we ....

R. Gupta. A fresh look at optimizing array bound checking. In Proceedings of the Conference on Programming Language Design and Implementation, pages 272-282, 1990.


Using Program Structure to Guide Optimization in the Presence of.. - Tarditi (1994)   (Correct)

....check whether an array index is in bounds before doing an array access. Chow [11] has shown that these checks greatly interfere with optimization, and have a significant performance penalty. It is crucial that these checks be eliminated. A number of papers have addressed bounds check elimination [36, 20, 6]. However, it is unclear how well the techniques they describe perform on realistic programs. The following example, integer matrix multiply, demonstrates the usefulness of these optimizations. Figures 19 presents a straightforward implementation of 2 dimensional integer arrays with matrix ....

Rajiv Gupta. A fresh look at optimizing array bound checking. In Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, pages 272--282, White Plains, New York, June 1992. ACM.


Safety-Checking of Machine Code - Xu (2000)   (25 citations)  (Correct)

....have long plagued security architects. Wagner et al. [91] report that buffer overruns account for up to 50 of today s vulnerabilities (based on data from CERT advisories over the last decade) Techniques for performing array bounds checks include techniques for optimizing array bounds checks [35,45,48], symbolic analyses that compute the bounds of index for array references [10,21,38,72,86,91] and program verification techniques [84] In the next few sections, we describe work in each of these three areas. thesis.fm Page 24 Tuesday, December 19, 2000 11:00 AM 25 2.2.1 Techniques for ....

....places the array bounds checks outside of the loop, modifies the loop control condition so that it guarantees that no array out of bounds violations will occur, and places a test at the loop exit to ensure that the loop will perform the same number of iterations as in the original program. Gupta [35] also described a technique for optimizing array bound checks. Gupta s optimizations reduce the program execution time and the object code size through elimination of redundant checks, propagation of checks out of loops, and combination of multiple checks into a single check. His analysis is ....

[Article contains additional citation context not shown here]

R. Gupta. A Fresh Look at Optimizing Array Bound Checking. ACM SIGPLAN Conference on Programming Language Design and Implementation. White Plains, New York (June 1990).


Deriving Pre-conditions for Array Bound Check Elimination - Chin, Khoo, Xu (2001)   (1 citation)  (Correct)

....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 Introduction Array bound check optimization has been extensively investigated over the last three decades [24, 12, 5, 17, 7, 8, 15], with renewed interests as recently as [3, 27, 23] While successful bound check elimination can bring about measurable gains in performance, the importance of bound check optimization goes beyond these direct gains. In safety oriented languages, such as Ada or Java, all bound violation must be ....

....procedure is more challenging. A key problem is that the check may be executed repeatedly, and any derived pre condition must ensure that the check is completely eliminated. One well known technique for the elimination of checks from loop based program is the loop limit substitution method of [7]. Depending on the direction of monotonicity, the check of either the rst or last iteration of the loop is used as a condition for the elimination of all checks. However, this method is restricted to checks on monotonic parameters whose limits can be precisely calculated. We propose a more ....

[Article contains additional citation context not shown here]

R. Gupta. A fresh look at optimizing array bound checking. In ACM SIGPLAN Conf. on Program Lang. Design and Impl., pages 272-282, New York, June 1990.


Efficient Intraprocedural Array Bound Checking - Nguyen, Irigoin, Ancourt..   (Correct)

....proving techniques to verify the absence of array range violations. Such techniques are often expensive and are restricted to programs written in a structured manner, i.e without goto statements. Another approach was developped by V. Markstein, Cocke and P. Markstein [15] Asuru [16] R. Gupta [9, 10], Spezialetti and R. Gupta [23] Kolte and Wolfe [14] They propose algorithms to reduce the execution overhead of range checks through elimination and propagation of bound checks by using data ow analysis. Their techniques became more and more sophisticated in order to improve results. In Gupta ....

....because of its precise exception semantics. Although there are many di erent techniques for array bound checking optimization, we can partition them into two main possible approaches. The rst approach puts array bound checks at every array reference and removes a check if it is redundant [15, 9, 16, 10, 14]. In the second approach, one only puts array bound checks at places where one doesn t know how to prove that they are useless [25, 20, 22] The rst approach attempts to reduce the dynamic and static numbers of bound tests and the overhead induced by a test even if it cannot be eliminated. This ....

R. Gupta. A fresh look at optimizing array bound checking. In Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, pages 272-282, June 1990.


The Design and Implementation of the SELF Compiler, an.. - Chambers (1992)   (3 citations)  (Correct)

....we discuss several conventional techniques that relate to techniques used for SELF. 3.4. 1 Data Flow Analysis Much work has been done on developing techniques to optimize traditional statically typed non object oriented imperative programming languages such as Fortran [BBB 57] C, and Pascal [ASU86, PW86, Gup90]. Many of these techniques revolve around data flow analysis, a framework in which information is computed about a procedure by propagating information through the procedure s control flow graph. The information computed from data flow analysis may be used to improve both the running time and the ....

Rajiv Gupta. A Fresh Look at Optimizing Array Bounds Checking. In Proceedings of the SIGPLAN '90 Conference on Programming Language Design and Implementation, pp. 272-282, White Plains, NY, June, 1990. Published as SIGPLAN Notices 25(6), June, 1990.


Path-Sensitive, Value-Flow Optimizations of Programs - Bodik (1999)   (2 citations)  Self-citation (Gupta)   (Correct)

....flow information at procedure boundaries is reduced. As a result, other optimizations, such as procedure cloning, partial redundancy and dead code elimination, may be more effective following inter procedural restructuring. The ICBE optimization can be used to optimize array bounds checks [KW95, Gup90] which typically exhibit correlation. Finally, branch elimination can be used as a component of aggressive program transformations, such as slicing based partial dead code elimination [BG97b] Chapter 8 Experimental Evaluation This chapter experimentally evaluates the power of the PATHFINDER ....

Rajiv Gupta. A fresh look at optimizing array bound checking. SIGPLAN Notices, 25(6):272-- 282, June 1990. Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation.


ABCD: Eliminating Array-Bounds Checks on Demand - Bodik, Gupta, Sarkar (2000)   (35 citations)  Self-citation (Gupta)   (Correct)

....[SI77,Nec98,NL98] and are therefore not suitable for deployment in a dynamic optimization setting. Some simpler algorithms (e.g. those based upon value range analysis [Har77, Pat95, RR99] cannot eliminate partially redundant checks. Algorithms that can eliminate partial redundancy [MCM82,Gup90,Gup94, Asu92, KW95] operate upon dense program representations (e.g. the control flow graph) and rely upon exhaustive iterative data flow analyzers. Thus, they too do not meet our compile time requirements. In this paper, we introduce a new algorithm, called ABCD, for elimination of array ....

....which often have complex control flow. Therefore, in addition to full redundancy, it was important for us to handle elimination of partial redundancy. Several conventional iterative data flow style bounds check elimination algorithms have been developed that eliminate partial redundancy [MCM82, Gup90, Gup94, Asu92, KW95] However, none of these algorithms exhibit the efficiency of our algorithm, which is based upon demand driven analysis over a sparse representation. While all of the above research focuses on imperative programs, work by Xi and Pfenning considers functional programs [XP98] ....

Rajiv Gupta. A fresh look at optimizing array bound checking. In Mark Scott Johnson, editor, Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation (SIGPLAN '90), pages 272--282, White Plains, NY, USA, June 1990. ACM Press.


High Performance Computing with the Array Package.. - Moreira, Midkiff.. (1999)   (5 citations)  Self-citation (Gupta)   (Correct)

....Note that the range of i is from 0 to m 1 and the range of j is from 0 to n 1. Furthermore, a.size(0) b.size(0) c.size(0) m and a.size(1) b.size(1) c.size(1) n. This property is used to optimize bounds checking during the computation, according to the techniques described in [8, 9]. 5 void matmul( double[ a, double[ b, double[ c, int m, int n, int p ) for (i = 0; i m; i ) for (j = 0; j p; j ) for (k = 0; k n; k ) c[i] j] a[i] k] # b[k] j] void matmul( doubleArray2D a, doubleArray2D b, doubleArray2D c, int m, int n, int p ) ....

R. Gupta. A fresh look at optimizing array bounds checking. In Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, pages 272--282, June 1990.


SPMD Execution of Programs with Pointer-based Dynamic Data.. - Gupta   Self-citation (Gupta)   (Correct)

....remains unchanged during this period, then the value can be communicated once and redundant communication operations can be eliminated. The analysis required to eliminate redundant communication operations is similar in nature to the techniques used to eliminate redundant array bound checks [10]. If the execution of a statement requires transmission of multiple values from one processor to another, then it may be cheaper to execute the statement at the processor which has the operands and then transmit the result to the other processor. A temporary copy of the result can be created at ....

Gupta, R. A fresh look at optimizing array bound checking. Proc. ACM SIGPLAN Conference on Programming Language Design and Implementation. White Plains, New York, 1990, pp. 272-282.


ABCD: Eliminating Array-Bounds Checks on Demand - Bodik, Gupta, Sarkar (2000)   (35 citations)  Self-citation (Gupta)   (Correct)

....and are therefore not suitable for deployment in a dynamic optimization environment. Some simpler algorithms (e.g. those based upon value range analysis [Har77, Pat95, RR99] cannot eliminate partially redundant checks. Algorithms that can eliminate partial redundancy [MCM82, Gup90, Gup94,Asu92,KW95] operate upon dense program representations (e.g. the control flow graph) and rely upon exhaustive iterative data flow analyzers. Thus, they, too, do not meet our dynamic compiletime requirements. In this paper, we introduce a new algorithm, called ABCD, for elimination of ....

....which often have complex control flow. Therefore, in addition to full redundancy, it was important for us to handle elimination of partial redundancy. Several conventional iterative data flow style bounds check elimination algorithms have been developed that eliminate partial redundancy [MCM82, Gup90, Gup94, Asu92, KW95] However, none of these algorithms exhibit the efficiency of our algorithm, which is based upon demand driven analysis over a sparse representation. While all of the above research focuses on imperative programs, work by Xi and Pfenning considers functional programs [XP98] ....

Rajiv Gupta. A fresh look at optimizing array bound checking. In Mark Scott Johnson, editor, Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation (SIGPLAN '90), pages 272--282, White Plains, NY, USA, June 1990. ACM Press.


A Comprehensive Approach to Array Bounds Check Elimination .. - Qian, Hendren, Verbrugge (2002)   (Correct)

No context found.

R. Gupta. A fresh look at optimizing array bound checking. In Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, pages 272-282, White Plains, NY, June 1990.


Dynamically Discovering Likely Program Invariants - Ernst (2000)   (108 citations)  (Correct)

No context found.

Rajiv Gupta. A fresh look at optimizing array bound checking. In Proceedings of the SIGPLAN '90 Conference on Programming Language Design and Implementation, pages 272-282, White Plains, NY, USA, June 1990.


Elimination of Java Array Bounds Checks in the Presence of.. - Lujan, Gurd, al. (2004)   (3 citations)  (Correct)

No context found.

R. Gupta. A fresh look at optimizing array bound checking. In Proceedings of the ACM Conference on Programming Language Design and Implementation -- PLDI'90, pages 272--282, 1990.


Oolala - From Numerical Linear Algebra To Compiler Technology For .. - Moreno (2002)   (Correct)

No context found.

R. Gupta. A fresh look at optimizing array bound checking. In Proceedings of the ACM Conference on Programming Language Design and Implementation -- PLDI'90, pages 272--282, 1990.


A Class of Polynomially Solvable Range Constraints for Interval .. - Su, Wagner   (Correct)

No context found.

R. Gupta. A fresh look at optimizing array bound checking. In Proceedings of the Conference on Programming Language Design and Implementation, pages 272--282, 1990.


Dynamically Discovering Likely Program Invariants - Ernst (2000)   (108 citations)  (Correct)

No context found.

Rajiv Gupta. A fresh look at optimizing array bound checking. In Proceedings of the SIGPLAN '90 Conference on Programming Language Design and Implementation, pages 272-282, White Plains, NY, USA, June 1990.


Optimization of Array Bound Checking - Nga (2000)   (Correct)

No context found.

R. Gupta. A fresh look at optimizing array bound checking. In Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, pages 272-282, June 1990.


Safety-Checking of Machine Code - Xu (2001)   (25 citations)  (Correct)

No context found.

R. Gupta. A Fresh Look at Optimizing Array Bound Checking. ACM SIGPLAN Conference on Programming Language Design and Implementation. White Plains, New York (June 1990).


Active Libraries and Universal Languages - Veldhuizen (2004)   (1 citation)  (Correct)

No context found.

Rajiv Gupta. A fresh look at optimizing array bound checking. In Proceedings of the ACM SIGPLAN 1990.

First 50 documents

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC