Compile Time Elimination of Null- and Bounds-Checks
Jeffery von Ronne, Michael Franz, Niall Dalton, Wolfram Amme
- Full Paper(.ps version)
SafeTSA is a new type safe intermediate representation for
mobile code based on static single assignment form. We
developed SafeTSA as an alternative to the Java Virtual
Machine. Programs in SafeTSA contain explicit null- and
bounds-check instructions, allowing their elimination.
Type safety is maintained by enforcing the use of only
null- and bounds-checked values in dereference and index
operations. Currently, our compiler produces SafeTSA code
from programs written in Java. As a proof of concept we
implemented constant propagation, dead code elimination,
and common subexpression elimination. These opimizations
resulted in the elimination of, on average, 30% of the
null-checks and 17% of the bounds-checks. In the paper we
describe our results and discuss how more accurate alias
analysis can be integrated into our compiler, resulting in the elimination of, on average, 30% of the null-checks and 17% of the bounds-checks.
Please contact our
webadmin with any comments or changes.
Unless explicitly stated otherwise, all material is
copyright © The University of Edinburgh.