gh-100239: specialize BINARY_OP/SUBSCR for list-slice (#132626)

This commit is contained in:
Irit Katriel 2025-05-01 11:28:52 +01:00 committed by GitHub
parent 3831752689
commit 5529213d4e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 552 additions and 354 deletions

147
Include/opcode_ids.h generated
View file

@ -141,79 +141,80 @@ extern "C" {
#define BINARY_OP_SUBSCR_DICT 135
#define BINARY_OP_SUBSCR_GETITEM 136
#define BINARY_OP_SUBSCR_LIST_INT 137
#define BINARY_OP_SUBSCR_STR_INT 138
#define BINARY_OP_SUBSCR_TUPLE_INT 139
#define BINARY_OP_SUBTRACT_FLOAT 140
#define BINARY_OP_SUBTRACT_INT 141
#define CALL_ALLOC_AND_ENTER_INIT 142
#define CALL_BOUND_METHOD_EXACT_ARGS 143
#define CALL_BOUND_METHOD_GENERAL 144
#define CALL_BUILTIN_CLASS 145
#define CALL_BUILTIN_FAST 146
#define CALL_BUILTIN_FAST_WITH_KEYWORDS 147
#define CALL_BUILTIN_O 148
#define CALL_ISINSTANCE 149
#define CALL_KW_BOUND_METHOD 150
#define CALL_KW_NON_PY 151
#define CALL_KW_PY 152
#define CALL_LEN 153
#define CALL_LIST_APPEND 154
#define CALL_METHOD_DESCRIPTOR_FAST 155
#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 156
#define CALL_METHOD_DESCRIPTOR_NOARGS 157
#define CALL_METHOD_DESCRIPTOR_O 158
#define CALL_NON_PY_GENERAL 159
#define CALL_PY_EXACT_ARGS 160
#define CALL_PY_GENERAL 161
#define CALL_STR_1 162
#define CALL_TUPLE_1 163
#define CALL_TYPE_1 164
#define COMPARE_OP_FLOAT 165
#define COMPARE_OP_INT 166
#define COMPARE_OP_STR 167
#define CONTAINS_OP_DICT 168
#define CONTAINS_OP_SET 169
#define FOR_ITER_GEN 170
#define FOR_ITER_LIST 171
#define FOR_ITER_RANGE 172
#define FOR_ITER_TUPLE 173
#define JUMP_BACKWARD_JIT 174
#define JUMP_BACKWARD_NO_JIT 175
#define LOAD_ATTR_CLASS 176
#define LOAD_ATTR_CLASS_WITH_METACLASS_CHECK 177
#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 178
#define LOAD_ATTR_INSTANCE_VALUE 179
#define LOAD_ATTR_METHOD_LAZY_DICT 180
#define LOAD_ATTR_METHOD_NO_DICT 181
#define LOAD_ATTR_METHOD_WITH_VALUES 182
#define LOAD_ATTR_MODULE 183
#define LOAD_ATTR_NONDESCRIPTOR_NO_DICT 184
#define LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 185
#define LOAD_ATTR_PROPERTY 186
#define LOAD_ATTR_SLOT 187
#define LOAD_ATTR_WITH_HINT 188
#define LOAD_CONST_IMMORTAL 189
#define LOAD_CONST_MORTAL 190
#define LOAD_GLOBAL_BUILTIN 191
#define LOAD_GLOBAL_MODULE 192
#define LOAD_SUPER_ATTR_ATTR 193
#define LOAD_SUPER_ATTR_METHOD 194
#define RESUME_CHECK 195
#define SEND_GEN 196
#define STORE_ATTR_INSTANCE_VALUE 197
#define STORE_ATTR_SLOT 198
#define STORE_ATTR_WITH_HINT 199
#define STORE_SUBSCR_DICT 200
#define STORE_SUBSCR_LIST_INT 201
#define TO_BOOL_ALWAYS_TRUE 202
#define TO_BOOL_BOOL 203
#define TO_BOOL_INT 204
#define TO_BOOL_LIST 205
#define TO_BOOL_NONE 206
#define TO_BOOL_STR 207
#define UNPACK_SEQUENCE_LIST 208
#define UNPACK_SEQUENCE_TUPLE 209
#define UNPACK_SEQUENCE_TWO_TUPLE 210
#define BINARY_OP_SUBSCR_LIST_SLICE 138
#define BINARY_OP_SUBSCR_STR_INT 139
#define BINARY_OP_SUBSCR_TUPLE_INT 140
#define BINARY_OP_SUBTRACT_FLOAT 141
#define BINARY_OP_SUBTRACT_INT 142
#define CALL_ALLOC_AND_ENTER_INIT 143
#define CALL_BOUND_METHOD_EXACT_ARGS 144
#define CALL_BOUND_METHOD_GENERAL 145
#define CALL_BUILTIN_CLASS 146
#define CALL_BUILTIN_FAST 147
#define CALL_BUILTIN_FAST_WITH_KEYWORDS 148
#define CALL_BUILTIN_O 149
#define CALL_ISINSTANCE 150
#define CALL_KW_BOUND_METHOD 151
#define CALL_KW_NON_PY 152
#define CALL_KW_PY 153
#define CALL_LEN 154
#define CALL_LIST_APPEND 155
#define CALL_METHOD_DESCRIPTOR_FAST 156
#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 157
#define CALL_METHOD_DESCRIPTOR_NOARGS 158
#define CALL_METHOD_DESCRIPTOR_O 159
#define CALL_NON_PY_GENERAL 160
#define CALL_PY_EXACT_ARGS 161
#define CALL_PY_GENERAL 162
#define CALL_STR_1 163
#define CALL_TUPLE_1 164
#define CALL_TYPE_1 165
#define COMPARE_OP_FLOAT 166
#define COMPARE_OP_INT 167
#define COMPARE_OP_STR 168
#define CONTAINS_OP_DICT 169
#define CONTAINS_OP_SET 170
#define FOR_ITER_GEN 171
#define FOR_ITER_LIST 172
#define FOR_ITER_RANGE 173
#define FOR_ITER_TUPLE 174
#define JUMP_BACKWARD_JIT 175
#define JUMP_BACKWARD_NO_JIT 176
#define LOAD_ATTR_CLASS 177
#define LOAD_ATTR_CLASS_WITH_METACLASS_CHECK 178
#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 179
#define LOAD_ATTR_INSTANCE_VALUE 180
#define LOAD_ATTR_METHOD_LAZY_DICT 181
#define LOAD_ATTR_METHOD_NO_DICT 182
#define LOAD_ATTR_METHOD_WITH_VALUES 183
#define LOAD_ATTR_MODULE 184
#define LOAD_ATTR_NONDESCRIPTOR_NO_DICT 185
#define LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 186
#define LOAD_ATTR_PROPERTY 187
#define LOAD_ATTR_SLOT 188
#define LOAD_ATTR_WITH_HINT 189
#define LOAD_CONST_IMMORTAL 190
#define LOAD_CONST_MORTAL 191
#define LOAD_GLOBAL_BUILTIN 192
#define LOAD_GLOBAL_MODULE 193
#define LOAD_SUPER_ATTR_ATTR 194
#define LOAD_SUPER_ATTR_METHOD 195
#define RESUME_CHECK 196
#define SEND_GEN 197
#define STORE_ATTR_INSTANCE_VALUE 198
#define STORE_ATTR_SLOT 199
#define STORE_ATTR_WITH_HINT 200
#define STORE_SUBSCR_DICT 201
#define STORE_SUBSCR_LIST_INT 202
#define TO_BOOL_ALWAYS_TRUE 203
#define TO_BOOL_BOOL 204
#define TO_BOOL_INT 205
#define TO_BOOL_LIST 206
#define TO_BOOL_NONE 207
#define TO_BOOL_STR 208
#define UNPACK_SEQUENCE_LIST 209
#define UNPACK_SEQUENCE_TUPLE 210
#define UNPACK_SEQUENCE_TWO_TUPLE 211
#define INSTRUMENTED_END_FOR 234
#define INSTRUMENTED_POP_ITER 235
#define INSTRUMENTED_END_SEND 236