You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Interpreter code generators need to be able to handle basic flow control #123391
In order to be able to flush the stack efficiently around escaping calls, the interpreter code generators need to be able to handle simple-ish flow control.
For example, in this code:
op(_CHECK_PERIODIC, (--)) {
if (_Py_atomic_load_uintptr_relaxed(&tstate->eval_breaker) & _PY_EVAL_EVENTS_MASK) {
int err = _Py_HandlePending(tstate);
ERROR_IF(err != 0, error);
}
}
The general shape is:
if (cond) {
*escaping_call()*
}
We want to be able to track the flow control so that we can spill around the call, but not on the fast path:
if (cond) {
SPILL_STACK();
*escaping_call()*
RELOAD_STACK();
}
Activity