mirror of
https://github.com/python/cpython.git
synced 2025-10-28 01:00:34 +00:00
bpo-45609: Specialize STORE_SUBSCR (GH-29242)
* Specialize STORE_SUBSCR for list[int], and dict[object] * Adds _PyDict_SetItem_Take2 which consumes references to the key and values.
This commit is contained in:
parent
4575c01b75
commit
036fead695
10 changed files with 241 additions and 71 deletions
61
Include/opcode.h
generated
61
Include/opcode.h
generated
|
|
@ -125,35 +125,38 @@ extern "C" {
|
|||
#define BINARY_SUBSCR_LIST_INT 23
|
||||
#define BINARY_SUBSCR_TUPLE_INT 24
|
||||
#define BINARY_SUBSCR_DICT 26
|
||||
#define CALL_FUNCTION_ADAPTIVE 27
|
||||
#define CALL_FUNCTION_BUILTIN_O 28
|
||||
#define CALL_FUNCTION_BUILTIN_FAST 29
|
||||
#define CALL_FUNCTION_LEN 34
|
||||
#define CALL_FUNCTION_ISINSTANCE 36
|
||||
#define CALL_FUNCTION_PY_SIMPLE 38
|
||||
#define JUMP_ABSOLUTE_QUICK 39
|
||||
#define LOAD_ATTR_ADAPTIVE 40
|
||||
#define LOAD_ATTR_INSTANCE_VALUE 41
|
||||
#define LOAD_ATTR_WITH_HINT 42
|
||||
#define LOAD_ATTR_SLOT 43
|
||||
#define LOAD_ATTR_MODULE 44
|
||||
#define LOAD_GLOBAL_ADAPTIVE 45
|
||||
#define LOAD_GLOBAL_MODULE 46
|
||||
#define LOAD_GLOBAL_BUILTIN 47
|
||||
#define LOAD_METHOD_ADAPTIVE 48
|
||||
#define LOAD_METHOD_CACHED 55
|
||||
#define LOAD_METHOD_CLASS 56
|
||||
#define LOAD_METHOD_MODULE 57
|
||||
#define LOAD_METHOD_NO_DICT 58
|
||||
#define STORE_ATTR_ADAPTIVE 59
|
||||
#define STORE_ATTR_INSTANCE_VALUE 62
|
||||
#define STORE_ATTR_SLOT 63
|
||||
#define STORE_ATTR_WITH_HINT 64
|
||||
#define LOAD_FAST__LOAD_FAST 65
|
||||
#define STORE_FAST__LOAD_FAST 66
|
||||
#define LOAD_FAST__LOAD_CONST 67
|
||||
#define LOAD_CONST__LOAD_FAST 75
|
||||
#define STORE_FAST__STORE_FAST 76
|
||||
#define STORE_SUBSCR_ADAPTIVE 27
|
||||
#define STORE_SUBSCR_LIST_INT 28
|
||||
#define STORE_SUBSCR_DICT 29
|
||||
#define CALL_FUNCTION_ADAPTIVE 34
|
||||
#define CALL_FUNCTION_BUILTIN_O 36
|
||||
#define CALL_FUNCTION_BUILTIN_FAST 38
|
||||
#define CALL_FUNCTION_LEN 39
|
||||
#define CALL_FUNCTION_ISINSTANCE 40
|
||||
#define CALL_FUNCTION_PY_SIMPLE 41
|
||||
#define JUMP_ABSOLUTE_QUICK 42
|
||||
#define LOAD_ATTR_ADAPTIVE 43
|
||||
#define LOAD_ATTR_INSTANCE_VALUE 44
|
||||
#define LOAD_ATTR_WITH_HINT 45
|
||||
#define LOAD_ATTR_SLOT 46
|
||||
#define LOAD_ATTR_MODULE 47
|
||||
#define LOAD_GLOBAL_ADAPTIVE 48
|
||||
#define LOAD_GLOBAL_MODULE 55
|
||||
#define LOAD_GLOBAL_BUILTIN 56
|
||||
#define LOAD_METHOD_ADAPTIVE 57
|
||||
#define LOAD_METHOD_CACHED 58
|
||||
#define LOAD_METHOD_CLASS 59
|
||||
#define LOAD_METHOD_MODULE 62
|
||||
#define LOAD_METHOD_NO_DICT 63
|
||||
#define STORE_ATTR_ADAPTIVE 64
|
||||
#define STORE_ATTR_INSTANCE_VALUE 65
|
||||
#define STORE_ATTR_SLOT 66
|
||||
#define STORE_ATTR_WITH_HINT 67
|
||||
#define LOAD_FAST__LOAD_FAST 75
|
||||
#define STORE_FAST__LOAD_FAST 76
|
||||
#define LOAD_FAST__LOAD_CONST 77
|
||||
#define LOAD_CONST__LOAD_FAST 78
|
||||
#define STORE_FAST__STORE_FAST 79
|
||||
#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