Skip to main content

2002 | OriginalPaper | Buchkapitel

A Comprehensive Approach to Array Bounds Check Elimination for Java

verfasst von : Feng Qian, Laurie Hendren, Clark Verbrugge

Erschienen in: Compiler Construction

Verlag: Springer Berlin Heidelberg

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

This paper reports on a comprehensive approach to eliminating array bounds checks in Java. Our approach is based upon three analyses. The first analysis is a flow-sensitive intraprocedural analysis called variable constraint analysis (VCA). This analysis builds a small constraint graph for each important point in a method, and then uses the information encoded in the graph to infer the relationship between array index expressions and the bounds of the array. Using VCA as the base analysis, we also show how two further analyses can improve the results of VCA. Array field analysis is applied on each class and provides information about some arrays stored in fields, while rectangular array analysis is an interprocedural analysis to approximate the shape of arrays, and is useful for finding rectangular (non-ragged) arrays.We have implemented all three analyses using the Soot bytecode optimization/ annotation framework and we transmit the results of the analysis to virtual machines using class file attributes. We have modified the Kaffe JIT, and IBM’s High Performance Compiler for Java (HPCJ) to make use of these attributes, and we demonstrate significant speedups.

Metadaten
Titel
A Comprehensive Approach to Array Bounds Check Elimination for Java
verfasst von
Feng Qian
Laurie Hendren
Clark Verbrugge
Copyright-Jahr
2002
Verlag
Springer Berlin Heidelberg
DOI
https://doi.org/10.1007/3-540-45937-5_23

Premium Partner