Code Annotation for Safe and Efficient Dynamic Object Resolution

Andreas Hartmann, Wolfram Amme, Jeffery von Ronne, Michael Franz
2004 Electronical Notes in Theoretical Computer Science  
The execution time of object oriented programs can be drastically reduced by transforming "non escaping" objects into a collection of its component scalar data fields. But for languages that support dynamic linking, this kind of optimization (which we call "object resolution") can usually only be performed at runtime, when the entire program is available for analysis. In such cases, the resulting performance increases will be offset by the additional costs that arise during the analysis and
more » ... ructuring phases. In this paper, we describe work in progress, which provides an annotation technique that reduces the runtime overhead required for performing object resolutions. Our method performs a partial static escape analysis of each class at compile-time and then annotates the intermediate representation of that class with information which the just-in-time (JIT) compiler can use for object resolution. We apply this technique to the safeTSA intermediate representation, producing a simple extension to safeTSA's type system that guarantees a safe and verifiable transmission of the annotated program.
doi:10.1016/s1571-0661(05)82597-6 fatcat:numuz3yhzrbhhol6mtfkgctkne