@@ -75,8 +75,7 @@ Summary -- Release highlights
7575 <whatsnew315-pep782>`
7676* :ref: `Improved error messages <whatsnew315-improved-error-messages >`
7777* The :ref: `JIT compiler <whatsnew315-jit >` has been significantly upgraded,
78- with 3-4% geometric mean performance improvement on the `pyperformance
79- <https://github.com/python/pyperformance> `__ benchmarks.
78+ with 3-4% geometric mean performance improvement
8079
8180
8281New features
@@ -855,11 +854,12 @@ csv
855854
856855.. _whatsnew315-jit :
857856
858- Upgraded JIT Compiler
857+ Upgraded JIT compiler
859858=====================
860859
861- Results from the pyperformance benchmark suite report
862- `3-4% <https://github.com/facebookexperimental/free-threading-benchmarking/blob/main/results/bm-20251214-3.15.0a2%2B-6cddf04-JIT/bm-20251214-vultr-x86_64-python-6cddf04344a1e8ca9df5-3.15.0a2%2B-6cddf04-vs-base.svg >`_
860+ Results from the `pyperformance
861+ <https://github.com/python/pyperformance> `__ benchmark suite report
862+ `3-4% <https://github.com/facebookexperimental/free-threading-benchmarking/blob/main/results/bm-20251214-3.15.0a2%2B-6cddf04-JIT/bm-20251214-vultr-x86_64-python-6cddf04344a1e8ca9df5-3.15.0a2%2B-6cddf04-vs-base.svg >`__
863863geometric mean performance improvement for the JIT over the standard CPython
864864interpreter built with all optimizations enabled. The speedups for JIT
865865builds versus no JIT builds range from roughly 20% slowdown to over
@@ -869,25 +869,26 @@ x86-64 Linux and AArch64 macOS systems.
869869.. attention ::
870870 These results are not yet final.
871871
872- The major upgrades to the JIT are as follows :
872+ The major upgrades to the JIT are:
873873
874874* LLVM 21 build-time dependency
875875* New tracing frontend
876876* Basic register allocation in the JIT
877877* More JIT optimizations
878878* Better machine code generation
879879
880- .. rubric :: LLVM 21 Build-Time Dependency
880+ .. rubric :: LLVM 21 build-time dependency
881881
882882The JIT compiler now uses LLVM 21 for build-time stencil generation. As
883883always, LLVM is only needed when building CPython with the JIT enabled;
884884end users running Python do not need LLVM installed. Instructions for
885- installing LLVM can be found in the JIT compiler documentation
886- (:file: `Tools/jit/README.md `) for all supported platforms.
885+ installing LLVM can be found in the `JIT compiler documentation
886+ <https://github.com/python/cpython/blob/main/Tools/jit/README.md> `__
887+ for all supported platforms.
887888
888889(Contributed by Savannah Ostrowski in :gh: `140973 `.)
889890
890- .. rubric :: A New Tracing Frontend
891+ .. rubric :: A new tracing frontend
891892
892893The JIT compiler now supports significantly more bytecode operations and
893894control flow than in Python 3.14, enabling speedups on a wider variety of
@@ -898,9 +899,9 @@ that records actual execution paths through code, rather than estimating
898899them as the previous implementation did.
899900
900901(Contributed by Ken Jin in :gh: `139109 `. Support for Windows added by
901- Mark Shannon :gh: `141703 `.)
902+ Mark Shannon in :gh: `141703 `.)
902903
903- .. rubric :: Basic Register Allocation in the JIT
904+ .. rubric :: Basic register allocation in the JIT
904905
905906A basic form of register allocation has been added to the JIT compiler's
906907optimizer. This allows the JIT compiler to avoid certain stack operations
@@ -909,7 +910,7 @@ more efficient traces by avoiding reads and writes to memory.
909910
910911(Contributed by Mark Shannon in :gh: `135379 `.)
911912
912- .. rubric :: More JIT Optimizations
913+ .. rubric :: More JIT optimizations
913914
914915More `constant-propagation <https://en.wikipedia.org/wiki/Constant_folding >`__
915916is now performed. This means when the JIT compiler detects that certain user
@@ -923,7 +924,7 @@ reduces the cost of most operations in Python.
923924(Contributed by Ken Jin, Donghee Na, Nadeshiko Manju, Savannah Ostrowski,
924925Noam Cohen, Tomas Roun, PuQing in :gh: `134584 `.)
925926
926- .. rubric :: Better Machine Code Generation
927+ .. rubric :: Better machine code generation
927928
928929The JIT compiler's machine code generator now produces better machine code
929930for x86-64 and AArch64 macOS and Linux targets. In general, users should
0 commit comments