• Home
  • Search
  • Array bounds check elimination for the Java HotSpot#8482; client compiler
  • Open Access IconOpen Access
  • Cite Icon51
  • https://doi.org/10.1145/1294325.1294343Copy DOI Icon

Array bounds check elimination for the Java HotSpot#8482; client compiler

  • Jan 1, 2007
  • Thomas Würthinger +2 more
Show More
  • Abstract
  • Literature Map
  • References
  • Citations
  • Similar Papers
Abstract

Whenever an array element is accessed, Java virtual machines execute a compare instruction to ensure that the index value is within the valid bounds. This reduces the execution speed of Java programs. Array bounds check elimination identifies situations in which such checks are redundant and can be removed. We present an array bounds check elimination algorithm for the Java HotSpot™ VM based on static analysis in the just-in-time compiler.The algorithm works on an intermediate representation in static single assignment form and maintains conditions for index expressions. It fully removes bounds checks if it can be proven that they never fail. Whenever possible, it moves bounds checks out of loops. The static number of checks remains the same, but a check inside a loop is likely to be executed more often. If such a check fails, the executing program falls back to interpreted mode, avoiding the problem that an exception is thrown at the wrong place.The evaluation shows a speedup near to the theoretical maximum for the scientific SciMark benchmark suite (40% on average). The algorithm also improves the execution speed for the SPECjvm98 benchmark suite (2% on average, 12% maximum).

Similar Papers
  • Research Article
  • Citations12

Array bounds check elimination in the context of deoptimization

  • Feb 07, 2009
  • Science of Computer Programming
  • Thomas Würthinger +2
  • Conference Article
  • Citations1

Array Bounds Check Elimination for Java Based on Sparse Representation

  • Jan 01, 2009
  • Keqiao Yang +2
  • Conference Article
  • Citations8

Interpreting programs in static single assignment form

  • Jun 07, 2004
  • Jeffery Von Ronne +2
  • Conference Article
  • Citations153

Array SSA form and its use in parallelization

  • Jan 01, 1998
  • Kathleen Knobe +1
  • Research Article
  • Citations10

More precise construction of static single assignment programs using reaching definitions

  • Apr 06, 2020
  • Journal of Systems and Software
  • Abu Naser Masud +1
  • Conference Article
  • Citations1

Recovering the Memory Behavior of Executable Programs

  • Jul 15, 2010
  • Alain Ketterlin +1
  • Conference Article
  • Citations18

Optimizing translation out of SSA using renaming constraints

  • Jun 10, 2004
  • F Rastello +2
  • Research Article
  • Citations28

Optimal register sharing for high-level synthesis of SSA form programs

  • May 01, 2006
  • IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
  • P Brisk +3
  • Research Article
  • Citations5

A Practical Improvement to the Partial Redundancy Elimination in SSA Form

  • Sep 30, 2008
  • Journal of Computing Science and Engineering
  • Jong-Soo Park +1
  • Research Article
  • Citations16

Efficient accommodation of may-alias information in SSA form

  • Jun 01, 1993
  • ACM SIGPLAN Notices
  • Ron Cytron +1
  • Book Chapter
  • Citations14

RSSA: A Reversible SSA Form

  • Jan 01, 2016
  • Torben Ægidius Mogensen
  • Conference Article

Loop Splitting Optimization Via Semi-Invariance Analysis in Static Single Assignment Form

  • Apr 25, 2025
  • Lin Han +5
  • Book Chapter

Scalar Compiler Optimizations on the Static Single Assignment Form and the Flow Graph Y.N. Srikant

  • Sep 25, 2002
  • Y N Srikant +1
  • Conference Article
  • Citations23

A sparse algorithm for predicated global value numbering

  • May 17, 2002
  • Karthik Gargi
  • Research Article
  • Citations4

Studying Optimal Spilling in the Light of SSA

  • Jan 09, 2015
  • ACM Transactions on Architecture and Code Optimization
  • Quentin Colombet +2
Cactus Communications logo

Copyright 2026 Cactus Communications. All rights reserved.