Repository logo

Infoscience

  • English
  • French
Log In
Logo EPFL, École polytechnique fédérale de Lausanne

Infoscience

  • English
  • French
Log In
  1. Home
  2. Academic and Research Output
  3. Conferences, Workshops, Symposiums, and Seminars
  4. Surgical Precision JIT Compilers
 
conference paper

Surgical Precision JIT Compilers

Rompf, Tiark  
•
Sujeeth, Arvind K.
•
Brown, Kevin J.
Show more
2014
Acm Sigplan Notices
35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)

Just-in-time (JIT) compilation of running programs provides more optimization opportunities than offline compilation. Modern JIT compilers, such as those in virtual machines like Oracle's HotSpot for Java or Google's V8 for JavaScript, rely on dynamic profiling as their key mechanism to guide optimizations. While these JIT compilers offer good average performance, their behavior is a black box and the achieved performance is highly unpredictable. In this paper, we propose to turn JIT compilation into a precision tool by adding two essential and generic metaprogramming facilities: First, allow programs to invoke JIT compilation explicitly. This enables controlled specialization of arbitrary code at run-time, in the style of partial evaluation. It also enables the JIT compiler to report warnings and errors to the program when it is unable to compile a code path in the demanded way. Second, allow the JIT compiler to call back into the program to perform compile-time computation. This lets the program itself define the translation strategy for certain constructs on the fly and gives rise to a powerful JIT macro facility that enables "smart" libraries to supply domain-specific compiler optimizations or safety checks. We present Lancet, a JIT compiler framework for Java bytecode that enables such a tight, two-way integration with the running program. Lancet itself was derived from a high-level Java bytecode interpreter: staging the interpreter using LMS (Lightweight Modular Staging) produced a simple bytecode compiler. Adding abstract interpretation turned the simple compiler into an optimizing compiler. This fact provides compelling evidence for the scalability of the staged-interpreter approach to compiler construction. In the case of Lancet, JIT macros also provide a natural interface to existing LMS-based toolchains such as the Delite parallelism and DSL framework, which can now serve as accelerator macros for arbitrary JVM bytecode.

  • Details
  • Metrics
Type
conference paper
DOI
10.1145/2594291.2594316
Web of Science ID

WOS:000344455800008

Author(s)
Rompf, Tiark  
Sujeeth, Arvind K.
Brown, Kevin J.
Lee, Hyoukjoong
Chafi, Hassan
Olukotun, Kunle
Date Issued

2014

Publisher

Assoc Computing Machinery

Publisher place

New York

Published in
Acm Sigplan Notices
Total of pages

12

Volume

49

Issue

6

Start page

41

End page

52

Subjects

Design

•

Languages

•

Performance

•

JIT Compilation

•

Staging

•

Program Generation

Editorial or Peer reviewed

REVIEWED

Written at

EPFL

EPFL units
LAMP1  
Event nameEvent placeEvent date
35th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)

Edinburgh, SCOTLAND

JUN 09-11, 2014

Available on Infoscience
December 30, 2014
Use this identifier to reference this record
https://infoscience.epfl.ch/handle/20.500.14299/109602
Logo EPFL, École polytechnique fédérale de Lausanne
  • Contact
  • infoscience@epfl.ch

  • Follow us on Facebook
  • Follow us on Instagram
  • Follow us on LinkedIn
  • Follow us on X
  • Follow us on Youtube
AccessibilityLegal noticePrivacy policyCookie settingsEnd User AgreementGet helpFeedback

Infoscience is a service managed and provided by the Library and IT Services of EPFL. © EPFL, tous droits réservés