mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
gh-87729: specialize LOAD_SUPER_ATTR_METHOD (#103809)
This commit is contained in:
parent
cef542ca57
commit
ef25febcf2
14 changed files with 539 additions and 357 deletions
|
@ -51,6 +51,15 @@ typedef struct {
|
|||
|
||||
#define INLINE_CACHE_ENTRIES_BINARY_SUBSCR CACHE_ENTRIES(_PyBinarySubscrCache)
|
||||
|
||||
typedef struct {
|
||||
uint16_t counter;
|
||||
uint16_t class_version[2];
|
||||
uint16_t self_type_version[2];
|
||||
uint16_t method[4];
|
||||
} _PySuperAttrCache;
|
||||
|
||||
#define INLINE_CACHE_ENTRIES_LOAD_SUPER_ATTR CACHE_ENTRIES(_PySuperAttrCache)
|
||||
|
||||
typedef struct {
|
||||
uint16_t counter;
|
||||
uint16_t version[2];
|
||||
|
@ -217,6 +226,8 @@ extern int _PyLineTable_PreviousAddressRange(PyCodeAddressRange *range);
|
|||
|
||||
/* Specialization functions */
|
||||
|
||||
extern void _Py_Specialize_LoadSuperAttr(PyObject *global_super, PyObject *class, PyObject *self,
|
||||
_Py_CODEUNIT *instr, PyObject *name, int load_method);
|
||||
extern void _Py_Specialize_LoadAttr(PyObject *owner, _Py_CODEUNIT *instr,
|
||||
PyObject *name);
|
||||
extern void _Py_Specialize_StoreAttr(PyObject *owner, _Py_CODEUNIT *instr,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue