# Performance of the Python 3.14 tail-call interpreter

DevFeed: [Performance of the Python 3.14 tail-call interpreter](<https://devfeed.tech/articles/performance-of-the-python-3-14-tail-call-interpreter-21947.md>)

Original publisher: [Read original article](<https://blog.nelhage.com/post/cpython-tail-call/>)

Author: Nelson Elhage

Published: 2025-03-09T22:00:00Z

Content type: article

Language: en

Sources: [Nelson Elhage](<https://devfeed.tech/sources/nelson-elhage.md>)

Topics: [Python 3.14](<https://devfeed.tech/topics/python-3-14.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [gcc](<https://devfeed.tech/topics/gcc.md>), [LLVM](<https://devfeed.tech/topics/llvm.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [benchmark](<https://devfeed.tech/tags/benchmark.md>), [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [bytecode](<https://devfeed.tech/tags/bytecode.md>), [clang](<https://devfeed.tech/tags/clang.md>), [compilers](<https://devfeed.tech/tags/compilers.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [gcc](<https://devfeed.tech/tags/gcc.md>), [intel](<https://devfeed.tech/tags/intel.md>), [llvm](<https://devfeed.tech/tags/llvm.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-engineering](<https://devfeed.tech/tags/performance-engineering.md>), [python](<https://devfeed.tech/tags/python.md>), [python-3-14](<https://devfeed.tech/tags/python-3-14.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>)

## AI overview

This article examines the performance gains attributed to CPython's Python 3.14 tail-call bytecode interpreter. It finds that the initial 10-15% improvement was primarily caused by inadvertently working around an LLVM 19 regression; with better baselines, the gain is closer to 1-5%, depending on the setup.

## Source excerpt

About a month ago, the CPython project merged a new implementation strategy for their bytecode interpreter. The initial headline results were very impressive, showing a 10-15% performance improvement on average across a wide range of benchmarks across a variety of platforms. Unfortunately, as I will document in this post, these impressive performance gains turned out to be primarily due to inadvertently working around a regression in LLVM 19. When benchmarked against a better baseline (such GCC, clang-18, or LLVM 19 with certain tuning flags), the performance gain drops to 1-5% or so depending on the exact setup.