Abstract:
JIT compilers produce fast code, whereas interpreters are easy to port between architectures. We propose to combine the advantages of these language implementation techni...Show MoreMetadata
Abstract:
JIT compilers produce fast code, whereas interpreters are easy to port between architectures. We propose to combine the advantages of these language implementation techniques as follows: we generate native code by concatenating and patching machine code fragments taken from interpreter-derived code (generated by a C compiler); we completely eliminate the interpreter dispatch overhead and accesses to the interpreted code by patching jump target addresses and other constants into the fragments. In this paper we present the basic idea, discuss some issues in more detail, and present results from a proof-of-concept implementation, providing speedups of up to 1.87 over the fastest previous interpreter-based technique, and performance comparable to simple native-code compilers. The effort required for retargeting our implementation from the 386 to the PPC architecture was less than a person-day.
Published in: Proceedings. 13th International Conference on Parallel Architecture and Compilation Techniques, 2004. PACT 2004.
Date of Conference: 03-03 October 2004
Date Added to IEEE Xplore: 18 October 2004
Print ISBN:0-7695-2229-7
Print ISSN: 1089-795X