@@ -270,7 +270,7 @@ It uses tail calls between small C functions that implement individual
270
270
Python opcodes, rather than one large C case statement.
271
271
For certain newer compilers, this interpreter provides
272
272
significantly better performance. Preliminary numbers on our machines suggest
273
- anywhere from -3% to 30% faster Python code, and a geometric mean of 9-15 %
273
+ anywhere up to 30% faster Python code, and a geometric mean of 3-5 %
274
274
faster on ``pyperformance `` depending on platform and architecture. The
275
275
baseline is Python 3.14 built with Clang 19 without this new interpreter.
276
276
@@ -295,6 +295,19 @@ For further information on how to build Python, see
295
295
296
296
__ https://en.wikipedia.org/wiki/Tail_call
297
297
298
+ .. attention ::
299
+
300
+ This section previously reported a 9-15% geomean speedup. This number has since been
301
+ cautiously revised down to 3-5%. While we expect performance results to be better
302
+ than what we report, our estimates are more conservative due to a
303
+ `compiler bug <https://github.com/llvm/llvm-project/issues/106846 >`_ found in
304
+ Clang/LLVM 19. We were unaware of this bug, and it artifically boosted
305
+ our numbers, resulting in inaccurate results. We sincerely apologize for
306
+ communicating results that were only accurate for certain versions of LLVM 19
307
+ and 20. At the time of writing, this bug has not yet been fixed in LLVM 19-21. Thus
308
+ any benchmarks with those versions of LLVM may produce artifically inflated numbers.
309
+ (Thanks to Nelson Elhage for bringing this to light.)
310
+
298
311
(Contributed by Ken Jin in :gh: `128563 `, with ideas on how to implement this
299
312
in CPython by Mark Shannon, Garrett Gu, Haoran Xu, and Josh Haberman.)
300
313
0 commit comments