OrcJIT at Scale with the llvm-autojit Plugin
- Track: LLVM
- Room: UD6.215
- Day: Saturday
- Start: 16:15
- End: 16:35
- Video only: ud6215
- Chat: Join the conversation!
LLVM’s ORC JIT [1] is a powerful framework for just-in-time compilation of LLVM IR. However, when applied to large codebases, ORC often exhibits a surprisingly high front-load ratio: most code is likely compiled before execution even reaches main(). This diminishes the benefits of JITing, as seen in the well-known “time to first plot” latency in Julia, one of ORC’s large-scale users [2].
The llvm-autojit plugin [3] is a new experimental compiler extension for automatic just-in-time compilation with ORC. The project reached a proof-of-concept state, where basic C, C++ and Rust programs build and run successfully. It integrates easily with build systems like make, CMake and cargo, making it practical to apply to real-world projects.
In this talk, we will examine the causes of excessive front-loading in ORC and explain how llvm-autojit mitigates them. Attendees will learn about pass plugins, LLVM IR code transformations, callgraphs and runtime libraries. And they will see how to experiment with ORC-based JITing in their own projects.
[1] https://llvm.org/docs/ORCv2.html [2] https://discourse.julialang.org/t/time-to-first-plot-clarification/58534 [3] https://github.com/weliveindetail/llvm-autojit
Speakers
| Stefan Gränitz |