A system and method are provided that in one aspect eliminate redundant
array range checks by performing a versioning for a loop. In another
aspect, a system and method optimize array range checks by performing
data-flow analysis in reverse order of the program execution. Yet in
another aspect, a system and method obtains information about array
ranges already checked by performing data-flow analysis in program
execution order and eliminate redundant array range checks from this
information.