Supporting objects in run-time bytecode specialization

This paper describes a run-time specialization system for the Java language. One of the main difficulties of supporting the full Java language resides in a sound yet effective management of references to objects. This is because the specialization process may share references with the running application that executes the residual code, and because side-effects through those references by the specialization process could easily break the semantics of the running application. To cope with these difficulties, we elaborate requirements that ensure sound run-time specialization. Based on them, we design and implement a run-time specialization system for the Java language, which exhibits, for instance, approximately 20-25% speed-up factor for a ray-tracing application.

[1]  Nobuhisa Fujinami,et al.  Determination of Dynamic Method Dispatches Using Run-Time Code Generation , 1998, Types in Compilation.

[2]  Crispin Cowan,et al.  Declarative specialization of object-oriented programs , 1997, OOPSLA '97.

[3]  Julia L. Lawall,et al.  Automatic, template-based run-time specialization: implementation and experimental study , 1998, Proceedings of the 1998 International Conference on Computer Languages (Cat. No.98CB36225).

[4]  Ulrik Pagh Schultz Partial Evaluation for Class-Based Object-Oriented Languages , 2000 .

[5]  Peter Holst Andersen Partial Evaluation Applied to Ray Tracing , 1996 .

[6]  Hidehiko Masuhara,et al.  Run-time bytecode specialization: A portable approach to generating optimized specialized code , 2001 .

[7]  Nobuhisa Fujinami Automatic Run-Time Code Generation in C++ , 1997, ISCOPE.

[8]  Markus Mock,et al.  Annotation-directed run-time specialization in C , 1997 .

[9]  Ulrik Pagh Schultz,et al.  Towards Automatic Specialization of Java Programs , 1999, ECOOP.

[10]  Ulrik Pagh Schultz,et al.  Automatic program specialization for Java , 2000, TOPL.

[11]  Markus Mock,et al.  A retrospective on: "an evaluation of staged run-time optimizations in DyC" , 2004, SIGP.

[12]  Peter Lee,et al.  Lightweight Run-Time Code Generation , 1994, PEPM.

[13]  Peter Lee,et al.  Optimizing ML with run-time code generation , 1996, SIGP.

[14]  Walid Taha,et al.  Semantics, Applications, and Implementation of Program Generation , 2001, Lecture Notes in Computer Science.

[15]  Lars Ole Andersen Binding-time analysis and the taming of C pointers , 1993, PEPM '93.

[16]  Doug Lea Customization in C++ , 1990, C++ Conference.

[17]  Charles Consel,et al.  A general approach for run-time specialization and its application to C , 1996, POPL '96.

[18]  Yutaka Ishikawa,et al.  Scientific Computing in Object-Oriented Parallel Environments , 1997, Lecture Notes in Computer Science.

[19]  Reynald Affeldt Supporting object-oriented features in run-time bytecode specialization , 2001 .

[20]  Kenichi Asai Integrating Partial Evaluators into Interpreters , 2001, SAIG.

[21]  Peter Thiemann Correctness of a region-based binding-time analysis , 1997, MFPS.

[22]  David Grove,et al.  Selective specialization for object-oriented languages , 1995, PLDI '95.