ACM Home Page
Please provide us with feedback. Feedback
Elimination of Java array bounds checks in the presence of indirection
Full text PdfPdf (194 KB)
Source Java Grande Conference archive
Proceedings of the 2002 joint ACM-ISCOPE conference on Java Grande table of contents
Seattle, Washington, USA
Pages: 76 - 85  
Year of Publication: 2002
ISBN:1-58113-599-8
Authors
Mikel Luján  Centre for Novel Computing, Department of Computer Science, University of Manchester, Manchester, UK
John R. Gurd  University of Manchester, Manchester, United Kingdom
T. L. Freeman  University of Manchester, Manchester, United Kingdom
José Miguel  Dep. de Arquitectura y Tecnologia de Computadores,Donostia-San Sebastian, Spain
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 3,   Downloads (12 Months): 55,   Citation Count: 2
Additional Information:

abstract   references   cited by   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/583810.583819
What is a DOI?

ABSTRACT

The Java language specification states that every access to an array needs to be within the bounds of that array; i.e. between 0 and array length 1. Different techniques for different programming languages have been proposed to eliminate explicit bounds checks. Some of these techniques are implemented in off-the-shelf Java Virtual Machines (JVMs). The underlying principle of these techniques is that bounds checks can be removed when a JVM/compiler has enough information to guarantee that a sequence of accesses (e.g. inside a for-loop) is safe (within the bounds). Most of the techniques for the elimination of array bounds checks have been developed for programming languages that do not support multi-threading and/or enable dynamic class loading. These two characteristics make most of these tech niques unsuitable for Java. Techniques developed specifically for Java have not addressed the elimination of array bounds checks in the presence of indirection, that is, when the index is stored in another array (indirection array). With the objective of optimising applications with array indirection, this paper proposes and evaluates three implementation strategies, each implemented as a Java class. The classes provide the functionality of Java arrays of type int so that objects of the classes can be used instead of indirection arrays. Each strategy enables JVMs, when examining only one of these classes at a time, to obtain enough information to remove array bounds checks.


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
 
8
9
10
11
12
 
13
14
 
15
G. H. Golub and C. F. van Loan. Matrix Computations. John Hopkins University Press, 3rd edition, 1996.
16
17
 
18
Java Grande Forum. Making Java Work for High-End Computing, November 1998. Available at http://www.javagrande.org/reports.htm.
 
19
Java Grande Forum. Interim Java Grande Forum Report, June 1999. Available at http://www.javagrande.org/reports.htm.
 
20
 
21
Multiarray package. http://jcp.org/jsr/detail/083.jsp.
22
23
24
 
25
M. Luján, J. R. Gurd, and T. L. Freeman. OoLaLa: Transformations for implementations of matrix operations at high abstraction levels. In Proceedings of the 4th Workshop on Parallel Object-Oriented Scientific Computing -- POOSC'01, 2001.
26
 
27
 
28
 
29
J. E. Moreira, S. P. Midki, and M. Gupta. A standard Java array package for technical computing. In Proceedings of the Ninth SIAM Conference on Parallel Processing for Scientific Computing, 1999.
30
 
31
32
33
 
34
M. Paleczny, C. Vick, and C. Click. The Java Hotspot server compiler. In Proceedings of the USENIX Symposium on Java Virtual Machine Research and Technology, 2001.
35
36
 
37
38
 
39
George K. Thiruvathukal, Java at Middle Age: Enabling Java for Computational Science, Computing in Science and Engineering, v.4 n.1, p.74-84, January 2002
40
 
41
P. Wu, S. P. Midki, J. E. Moreira, and M. Gupta. Improving Java performance through semantic inlining. Technical Report 21313, IBM Research Division, 1998.
42
43


Collaborative Colleagues:
Mikel Luján: colleagues
John R. Gurd: colleagues
T. L. Freeman: colleagues
José Miguel: colleagues