Efficient exception handling in Java bytecode-to-c ahead-of-time compiler for smbedded systems

  • Authors:
  • Dong-Heon Jung;Jong Kuk Park;Sung-Hwan Bae;Jaemok Lee;Soo-Mook Moon

  • Affiliations:
  • Seoul National University, Seoul, Korea;Seoul National University, Seoul, Korea;Seoul National University, Seoul, Korea;Seoul National University, Seoul, Korea;Seoul National University, Seoul, Korea

  • Venue:
  • EMSOFT '06 Proceedings of the 6th ACM & IEEE International conference on Embedded software
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

One of the most promising approaches to Java acceleration in embedded systems is a bytecode-to-C ahead-of-time compiler (AOTC). It improves the performance of a Java virtual machine (JVM) by translating bytecode into C code, which is then compiled into machine code via an existing C compiler. One important design issue in AOTC is efficient exception handling. Since the excepting point and the exception handler may locate in different methods on a call stack, control transfer between them should be streamlined, while an exception would be an "exceptional" event, so it should not slow down normal execution paths. Previous AOTCs often employed stack cutting based on a setjmp()/longjmp(), which we found is involved with too much overheads. This paper proposes a simpler solution based on an exception check after each method call, merged with garbage collection check for reducing its overhead. Our evaluation results on SPECjvm98 on Sun's CVM indicate that our technique can improve the performance of stack cutting by more than 25%.