Efficient Java']JavaVM just-in-time compilation

被引:29
作者
Krall, A [1 ]
机构
[1] Tech Univ Vienna, Inst Comp Sprachen, A-1060 Vienna, Austria
来源
1998 INTERNATIONAL CONFERENCE ON PARALLEL ARCHITECTURES AND COMPILATION TECHNIQUES, PROCEEDINGS | 1998年
关键词
D O I
10.1109/PACT.1998.727250
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Conventional compilers are designed for producing highly optimized code without paying much attention to compile time. The design goals of Java just-in-time compilers are different: produce fast code at the smallest possible compile time. In this article we present a very fast algorithm for translating Java VM byte code to high quality machine code for RISC processors. This algorithm handles combines instructions, does copy elimination and coalescing and does register allocation. It comprises three passes: basic block determination, stack analysis and register preallocation, final register allocation and machine code generation. This algorithm replaces an older one in the CACAO Java VM implementation reducing the compile time by a factor of seven and producing slightly faster machine code. The speedup comes mainly from following simplifications: fixed assignment of registers at basic block boundaries, simple register allocator better exception handling, better memory management and fine tuning the implementation. The CACAO system is currently faster than every Java VM implementation for the Alpha processor and generates machine code for all used methods of the javac compiler and its libraries in 60 milliseconds on an Alpha workstation.
引用
收藏
页码:205 / 212
页数:8
相关论文
empty
未找到相关数据