首页> 外文学位 >Tailoring traditional optimizations for runtime compilation.
【24h】

Tailoring traditional optimizations for runtime compilation.

机译:为运行时编译量身定制传统优化。

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

摘要

Runtime compilation, due to its online nature, presents unique challenges and opportunities to compiler designers. Since compilation occurs during program execution, a just-in-time compiler (JIT) must be judicious in expending compilation time. The literature on traditional, offline compilers describes numerous program transformation techniques that strive to increase execution efficiency. However, while optimization passes for static compilers are well understood and have been thoroughly investigated, many such transformation algorithms cannot be implemented on a JIT environment due to compilation-time constraints. Further, offline algorithms are not designed to exploit information available to an online compiler at program execution time.; The thesis of the research presented in this document is that program optimization techniques designed for traditional, offline compilers can be profitably adapted for a runtime compiler by effectively respecting the constraints imposed on compilation time and by exploiting the opportunities available in a runtime compilation environment. To that end, the dissertation explores the complexity of implementing program transformations for a runtime compiler and redesigns two optimization techniques for a JIT: register allocation and loop unrolling. The two transformations present contrasting challenges when they are included in a runtime compiler. While several offline, heuristic allocation algorithms achieve impressive results, they consume large amounts of compilation-time that are typically unacceptable for a JIT. We describe the design of two allocation algorithms that reduce allocation time while preserving the advantages of strong techniques authored for offline compilers. An experimental evaluation of the new algorithms demonstrates their effectiveness on a runtime compilation environment.; While a runtime compiler is limited by the constraints imposed by its environment, compiling just prior to program invocation provides certain advantages over an offline compiler. In particular, it can examine information only available at program execution time. We describe the design of a lightweight runtime value-examining mechanism and a loop unrolling algorithm that work in tandem. Our experimental results indicate that the runtime unroller achieves significant improvements on floating point, scientific benchmarks.; In summary, thus, the research described in this dissertation demonstrates how compiler optimization algorithms can be effectively tailored for runtime compilation.
机译:运行时编译由于其在线性质,给编译器设计人员带来了独特的挑战和机遇。由于编译是在程序执行期间进行的,因此,及时编译器(JIT)必须明智地延长编译时间。有关传统脱机编译器的文献描述了许多旨在提高执行效率的程序转换技术。但是,尽管对静态编译器的优化遍历已广为人知并已进行了深入研究,但由于编译时的限制,许多此类转换算法无法在JIT环境中实现。此外,离线算法并非旨在利用程序执行时可用于在线编译器的信息。本文档中提出的研究论点是,通过有效地考虑对编译时间施加的限制并利用运行时编译环境中提供的机会,为传统的脱机编译器设计的程序优化技术可以针对运行时编译器进行有益的调整。为此,本文探讨了为运行时编译器实现程序转换的复杂性,并为JIT重新设计了两种优化技术:寄存器分配和循环展开。当将它们包含在运行时编译器中时,这两种转换将带来不同的挑战。尽管几种离线启发式分配算法取得了令人印象深刻的结果,但它们消耗了大量的编译时间,这通常对于JIT是不可接受的。我们描述了两种分配算法的设计,这些算法减少了分配时间,同时保留了为脱机编译器编写的强大技术的优点。对新算法的实验评估证明了它们在运行时编译环境中的有效性。尽管运行时编译器受到其环境所施加的约束的限制,但是与脱机编译器相比,在程序调用之前进行编译提供了某些优势。特别是,它可以检查仅在程序执行时可用的信息。我们描述了一个轻量级的运行时值检查机制和一个循环工作的循环展开算法的设计。我们的实验结果表明,运行时展开程序在浮点,科学基准方面取得了显着改进。因此,总而言之,本文所描述的研究表明了如何有效地为运行时编译量身定制编译器优化算法。

著录项

  • 作者

    Dasgupta, Anshuman.;

  • 作者单位

    Rice University.;

  • 授予单位 Rice University.;
  • 学科 Computer Science.
  • 学位 Ph.D.
  • 年度 2007
  • 页码 125 p.
  • 总页数 125
  • 原文格式 PDF
  • 正文语种 eng
  • 中图分类 自动化技术、计算机技术;
  • 关键词

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号