Array Bounds Check Elimination for the HotSpot Client Compiler

Projects > Compiler and JVM Research at JKU

We added a fast algorithm for array bounds check elimination to the client compiler that optimizes frequently used patterns of array accesses and uses the deoptimization facilities of the Java HotSpot™ VM. This is a research project, but the algorithm could be part of a future product version.

Publications

  • Thomas Würthinger, Christian Wimmer, Hanspeter Mössenböck:
    Array Bounds Check Elimination in the Context of Deoptimization
    In Science of Computer Programming, volume 74, issue 5-6, pp. 279-295. Elsevier, 2009. doi:10.1016/j.scico.2009.01.002
    Journal paper that describes the optimization process. It shows how deoptimization is used, compares the algorithm with the server compiler, and contains an extensive evaluation.
  • Thomas Würthinger, Christian Wimmer, Hanspeter Mössenböck:
    Array Bounds Check Elimination for the Java HotSpot™ Client Compiler
    5th Intl. Conf. on Principles and Practice of Programming in Java (PPPJ'07), pp. 125-133. ACM Press, 2007. doi:10.1145/1294325.1294343
    Conference paper that describes the optimization process, with a focus on the usage of deoptimization to avoid code duplication.