diff options
author | Amit Lavon <amitlavon1.spam@gmail.com> | 2025-03-30 23:07:25 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-30 23:07:25 (GMT) |
commit | 685fd74f81e673dc0430120f50009636b0e437a5 (patch) | |
tree | a415606ec816fdc47d597231184e3880309a56c5 /Python/generated_cases.c.h | |
parent | 39fa19a4ccb4c75d2421187e5b8d83c73b48ca4d (diff) | |
download | cpython-685fd74f81e673dc0430120f50009636b0e437a5.zip cpython-685fd74f81e673dc0430120f50009636b0e437a5.tar.gz cpython-685fd74f81e673dc0430120f50009636b0e437a5.tar.bz2 |
GH-131798: Remove type checks for _TO_BOOL_STR (GH-131816)
Diffstat (limited to 'Python/generated_cases.c.h')
-rw-r--r-- | Python/generated_cases.c.h | 51 |
1 files changed, 29 insertions, 22 deletions
diff --git a/Python/generated_cases.c.h b/Python/generated_cases.c.h index 4e37c68..416035a 100644 --- a/Python/generated_cases.c.h +++ b/Python/generated_cases.c.h @@ -11616,30 +11616,37 @@ static_assert(INLINE_CACHE_ENTRIES_TO_BOOL == 3, "incorrect cache size"); _PyStackRef value; _PyStackRef res; + // _GUARD_TOS_UNICODE + { + value = stack_pointer[-1]; + PyObject *value_o = PyStackRef_AsPyObjectBorrow(value); + if (!PyUnicode_CheckExact(value_o)) { + UPDATE_MISS_STATS(TO_BOOL); + assert(_PyOpcode_Deopt[opcode] == (TO_BOOL)); + JUMP_TO_PREDICTED(TO_BOOL); + } + } /* Skip 1 cache entry */ /* Skip 2 cache entries */ - value = stack_pointer[-1]; - PyObject *value_o = PyStackRef_AsPyObjectBorrow(value); - if (!PyUnicode_CheckExact(value_o)) { - UPDATE_MISS_STATS(TO_BOOL); - assert(_PyOpcode_Deopt[opcode] == (TO_BOOL)); - JUMP_TO_PREDICTED(TO_BOOL); - } - STAT_INC(TO_BOOL, hit); - if (value_o == &_Py_STR(empty)) { - assert(_Py_IsImmortal(value_o)); - res = PyStackRef_False; - } - else { - assert(Py_SIZE(value_o)); - stack_pointer += -1; - assert(WITHIN_STACK_BOUNDS()); - _PyFrame_SetStackPointer(frame, stack_pointer); - PyStackRef_CLOSE(value); - stack_pointer = _PyFrame_GetStackPointer(frame); - res = PyStackRef_True; - stack_pointer += 1; - assert(WITHIN_STACK_BOUNDS()); + // _TO_BOOL_STR + { + STAT_INC(TO_BOOL, hit); + PyObject *value_o = PyStackRef_AsPyObjectBorrow(value); + if (value_o == &_Py_STR(empty)) { + assert(_Py_IsImmortal(value_o)); + res = PyStackRef_False; + } + else { + assert(Py_SIZE(value_o)); + stack_pointer += -1; + assert(WITHIN_STACK_BOUNDS()); + _PyFrame_SetStackPointer(frame, stack_pointer); + PyStackRef_CLOSE(value); + stack_pointer = _PyFrame_GetStackPointer(frame); + res = PyStackRef_True; + stack_pointer += 1; + assert(WITHIN_STACK_BOUNDS()); + } } stack_pointer[-1] = res; DISPATCH(); |