GH-128563: (Re)move some labels, to simplify implementing tailcalling interpeter. by markshannon · Pull Request #129525 · python/cpython

Following on from an earlier discussion: It complicates the code a lot if we need to be able to jump from generated code back into manually written labels and vice-versa.

This PR refactors the code so that there are only two transfers from the the code in ceval.c to bytecodes.c and none the other way,
for tier 1 (we can do much the same for tier 2 later).

The two transfers from PyEval_EvalDefault into the interpreter "loop" are:

  • goto error; on line 847
  • goto start_frame; on line 856