GH-93911: Specialize LOAD_ATTR for custom __getattribute__ (GH-93988)

This commit is contained in:
Ken Jin 2022-08-17 19:37:07 +08:00 committed by GitHub
parent 36517101dd
commit 7276ca25f5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 219 additions and 86 deletions

59
Include/opcode.h generated
View file

@ -176,35 +176,36 @@ extern "C" {
#define JUMP_BACKWARD_QUICK 66
#define LOAD_ATTR_ADAPTIVE 67
#define LOAD_ATTR_CLASS 72
#define LOAD_ATTR_INSTANCE_VALUE 73
#define LOAD_ATTR_MODULE 76
#define LOAD_ATTR_PROPERTY 77
#define LOAD_ATTR_SLOT 78
#define LOAD_ATTR_WITH_HINT 79
#define LOAD_ATTR_METHOD_LAZY_DICT 80
#define LOAD_ATTR_METHOD_NO_DICT 81
#define LOAD_ATTR_METHOD_WITH_DICT 86
#define LOAD_ATTR_METHOD_WITH_VALUES 113
#define LOAD_CONST__LOAD_FAST 121
#define LOAD_FAST__LOAD_CONST 141
#define LOAD_FAST__LOAD_FAST 143
#define LOAD_GLOBAL_ADAPTIVE 153
#define LOAD_GLOBAL_BUILTIN 154
#define LOAD_GLOBAL_MODULE 158
#define RESUME_QUICK 159
#define STORE_ATTR_ADAPTIVE 160
#define STORE_ATTR_INSTANCE_VALUE 161
#define STORE_ATTR_SLOT 166
#define STORE_ATTR_WITH_HINT 167
#define STORE_FAST__LOAD_FAST 168
#define STORE_FAST__STORE_FAST 169
#define STORE_SUBSCR_ADAPTIVE 170
#define STORE_SUBSCR_DICT 177
#define STORE_SUBSCR_LIST_INT 178
#define UNPACK_SEQUENCE_ADAPTIVE 179
#define UNPACK_SEQUENCE_LIST 180
#define UNPACK_SEQUENCE_TUPLE 181
#define UNPACK_SEQUENCE_TWO_TUPLE 182
#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 73
#define LOAD_ATTR_INSTANCE_VALUE 76
#define LOAD_ATTR_MODULE 77
#define LOAD_ATTR_PROPERTY 78
#define LOAD_ATTR_SLOT 79
#define LOAD_ATTR_WITH_HINT 80
#define LOAD_ATTR_METHOD_LAZY_DICT 81
#define LOAD_ATTR_METHOD_NO_DICT 86
#define LOAD_ATTR_METHOD_WITH_DICT 113
#define LOAD_ATTR_METHOD_WITH_VALUES 121
#define LOAD_CONST__LOAD_FAST 141
#define LOAD_FAST__LOAD_CONST 143
#define LOAD_FAST__LOAD_FAST 153
#define LOAD_GLOBAL_ADAPTIVE 154
#define LOAD_GLOBAL_BUILTIN 158
#define LOAD_GLOBAL_MODULE 159
#define RESUME_QUICK 160
#define STORE_ATTR_ADAPTIVE 161
#define STORE_ATTR_INSTANCE_VALUE 166
#define STORE_ATTR_SLOT 167
#define STORE_ATTR_WITH_HINT 168
#define STORE_FAST__LOAD_FAST 169
#define STORE_FAST__STORE_FAST 170
#define STORE_SUBSCR_ADAPTIVE 177
#define STORE_SUBSCR_DICT 178
#define STORE_SUBSCR_LIST_INT 179
#define UNPACK_SEQUENCE_ADAPTIVE 180
#define UNPACK_SEQUENCE_LIST 181
#define UNPACK_SEQUENCE_TUPLE 182
#define UNPACK_SEQUENCE_TWO_TUPLE 183
#define DO_TRACING 255
#define HAS_ARG(op) ((((op) >= HAVE_ARGUMENT) && (!IS_PSEUDO_OPCODE(op)))\