Repository navigation
JIT Planning for 3.15 and 3.16 #139038
Copy link
Copy link
Open
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-JIT
Description
Following a conversation at the CPython Core Dev Sprint, this is an uber issue tracking JIT performance goals and planning for 3.15 and 3.16.
The goal here is to capture our goals and the work that we believe is necessary to enable the JIT (on by default).
3.15 (May 2026)
Goals & "features"
Must Haves
- 5% faster (geometric mean)
- Best case: 50% faster
- Worst case: -10% faster
- JIT coverage (i.e., how much code is being JIT'ted): 80% JIT coverage can be improved considerably #142982
- Free-threading supported (pre-beta) Make the JIT thread-safe #133171 gh-141594: A free-threaded JIT (Part 1) #141595
- Support for out-of-process profilers and debuggers Supporting stack unwinding in the JIT compiler #126910
Nice to haves
- 10% faster (geometric mean)
- Best case: 100% faster
- Worst case 1% slower
- JIT coverage (i.e., how much code is being JIT'ted): 90%
- Robust documentation
How will we do this?
- Register allocation GH-135379: Top of stack caching for the JIT. #135465
- More optimizations Better uop coverage in the JIT optimizer #131798 Eliminate redundant refcounting in the JIT #134584
- Trace recording Trace recording JIT #139109
- Code gen
- LLVM 21 Update JIT builds to use LLVM 21 #140479
- Warm up faster
- More specialization Broader specialization in the Specializing Adaptive Interpreter for better JIT performance #143732
3.16
Goals & "features"
Must Haves
- ~ similar debuggability and performance across Tier 1 platforms
- 2+ maintainers in front-end, middle-end, and back-end
- ...Anything listed in 3.15 nice to have that was not achieved (e.g. docs, better coverage, faster)
How will we do this?
- Unboxing (int/float/other types)
- LLVM 22
Linked PRs
- gh-139038: Add JIT What's New for 3.15 #142845
- gh-139038: Add macOS performance numbers for the JIT #143479
- gh-139038: Update JIT perf figures for 3.14a4 #143705
- gh-139038: Link to Savannah's webpage for JIT results #146013
- gh-139038: Update JIT results in preparation for 3.15a8 #148018
- gh-139038: Credit more people for JIT in 3.15 #148359
- gh-139038: Add whatsnew entry for jit unique reference tracking #148572
- gh-139038: Update final JIT figures for 3.15b1 #149210
Reactions are currently unavailable
Metadata
Metadata
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-JIT
Activity
corona10 commentedon Sep 18, 2025
Here is link the issue related JITxFree-threadng: #133171
gh-139038: Add JIT What's New for 3.15 (#142845)
gh-139038: Add macOS performance numbers for the JIT (GH-143479)
gh-139038: Update JIT perf figures for 3.14a4 (GH-143705)
pythongh-139038: Update JIT perf figures for 3.14a4 (pythonGH-143705)
pythongh-139038: Add macOS performance numbers for the JIT (pythonGH-…
pythongh-139038: Update JIT perf figures for 3.14a4 (pythonGH-143705)
gh-139038: Link to Savannah's webpage for JIT results (#146013)
gh-139038: Update JIT results in preparation for 3.15a8 (GH-148018)
gh-139038: Credit more people for JIT in 3.15 (GH-148359)
gh-139038: Add whatsnew entry for jit unique reference tracking (GH-1…
pythongh-139038: Link to Savannah's webpage for JIT results (python#1…
pythongh-139038: Update JIT results in preparation for 3.15a8 (python…
pythongh-139038: Credit more people for JIT in 3.15 (pythonGH-148359)
pythongh-139038: Add whatsnew entry for jit unique reference tracking (…
gh-139038: Update final JIT figures for 3.15rc1 (#149210)