ACM Home Page
Please provide us with feedback. Feedback
Optimizing array bound checks using flow analysis
Full text PdfPdf (1.02 MB)
Source ACM Letters on Programming Languages and Systems (LOPLAS) archive
Volume 2 ,  Issue 1-4  (March–Dec. 1993) table of contents
Pages: 135 - 150  
Year of Publication: 1993
ISSN:1057-4514
Author
Rajiv Gupta  Univ. of Pittsburgh, Pittsburgh, PA
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 15,   Downloads (12 Months): 73,   Citation Count: 35
Additional Information:

abstract   references   cited by   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/176454.176507
What is a DOI?

ABSTRACT

Bound checks are introduced in programs for the run-time detection of array bound violations. Compile-time optimizations are employed to reduce the execution-time overhead due to bound checks. The optimizations reduce the program execution time through elimination of checks and propagation of checks out of loops. An execution of the optimized program terminates with an array bound violation if and only if the same outcome would have resulted during the execution of the program containing all array bound checks. However, the point at which the array bound violation occurs may not be the same. Experimental results indicate that the number of bound checks performed during the execution of a program is greatly reduced using these techniques.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
3
 
4
5
6
 
7
HARRISON, W. 1977. Compiler analysis of the value ranges for variables. IEEE Trans. Softw. Eng. 3, 3 (May), 243-250.
8
9
10

CITED BY  35


REVIEW

"Kathleen H. V. Booth : Reviewer"

One of the most frequent sources of run-time errors in such languages as C and C++ arises from over running array bounds, particularly when pointers are used. The author points out that most compilers do nothing to insure that adequate checks ar  more...