diff options
author | Mark Shannon <mark@hotpy.org> | 2023-01-05 12:20:09 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-05 12:20:09 (GMT) |
commit | f20c553a458659f247fac1fb829f8172aa32f69a (patch) | |
tree | 3271f23aab9cae0c13db57fcc3ff195061dca868 /Python/bytecodes.c | |
parent | 105e37395dbd9790f81677e39ec9bd000590728f (diff) | |
download | cpython-f20c553a458659f247fac1fb829f8172aa32f69a.zip cpython-f20c553a458659f247fac1fb829f8172aa32f69a.tar.gz cpython-f20c553a458659f247fac1fb829f8172aa32f69a.tar.bz2 |
GH-100288: Remove LOAD_ATTR_METHOD_WITH_DICT instruction. (GH-100753)
Diffstat (limited to 'Python/bytecodes.c')
-rw-r--r-- | Python/bytecodes.c | 29 |
1 files changed, 1 insertions, 28 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c index dec122a..5f8871c 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -2606,33 +2606,6 @@ dummy_func( } // error: LOAD_ATTR has irregular stack effect - inst(LOAD_ATTR_METHOD_WITH_DICT) { - /* Can be either a managed dict, or a tp_dictoffset offset.*/ - assert(cframe.use_tracing == 0); - PyObject *self = TOP(); - PyTypeObject *self_cls = Py_TYPE(self); - _PyLoadMethodCache *cache = (_PyLoadMethodCache *)next_instr; - - DEOPT_IF(self_cls->tp_version_tag != read_u32(cache->type_version), - LOAD_ATTR); - /* Treat index as a signed 16 bit value */ - Py_ssize_t dictoffset = self_cls->tp_dictoffset; - assert(dictoffset > 0); - PyDictObject **dictptr = (PyDictObject**)(((char *)self)+dictoffset); - PyDictObject *dict = *dictptr; - DEOPT_IF(dict == NULL, LOAD_ATTR); - DEOPT_IF(dict->ma_keys->dk_version != read_u32(cache->keys_version), - LOAD_ATTR); - STAT_INC(LOAD_ATTR, hit); - PyObject *res = read_obj(cache->descr); - assert(res != NULL); - assert(_PyType_HasFeature(Py_TYPE(res), Py_TPFLAGS_METHOD_DESCRIPTOR)); - SET_TOP(Py_NewRef(res)); - PUSH(self); - JUMPBY(INLINE_CACHE_ENTRIES_LOAD_ATTR); - } - - // error: LOAD_ATTR has irregular stack effect inst(LOAD_ATTR_METHOD_NO_DICT) { assert(cframe.use_tracing == 0); PyObject *self = TOP(); @@ -3517,7 +3490,7 @@ family(load_attr) = { LOAD_ATTR, LOAD_ATTR_CLASS, LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN, LOAD_ATTR_INSTANCE_VALUE, LOAD_ATTR_MODULE, LOAD_ATTR_PROPERTY, LOAD_ATTR_SLOT, LOAD_ATTR_WITH_HINT, - LOAD_ATTR_METHOD_LAZY_DICT, LOAD_ATTR_METHOD_NO_DICT, LOAD_ATTR_METHOD_WITH_DICT, + LOAD_ATTR_METHOD_LAZY_DICT, LOAD_ATTR_METHOD_NO_DICT, LOAD_ATTR_METHOD_WITH_VALUES }; family(load_global) = { LOAD_GLOBAL, LOAD_GLOBAL_BUILTIN, |