Software

Identifying Unnecessary Bounds Checks Through Block-Qualified Variable Elimination

Download Now Free registration required

Executive Summary

Java's memory-safety relies on the Java Virtual Machine checking that each access to an array does not exceed the bounds of that array. When static analysis can determine that some array access instruction will never use an out of bounds index, the cost of dynamically checking the index each time the instruction is executed can be avoided. This report introduces Block-Qualified Variable Elimination (BQVE) as a program analysis technique that extends Fourier-Motzkin Elimination, so that it can be applied directly to programs in Static Single Assignment Form (SSA) in order to determine whether array accesses of such programs are in bounds.

  • Format: PDF
  • Size: 95 KB