# Python 3.14 LLVM tail-call interpreter

**URL:** https://discourse.julialang.org/t/python-3-14-llvm-tail-call-interpreter/126777
**Category:** Offtopic
**Tags:** llvm, python
**Created:** [March 10, 2025, 4:55pm UTC](https://discourse.julialang.org/t/python-3-14-llvm-tail-call-interpreter/126777 "2025-03-10T16:55:30Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![fdekerme](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fdekerme/32/43574_2.png) [@fdekerme](https://discourse.julialang.org/u/fdekerme)
#### Post date: [March 10, 2025, 4:55pm UTC](https://discourse.julialang.org/t/python-3-14-llvm-tail-call-interpreter/126777/1 "2025-03-10T16:55:30Z")

</div>

Not an expert at all, but I think this blog post from Nelson Elhage about Python 3.14 LLVM performances could interest people here:

> **[Performance of the Python 3.14 tail-call interpreter](https://blog.nelhage.com/post/cpython-tail-call/)**
>
> A deep dive into the performance of Python 3.14's tail-call interpreter: How the performance results were confounded by an LLVM regression, the surprising complexity of compiling interpreter loops, and some reflections on performance work, software...

fdekerm

---

<div class="post-metadata">

### Author: ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)
#### Post date: [March 11, 2025, 7:08pm UTC](https://discourse.julialang.org/t/python-3-14-llvm-tail-call-interpreter/126777/2 "2025-03-11T19:08:57Z")

</div>

Yes, very interesting investigation! Funny how the supposed perf improvements turned out to be a mirage—but understandable given the regression. I’m intrigued by the tail call interpreter but didn’t see any links to posts about that.

---

<div class="post-metadata">

### Author: ![abraemer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abraemer/32/51403_2.png) [@abraemer](https://discourse.julialang.org/u/abraemer)
#### Post date: [March 11, 2025, 8:49pm UTC](https://discourse.julialang.org/t/python-3-14-llvm-tail-call-interpreter/126777/3 "2025-03-11T20:49:30Z")

</div>

> [@StefanKarpinski](#):
>
> I’m intrigued by the tail call interpreter but didn’t see any links to posts about that.

There was a recent post/discussion on Hacker News about this:

> **[A tail calling interpreter for Python (already landed in CPython)](https://news.ycombinator.com/item?id=43076088)**
>
> 124 points —
> 92 comments —
> phsilva —
> 7:12 AM - 17 Feb 2025

The linked article (and also the article it references) go into great detail about this technique.

---

<div class="post-metadata">

### Author: ![Alfredo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/alfredo/32/218064_2.png) [@Alfredo](https://discourse.julialang.org/u/Alfredo)
#### Post date: [August 11, 2025, 4:39am UTC](https://discourse.julialang.org/t/python-3-14-llvm-tail-call-interpreter/126777/5 "2025-08-11T04:39:38Z")

</div>

The tail-call interpreter in Python 3.14 is a backend change to opcode dispatch. It can speed things up a bit on recent toolchains, but results vary, and it’s far from a JIT-level boost.
