python / cpython

The Python programming language
https://www.python.org
Other
63.16k stars 30.25k forks source link

The JIT doesn't call for `combine_symbol_mask` on the initial trampoline for a trace #125911

Open brandtbucher opened 4 hours ago

brandtbucher commented 4 hours ago

Crash report

_PyJIT_Compile doesn't consider the initial (big) trampoline "group" when collecting the (little) trampolines needed to compile a given trace.

This doesn't break anything right now, since we don't have the initial "big" trampoline on AArch64, and only emit the "little" trampolines on AArch64. But with the immenent move to LLVM 19, this is breaking stuff.

Also, our use of the term "trampoline" here is overloaded. Let's call the big trampoline a "shim" from here on out. We can rename trampoline.c to shim.c and update all of the references to the old name to make it more clear. That should wait until after GH-125499 though, to reduce the amount of conflicts.

CC @diegorusso and @savannahostrowski. Either one of you want to take this?

Zheaoli commented 2 hours ago

I'm interested on this issue. May I take a try if there is no one is working on this?