Identifying Unnecessary Bounds Checks Through Block-Qualified Variable Elimination

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.

Provided by: University of Texas Topic: Software Date Added: Aug 2010 Format: PDF

Find By Topic