mirror of
https://github.com/python/cpython.git
synced 2025-07-24 03:35:53 +00:00
bpo-45340: Don't create object dictionaries unless actually needed (GH-28802)
* Never change types' cached keys. It could invalidate inline attribute objects. * Lazily create object dictionaries. * Update specialization of LOAD/STORE_ATTR. * Don't update shared keys version for deletion of value. * Update gdb support to handle instance values. * Rename SPLIT_KEYS opcodes to INSTANCE_VALUE.
This commit is contained in:
parent
97308dfcdc
commit
a8b9350964
18 changed files with 721 additions and 400 deletions
21
Include/opcode.h
generated
21
Include/opcode.h
generated
|
@ -147,7 +147,7 @@ extern "C" {
|
|||
#define BINARY_SUBSCR_DICT 39
|
||||
#define JUMP_ABSOLUTE_QUICK 40
|
||||
#define LOAD_ATTR_ADAPTIVE 41
|
||||
#define LOAD_ATTR_SPLIT_KEYS 42
|
||||
#define LOAD_ATTR_INSTANCE_VALUE 42
|
||||
#define LOAD_ATTR_WITH_HINT 43
|
||||
#define LOAD_ATTR_SLOT 44
|
||||
#define LOAD_ATTR_MODULE 45
|
||||
|
@ -158,15 +158,16 @@ extern "C" {
|
|||
#define LOAD_METHOD_CACHED 80
|
||||
#define LOAD_METHOD_CLASS 81
|
||||
#define LOAD_METHOD_MODULE 87
|
||||
#define STORE_ATTR_ADAPTIVE 88
|
||||
#define STORE_ATTR_SPLIT_KEYS 120
|
||||
#define STORE_ATTR_SLOT 122
|
||||
#define STORE_ATTR_WITH_HINT 123
|
||||
#define LOAD_FAST__LOAD_FAST 127
|
||||
#define STORE_FAST__LOAD_FAST 128
|
||||
#define LOAD_FAST__LOAD_CONST 134
|
||||
#define LOAD_CONST__LOAD_FAST 140
|
||||
#define STORE_FAST__STORE_FAST 143
|
||||
#define LOAD_METHOD_NO_DICT 88
|
||||
#define STORE_ATTR_ADAPTIVE 120
|
||||
#define STORE_ATTR_INSTANCE_VALUE 122
|
||||
#define STORE_ATTR_SLOT 123
|
||||
#define STORE_ATTR_WITH_HINT 127
|
||||
#define LOAD_FAST__LOAD_FAST 128
|
||||
#define STORE_FAST__LOAD_FAST 134
|
||||
#define LOAD_FAST__LOAD_CONST 140
|
||||
#define LOAD_CONST__LOAD_FAST 143
|
||||
#define STORE_FAST__STORE_FAST 149
|
||||
#define DO_TRACING 255
|
||||
#ifdef NEED_OPCODE_JUMP_TABLES
|
||||
static uint32_t _PyOpcode_RelativeJump[8] = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue