mirror of
https://github.com/python/cpython.git
synced 2025-07-08 03:45:36 +00:00
gh-134584: Specialize POP_TOP by reference and type in JIT (GH-135761)
This commit is contained in:
parent
99712c45cc
commit
569fc6870f
12 changed files with 239 additions and 62 deletions
|
@ -344,6 +344,27 @@ dummy_func(
|
|||
PyStackRef_XCLOSE(value);
|
||||
}
|
||||
|
||||
op(_POP_TOP_NOP, (value --)) {
|
||||
assert(PyStackRef_IsNull(value) || (!PyStackRef_RefcountOnObject(value)) ||
|
||||
_Py_IsImmortal((PyStackRef_AsPyObjectBorrow(value))));
|
||||
DEAD(value);
|
||||
}
|
||||
|
||||
op(_POP_TOP_INT, (value --)) {
|
||||
assert(PyLong_CheckExact(PyStackRef_AsPyObjectBorrow(value)));
|
||||
PyStackRef_CLOSE_SPECIALIZED(value, _PyLong_ExactDealloc);
|
||||
}
|
||||
|
||||
op(_POP_TOP_FLOAT, (value --)) {
|
||||
assert(PyFloat_CheckExact(PyStackRef_AsPyObjectBorrow(value)));
|
||||
PyStackRef_CLOSE_SPECIALIZED(value, _PyFloat_ExactDealloc);
|
||||
}
|
||||
|
||||
op(_POP_TOP_UNICODE, (value --)) {
|
||||
assert(PyUnicode_CheckExact(PyStackRef_AsPyObjectBorrow(value)));
|
||||
PyStackRef_CLOSE_SPECIALIZED(value, _PyUnicode_ExactDealloc);
|
||||
}
|
||||
|
||||
tier2 op(_POP_TWO, (nos, tos --)) {
|
||||
PyStackRef_CLOSE(tos);
|
||||
PyStackRef_CLOSE(nos);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue