ACM Home Page
Please provide us with feedback. Feedback
Speculative improvements to verifiable bounds check elimination
Full text PdfPdf (327 KB)
Source
ACM International Conference Proceeding Series; Vol. 347 archive
Proceedings of the 6th international symposium on Principles and practice of programming in Java table of contents
Modena, Italy
SESSION: Optimization and run-time performance I table of contents
Pages 85-94  
Year of Publication: 2008
ISBN:978-1-60558-223-8
Authors
Andreas Gampe  University of Texas at San Antonio, San Antonio, Texas
Jeffery von Ronne  University of Texas at San Antonio, San Antonio, Texas
David Niedzielski  University of Texas at San Antonio, San Antonio, Texas
Kleanthis Psarris  University of Texas at San Antonio, San Antonio, Texas
Sponsor
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 80,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

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

ABSTRACT

As a safety measure, the Java programming language requires bounds checking of array accesses. This usually translates to dynamic checks each time an array element is accessed. Static analysis can help eliminate some of those checks by proving them to be redundant, reducing the runtime overhead. Compilation of Java programs is usually method-based, and dynamic dispatch complicates interprocedural analysis. The result is a severely restricted static analysis. This paper presents a novel combination of two techniques to alleviate this problem. By assuming constraints that cannot safely be inferred from the program, the amount of provable safe bounds can be greatly extended. These constraints, called speculations, can be derived automatically from the program code by an analyzer, which assumes that there will be no violation of the array bounds. To ensure that the speculations hold at runtime, additional checks have to be injected into the code. Finding good speculations that benefit the runtime performance can be expensive. This paper shows that the speculation technique can be combined with a verifiable annotation framework, allowing most of the work to be shifted to compile-time. Experimental results show that this combination of techniques increases the number of eliminated bounds checks and can result in speedups that approach unconditional bounds check removal.


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
J. M. Bull, L. A. Smith, M. D. Westhead, D. S. Henty, and R. A. Davey. A benchmark suite for high performance Java. Concurrency: Practice and Experience, 12(6):375--388, May 2000.
4
5
 
6
 
7
 
8
9
10
11
12
13
 
14
D. Niedzielski, A. Gampe, J. von Ronne, and K. Psarris. A verifiable, control flow aware constraint analyzer for bounds check elimination. Technical Report CS-TR-2008-009, Computer Science, The University of Texas at San Antonio, 2008.
 
15
16
17
 
18
19
 
20

Collaborative Colleagues:
Andreas Gampe: colleagues
Jeffery von Ronne: colleagues
David Niedzielski: colleagues
Kleanthis Psarris: colleagues