GH-118095: Use broader specializations of CALL in tier 1, for better tier 2 support of calls. (GH-118322)

* Add CALL_PY_GENERAL, CALL_BOUND_METHOD_GENERAL and call CALL_NON_PY_GENERAL specializations.

* Remove CALL_PY_WITH_DEFAULTS specialization

* Use CALL_NON_PY_GENERAL in more cases when otherwise failing to specialize
This commit is contained in:
Mark Shannon 2024-05-04 12:11:11 +01:00 • committed by GitHub
parent 00da0afa0d
commit 1ab6356ebe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
19 changed files with 862 additions and 447 deletions

116
Include/opcode_ids.h generated
View file

@ -144,63 +144,65 @@ extern "C" {
#define BINARY_SUBSCR_TUPLE_INT 161
#define CALL_ALLOC_AND_ENTER_INIT 162
#define CALL_BOUND_METHOD_EXACT_ARGS 163
#define CALL_BUILTIN_CLASS 164
#define CALL_BUILTIN_FAST 165
#define CALL_BUILTIN_FAST_WITH_KEYWORDS 166
#define CALL_BUILTIN_O 167
#define CALL_ISINSTANCE 168
#define CALL_LEN 169
#define CALL_LIST_APPEND 170
#define CALL_METHOD_DESCRIPTOR_FAST 171
#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 172
#define CALL_METHOD_DESCRIPTOR_NOARGS 173
#define CALL_METHOD_DESCRIPTOR_O 174
#define CALL_PY_EXACT_ARGS 175
#define CALL_PY_WITH_DEFAULTS 176
#define CALL_STR_1 177
#define CALL_TUPLE_1 178
#define CALL_TYPE_1 179
#define COMPARE_OP_FLOAT 180
#define COMPARE_OP_INT 181
#define COMPARE_OP_STR 182
#define CONTAINS_OP_DICT 183
#define CONTAINS_OP_SET 184
#define FOR_ITER_GEN 185
#define FOR_ITER_LIST 186
#define FOR_ITER_RANGE 187
#define FOR_ITER_TUPLE 188
#define LOAD_ATTR_CLASS 189
#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 190
#define LOAD_ATTR_INSTANCE_VALUE 191
#define LOAD_ATTR_METHOD_LAZY_DICT 192
#define LOAD_ATTR_METHOD_NO_DICT 193
#define LOAD_ATTR_METHOD_WITH_VALUES 194
#define LOAD_ATTR_MODULE 195
#define LOAD_ATTR_NONDESCRIPTOR_NO_DICT 196
#define LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 197
#define LOAD_ATTR_PROPERTY 198
#define LOAD_ATTR_SLOT 199
#define LOAD_ATTR_WITH_HINT 200
#define LOAD_GLOBAL_BUILTIN 201
#define LOAD_GLOBAL_MODULE 202
#define LOAD_SUPER_ATTR_ATTR 203
#define LOAD_SUPER_ATTR_METHOD 204
#define RESUME_CHECK 205
#define SEND_GEN 206
#define STORE_ATTR_INSTANCE_VALUE 207
#define STORE_ATTR_SLOT 208
#define STORE_ATTR_WITH_HINT 209
#define STORE_SUBSCR_DICT 210
#define STORE_SUBSCR_LIST_INT 211
#define TO_BOOL_ALWAYS_TRUE 212
#define TO_BOOL_BOOL 213
#define TO_BOOL_INT 214
#define TO_BOOL_LIST 215
#define TO_BOOL_NONE 216
#define TO_BOOL_STR 217
#define UNPACK_SEQUENCE_LIST 218
#define UNPACK_SEQUENCE_TUPLE 219
#define UNPACK_SEQUENCE_TWO_TUPLE 220
#define CALL_BOUND_METHOD_GENERAL 164
#define CALL_BUILTIN_CLASS 165
#define CALL_BUILTIN_FAST 166
#define CALL_BUILTIN_FAST_WITH_KEYWORDS 167
#define CALL_BUILTIN_O 168
#define CALL_ISINSTANCE 169
#define CALL_LEN 170
#define CALL_LIST_APPEND 171
#define CALL_METHOD_DESCRIPTOR_FAST 172
#define CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS 173
#define CALL_METHOD_DESCRIPTOR_NOARGS 174
#define CALL_METHOD_DESCRIPTOR_O 175
#define CALL_NON_PY_GENERAL 176
#define CALL_PY_EXACT_ARGS 177
#define CALL_PY_GENERAL 178
#define CALL_STR_1 179
#define CALL_TUPLE_1 180
#define CALL_TYPE_1 181
#define COMPARE_OP_FLOAT 182
#define COMPARE_OP_INT 183
#define COMPARE_OP_STR 184
#define CONTAINS_OP_DICT 185
#define CONTAINS_OP_SET 186
#define FOR_ITER_GEN 187
#define FOR_ITER_LIST 188
#define FOR_ITER_RANGE 189
#define FOR_ITER_TUPLE 190
#define LOAD_ATTR_CLASS 191
#define LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN 192
#define LOAD_ATTR_INSTANCE_VALUE 193
#define LOAD_ATTR_METHOD_LAZY_DICT 194
#define LOAD_ATTR_METHOD_NO_DICT 195
#define LOAD_ATTR_METHOD_WITH_VALUES 196
#define LOAD_ATTR_MODULE 197
#define LOAD_ATTR_NONDESCRIPTOR_NO_DICT 198
#define LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES 199
#define LOAD_ATTR_PROPERTY 200
#define LOAD_ATTR_SLOT 201
#define LOAD_ATTR_WITH_HINT 202
#define LOAD_GLOBAL_BUILTIN 203
#define LOAD_GLOBAL_MODULE 204
#define LOAD_SUPER_ATTR_ATTR 205
#define LOAD_SUPER_ATTR_METHOD 206
#define RESUME_CHECK 207
#define SEND_GEN 208
#define STORE_ATTR_INSTANCE_VALUE 209
#define STORE_ATTR_SLOT 210
#define STORE_ATTR_WITH_HINT 211
#define STORE_SUBSCR_DICT 212
#define STORE_SUBSCR_LIST_INT 213
#define TO_BOOL_ALWAYS_TRUE 214
#define TO_BOOL_BOOL 215
#define TO_BOOL_INT 216
#define TO_BOOL_LIST 217
#define TO_BOOL_NONE 218
#define TO_BOOL_STR 219
#define UNPACK_SEQUENCE_LIST 220
#define UNPACK_SEQUENCE_TUPLE 221
#define UNPACK_SEQUENCE_TWO_TUPLE 222
#define INSTRUMENTED_RESUME 236
#define INSTRUMENTED_END_FOR 237
#define INSTRUMENTED_END_SEND 238