“Easy::Jit: A Just-in-Time compilation library for C++”
summary
A C++ library that exposes runtime specialization by embedding LLVM bitcode via a clang optimizer plugin and exposing a single header easy::jit.h; it reproduces std::bind semantics, captures concrete parameter values, asks LLVM to recompile hot functions and reports up to 4–5× faster on an image kernel example. The plugin registers function pointers and bitcode at startup (loaded with -xclang-load), supports a simple code cache, and currently inflates binaries by roughly 30–40 MB due to LLVM.
AI-written summary · about
chapters (23)
- 0:00Introduction
- 0:45Constraints
- 1:48Why EasyJit
- 2:14How EasyJit works
- 3:05The kernel function
- 4:56Optimization
- 10:54Example
- 11:36Doubles
- 12:02The problem
- 12:25The solution
- 13:10The last feature
- 13:43Code cache
- 14:20Threading
- 14:39serialize
- 15:02compose
- 15:29plugin
- 16:35some problems
- 17:39score
- 17:50profile guided optimization
- 18:40automatic optimization
- 19:17partial evaluation
- 21:02presentation
- 22:19questions
related talks
01h 04mJust-in-Time Compilation: The Next Big Thing?
01h 01mFaster Compile Times and Better Performance: Bringing Just-in-Time Compilation to C++
19mReusing Just-in-Time Compiled Code
20mLet's Build a Computation-Graph JIT Compiler in C++
44mJIT Me Baby One More Time
39mFireside chat on JIT compiler
30mAn Incremental Approach to JIT Construction
20mBYOJ: Build your own JIT with Ruby
