A Portable Approach to Dynamic Optimization in Run-time Specialization (bibtex)
by Hidehiko Masuhara and Akinori Yonezawa
Abstract:
This paper proposes a run-time bytecode specialization (BCS) technique that analyzes programs and generates specialized programs at run-time in an intermediate language. By using an intermediate language for code generation, a back-end system can optimize the specialized programs after specialization. The system uses Java virtual machine language (JVML) as the intermediate language, which allows the system to easily achieve practical portability and to use existing sophisticated just-in-time (JIT) compilers as its back-end. The binding-time analysis algorithm is based on a type system, and covers a non-object-oriented subset of JVML. The specializer generates programs on a per-instruction basis, and can perform method inlining at run-time. Our performance measurements show that a non-trivial application program specialized at run-time by BCS runs approximately 3–4 times faster than the unspecialized one. Despite the large overhead of JIT compilation of specialized code, we observed that the overall performance of the application can be improved.
Reference:
A Portable Approach to Dynamic Optimization in Run-time Specialization (Hidehiko Masuhara and Akinori Yonezawa), In Journal of New Generation Computing, volume 20, 2001. (Extended from [masuhara2001pado2].)
Bibtex Entry:
@article{masuhara2001ngc,
  author = {Hidehiko Masuhara and Akinori Yonezawa},
  title = {A Portable Approach to Dynamic Optimization in
		  Run-time Specialization},
  journal = {Journal of New Generation Computing},
  year = 2001,
  volume = 20,
  url = {https://link.springer.com/journal/354/20/1},
  doi = {10.1007/BF03037261},
  number = 1,
  pages = {101--124},
  pdf = {ngc2001.pdf},
  month = nov,
  note = {Extended from \cite{masuhara2001pado2}.},
  keywords = {Java, Bytecode, Just-in-time, partial evaluation},
  abstract = {This paper proposes a run-time bytecode specialization (BCS) technique that analyzes programs and generates specialized programs at run-time in an intermediate language. By using an intermediate language for code generation, a back-end system can optimize the specialized programs after specialization. The system uses Java virtual machine language (JVML) as the intermediate language, which allows the system to easily achieve practical portability and to use existing sophisticated just-in-time (JIT) compilers as its back-end. The binding-time analysis algorithm is based on a type system, and covers a non-object-oriented subset of JVML. The specializer generates programs on a per-instruction basis, and can perform method inlining at run-time. Our performance measurements show that a non-trivial application program specialized at run-time by BCS runs approximately 3--4 times faster than the unspecialized one. Despite the large overhead of JIT compilation of specialized code, we observed that the overall performance of the application can be improved.}
}
Powered by bibtexbrowser