cpython icon indicating copy to clipboard operation
cpython copied to clipboard

JIT Planning for 3.15 and 3.16

Open savannahostrowski opened this issue 4 months ago • 1 comments

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%
  • [ ] Free-threading supported (pre-beta) https://github.com/python/cpython/issues/133171 https://github.com/python/cpython/pull/141595
  • [ ] Support for out-of-process profilers and debuggers (x86 Linux)

Nice to haves

  • [ ] 10% faster (geometric mean)
    • Best case: 100% faster
    • Worst case
  • [ ] JIT coverage (i.e., how much code is being JIT'ted): 90%
  • [ ] Robust documentation

How will we do this?

  • [X] Register allocation https://github.com/python/cpython/pull/135465
  • [ ] More optimizations
  • [x] Trace recording https://github.com/python/cpython/issues/139109
  • [ ] Code gen
  • [x] LLVM 21 #140479
  • [ ] Warm up faster
  • [ ] More specialization

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-142845

savannahostrowski avatar Sep 17 '25 14:09 savannahostrowski

Here is link the issue related JITxFree-threadng: https://github.com/python/cpython/issues/133171

corona10 avatar Sep 18 '25 09:09 corona10