...
首页> 外文期刊>IEEE Transactions on Parallel and Distributed Systems >Efficient Register Mapping and Allocation in LaTTe, an Open-Source Java Just-in-Time Compiler
【24h】

Efficient Register Mapping and Allocation in LaTTe, an Open-Source Java Just-in-Time Compiler

机译:LaTTe(一种开放源代码Java即时编译器)中的有效寄存器映射和分配

获取原文
获取原文并翻译 | 示例
           

摘要

Java just-in-time (JIT) compilers improve the performance of a Java virtual machine (JVM) by translating Java bytecode into native machine code on demand. One important problem in Java JIT compilation is how to map stack entries and local variables to registers efficiently and quickly, since register-based computations are much faster than memory-based ones, while JIT compilation overhead is part of the whole running time. This paper introduces LaTTe, an open-source Java JIT compiler that performs fast generation of efficiently register-mapped RISC code. LaTTe first maps "all" local variables and stack entries into pseudoregisters, followed by real register allocation which also coalesces copies corresponding to pushes and pops between local variables and stack entries aggressively. Our experimental results indicate that LaTTe's sophisticated register mapping and allocation really pay off, achieving twice the performance of a naive JIT compiler that maps all local variables and stack entries to memory. It is also shown that LaTTe makes a reasonable trade-off between quality and speed of register mapping and allocation for the bytecode. We expect these results will also be beneficial to parallel and distributed Java computing: 1) by enhancing single-thread Java performance; and 2) by significantly reducing the number of memory accesses which the rest of the system must properly order to maintain coherence and keep threads synchronized
机译:Java即时(JIT)编译器通过按需将Java字节码转换为本机代码来提高Java虚拟机(JVM)的性能。 Java JIT编译中的一个重要问题是如何高效,快速地将堆栈条目和局部变量映射到寄存器,因为基于寄存器的计算比基于内存的计算快得多,而JIT编译开销是整个运行时间的一部分。本文介绍了LaTTe,这是一种开源Java JIT编译器,可以快速生成高效的寄存器映射RISC代码。 LaTTe首先将“所有”局部变量和堆栈条目映射到伪寄存器中,然后是实际寄存器分配,这还将合并与局部变量和堆栈条目之间的推入和弹出对应的副本。我们的实验结果表明,LaTTe复杂的寄存器映射和分配确实有回报,实现了将所有局部变量和堆栈条目映射到内存的纯JIT编译器的两倍性能。还表明,LaTTe在寄存器映射的质量和速度以及字节码分配之间进行了合理的权衡。我们希望这些结果对并行和分布式Java计算也有好处:1)通过增强单线程Java性能;和2)通过显着减少系统其余部分必须适当维护一致性和保持线程同步的内存访问次数

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号