Skip to content
0:00 / 0:00

#llvm#jit#zingjvm

2017 LLVM Developers’ Meeting: P. Reames “Falcon: An optimizing Java JIT ”

LLVM

18K subscribers • 18 videos on Hallway

YouTube
  • Recommended by 2 people: 2 in engineering communities.
  • Presented by Philip Reames, Azul Systems
  • Linked in the descriptionSlides on llvm.org

Advanced. Deep dive for people who know the field.

2.7K views9 years ago2 recommendations

Systems programmingProgramming languagesCompilers and interpretersPerformance and optimizationJava and the JVM

Philip Reames explains the design and implementation of Falcon, an LLVM-based JIT compiler used as the default optimizing JIT in the Zing JVM.

LLVM.org/devmtg/2017-10/ — Falcon: An optimizing Java JIT - Philip Reames Slides: llvm.org/devmtg/2017-10/slides/Reames-FalconKeynote.pdf — Over the last four years, we at Azul have developed and shipped a LLVM based JIT compiler within the Zing JVM. Falcon is now the default optimizing JIT for Zing and is in widespread production use. This talk will focus on the overall design of Falcon, with particular emphasis on how we extended LLVM to be successful in this new role. We have presented portions of the upstream technical work at previous developers meetings; this talk will emphasize how the various pieces fit together in a successful effort. In addition to the technical design, we will also cover key process decisions that ended up being essential for the success of the project. — Videos Filmed & Edited by Bash Films: BashFilms.com

Why it's here

2 people recommend this

What people say. Recommended for its deep dive into extending LLVM for managed languages and implementing JIT compilers.

Moments people linked to

u/dinfuehrin r/programming • Recommends

On “Mono's New .NET Interpreter”

That's certainly interesting. Maybe this can be explained, that they mostly care about the AOT-compilation use case for iOS and Android? Azul is replacing C2 with a LLVM-based compiler in their JVM. They mention that profiling information is critically important for them in this talk (along with some numbers): link to this video (sorry for the video, I couldn't find the slides). So I would assume this to be quite similar to C#.
1View on Reddit

u/mttdin r/ProgrammingLanguages • Recommends

On “Using LLVM's MCJIT for a garbage-collected interpreter?”

Perhaps looking at the experience from some of the other LLVM projects can be useful, too -- e.g., some of the recent talks: * Falcon + Falcon: An optimizing Java JIT - 2017 LLVM Developers’ Meeting: link to this video + New PM: taming a custom pipeline of Falcon JIT - 2018 EuroLLVM Developers’ Meeting: link to this video -- mentions contributing the Rewrite Statepoints For GC (RewriteStatepointsForGC) pass * Lessons Learned Implementing Common Lisp with LLVM over Six Years - Christian Schafmeister - 2018 LLVM Developers’ Meeting: link to this video -- Clasp has an ORC JIT engine and has some GC support (https://github.com/clasp-developers/clasp/tree/master/src/gctools). * (Likely the least relevant here, since it ap…