GH-115685: Split _TO_BOOL_ALWAYS_TRUE into micro-ops (GH-116352)

This commit is contained in:
Mark Shannon 2024-03-05 15:23:08 +00:00 committed by GitHub
parent 0c81ce1360
commit 23db9c6227
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 50 additions and 44 deletions

View file

@ -383,15 +383,10 @@
break;
}
case _TO_BOOL_ALWAYS_TRUE: {
case _REPLACE_WITH_TRUE: {
PyObject *value;
PyObject *res;
value = stack_pointer[-1];
uint32_t version = (uint32_t)CURRENT_OPERAND();
// This one is a bit weird, because we expect *some* failures:
assert(version);
if (Py_TYPE(value)->tp_version_tag != version) goto side_exit;
STAT_INC(TO_BOOL, hit);
Py_DECREF(value);
res = Py_True;
stack_pointer[-1] = res;