bpo-47127: Specialize calls for fastcall c methods with keywords (GH-32125)

* add PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS
This commit is contained in:
Kumar Aditya 2022-03-28 01:23:25 +05:30 committed by GitHub
parent 785cc67705
commit 58448cbd96
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 77 additions and 37 deletions

54
Include/opcode.h generated
View file

@ -157,32 +157,33 @@ extern "C" {
#define PRECALL_BOUND_METHOD 62
#define PRECALL_BUILTIN_CLASS 63
#define PRECALL_BUILTIN_FAST_WITH_KEYWORDS 64
#define PRECALL_NO_KW_BUILTIN_FAST 65
#define PRECALL_NO_KW_BUILTIN_O 66
#define PRECALL_NO_KW_ISINSTANCE 67
#define PRECALL_NO_KW_LEN 72
#define PRECALL_NO_KW_LIST_APPEND 73
#define PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST 76
#define PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 77
#define PRECALL_NO_KW_METHOD_DESCRIPTOR_O 78
#define PRECALL_NO_KW_STR_1 79
#define PRECALL_NO_KW_TUPLE_1 80
#define PRECALL_NO_KW_TYPE_1 81
#define PRECALL_PYFUNC 140
#define RESUME_QUICK 141
#define STORE_ATTR_ADAPTIVE 143
#define STORE_ATTR_INSTANCE_VALUE 150
#define STORE_ATTR_SLOT 153
#define STORE_ATTR_WITH_HINT 154
#define STORE_FAST__LOAD_FAST 158
#define STORE_FAST__STORE_FAST 159
#define STORE_SUBSCR_ADAPTIVE 161
#define STORE_SUBSCR_DICT 167
#define STORE_SUBSCR_LIST_INT 168
#define UNPACK_SEQUENCE_ADAPTIVE 169
#define UNPACK_SEQUENCE_LIST 170
#define UNPACK_SEQUENCE_TUPLE 173
#define UNPACK_SEQUENCE_TWO_TUPLE 174
#define PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 65
#define PRECALL_NO_KW_BUILTIN_FAST 66
#define PRECALL_NO_KW_BUILTIN_O 67
#define PRECALL_NO_KW_ISINSTANCE 72
#define PRECALL_NO_KW_LEN 73
#define PRECALL_NO_KW_LIST_APPEND 76
#define PRECALL_NO_KW_METHOD_DESCRIPTOR_FAST 77
#define PRECALL_NO_KW_METHOD_DESCRIPTOR_NOARGS 78
#define PRECALL_NO_KW_METHOD_DESCRIPTOR_O 79
#define PRECALL_NO_KW_STR_1 80
#define PRECALL_NO_KW_TUPLE_1 81
#define PRECALL_NO_KW_TYPE_1 140
#define PRECALL_PYFUNC 141
#define RESUME_QUICK 143
#define STORE_ATTR_ADAPTIVE 150
#define STORE_ATTR_INSTANCE_VALUE 153
#define STORE_ATTR_SLOT 154
#define STORE_ATTR_WITH_HINT 158
#define STORE_FAST__LOAD_FAST 159
#define STORE_FAST__STORE_FAST 161
#define STORE_SUBSCR_ADAPTIVE 167
#define STORE_SUBSCR_DICT 168
#define STORE_SUBSCR_LIST_INT 169
#define UNPACK_SEQUENCE_ADAPTIVE 170
#define UNPACK_SEQUENCE_LIST 173
#define UNPACK_SEQUENCE_TUPLE 174
#define UNPACK_SEQUENCE_TWO_TUPLE 175
#define DO_TRACING 255
extern const uint8_t _PyOpcode_Caches[256];
@ -347,6 +348,7 @@ const uint8_t _PyOpcode_Deopt[256] = {
[PRECALL_BOUND_METHOD] = PRECALL,
[PRECALL_BUILTIN_CLASS] = PRECALL,
[PRECALL_BUILTIN_FAST_WITH_KEYWORDS] = PRECALL,
[PRECALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = PRECALL,
[PRECALL_NO_KW_BUILTIN_FAST] = PRECALL,
[PRECALL_NO_KW_BUILTIN_O] = PRECALL,
[PRECALL_NO_KW_ISINSTANCE] = PRECALL,