GH-131498: Another refactoring of the code generator (GH-131827)

* Rename 'defined' attribute to 'in_local' to more accurately reflect how it is used

* Make death of variables explicit even for array variables.

* Convert in_memory from boolean to stack offset

* Don't apply liveness analyis to optimizer generated code

* Add 'out' parameter to stack.pop
This commit is contained in:
Mark Shannon 2025-03-31 13:52:48 +01:00 committed by GitHub
parent ba11f45dd9
commit c535a132e4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
11 changed files with 206 additions and 212 deletions

View file

@ -1484,7 +1484,7 @@ dummy_func(
(void)counter;
}
op(_UNPACK_SEQUENCE, (seq -- output[oparg], top[0])) {
op(_UNPACK_SEQUENCE, (seq -- unused[oparg], top[0])) {
PyObject *seq_o = PyStackRef_AsPyObjectSteal(seq);
int res = _PyEval_UnpackIterableStackRef(tstate, seq_o, oparg, -1, top);
Py_DECREF(seq_o);
@ -1533,7 +1533,7 @@ dummy_func(
DECREF_INPUTS();
}
inst(UNPACK_EX, (seq -- left[oparg & 0xFF], unused, right[oparg >> 8], top[0])) {
inst(UNPACK_EX, (seq -- unused[oparg & 0xFF], unused, unused[oparg >> 8], top[0])) {
PyObject *seq_o = PyStackRef_AsPyObjectSteal(seq);
int res = _PyEval_UnpackIterableStackRef(tstate, seq_o, oparg & 0xFF, oparg >> 8, top);
Py_DECREF(seq_o);