mirror of
https://github.com/python/cpython
synced 2026-09-29 12:10:30 +03:00
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:
parent
00da0afa0d
commit
1ab6356ebe
19 changed files with 862 additions and 447 deletions
120
Lib/_opcode_metadata.py
generated
120
Lib/_opcode_metadata.py
generated
|
|
@ -88,7 +88,6 @@ _specializations = {
|
|||
"CALL": [
|
||||
"CALL_BOUND_METHOD_EXACT_ARGS",
|
||||
"CALL_PY_EXACT_ARGS",
|
||||
"CALL_PY_WITH_DEFAULTS",
|
||||
"CALL_TYPE_1",
|
||||
"CALL_STR_1",
|
||||
"CALL_TUPLE_1",
|
||||
|
|
@ -104,6 +103,9 @@ _specializations = {
|
|||
"CALL_METHOD_DESCRIPTOR_NOARGS",
|
||||
"CALL_METHOD_DESCRIPTOR_FAST",
|
||||
"CALL_ALLOC_AND_ENTER_INIT",
|
||||
"CALL_PY_GENERAL",
|
||||
"CALL_BOUND_METHOD_GENERAL",
|
||||
"CALL_NON_PY_GENERAL",
|
||||
],
|
||||
}
|
||||
|
||||
|
|
@ -123,63 +125,65 @@ _specialized_opmap = {
|
|||
'BINARY_SUBSCR_TUPLE_INT': 161,
|
||||
'CALL_ALLOC_AND_ENTER_INIT': 162,
|
||||
'CALL_BOUND_METHOD_EXACT_ARGS': 163,
|
||||
'CALL_BUILTIN_CLASS': 164,
|
||||
'CALL_BUILTIN_FAST': 165,
|
||||
'CALL_BUILTIN_FAST_WITH_KEYWORDS': 166,
|
||||
'CALL_BUILTIN_O': 167,
|
||||
'CALL_ISINSTANCE': 168,
|
||||
'CALL_LEN': 169,
|
||||
'CALL_LIST_APPEND': 170,
|
||||
'CALL_METHOD_DESCRIPTOR_FAST': 171,
|
||||
'CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS': 172,
|
||||
'CALL_METHOD_DESCRIPTOR_NOARGS': 173,
|
||||
'CALL_METHOD_DESCRIPTOR_O': 174,
|
||||
'CALL_PY_EXACT_ARGS': 175,
|
||||
'CALL_PY_WITH_DEFAULTS': 176,
|
||||
'CALL_STR_1': 177,
|
||||
'CALL_TUPLE_1': 178,
|
||||
'CALL_TYPE_1': 179,
|
||||
'COMPARE_OP_FLOAT': 180,
|
||||
'COMPARE_OP_INT': 181,
|
||||
'COMPARE_OP_STR': 182,
|
||||
'CONTAINS_OP_DICT': 183,
|
||||
'CONTAINS_OP_SET': 184,
|
||||
'FOR_ITER_GEN': 185,
|
||||
'FOR_ITER_LIST': 186,
|
||||
'FOR_ITER_RANGE': 187,
|
||||
'FOR_ITER_TUPLE': 188,
|
||||
'LOAD_ATTR_CLASS': 189,
|
||||
'LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN': 190,
|
||||
'LOAD_ATTR_INSTANCE_VALUE': 191,
|
||||
'LOAD_ATTR_METHOD_LAZY_DICT': 192,
|
||||
'LOAD_ATTR_METHOD_NO_DICT': 193,
|
||||
'LOAD_ATTR_METHOD_WITH_VALUES': 194,
|
||||
'LOAD_ATTR_MODULE': 195,
|
||||
'LOAD_ATTR_NONDESCRIPTOR_NO_DICT': 196,
|
||||
'LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES': 197,
|
||||
'LOAD_ATTR_PROPERTY': 198,
|
||||
'LOAD_ATTR_SLOT': 199,
|
||||
'LOAD_ATTR_WITH_HINT': 200,
|
||||
'LOAD_GLOBAL_BUILTIN': 201,
|
||||
'LOAD_GLOBAL_MODULE': 202,
|
||||
'LOAD_SUPER_ATTR_ATTR': 203,
|
||||
'LOAD_SUPER_ATTR_METHOD': 204,
|
||||
'RESUME_CHECK': 205,
|
||||
'SEND_GEN': 206,
|
||||
'STORE_ATTR_INSTANCE_VALUE': 207,
|
||||
'STORE_ATTR_SLOT': 208,
|
||||
'STORE_ATTR_WITH_HINT': 209,
|
||||
'STORE_SUBSCR_DICT': 210,
|
||||
'STORE_SUBSCR_LIST_INT': 211,
|
||||
'TO_BOOL_ALWAYS_TRUE': 212,
|
||||
'TO_BOOL_BOOL': 213,
|
||||
'TO_BOOL_INT': 214,
|
||||
'TO_BOOL_LIST': 215,
|
||||
'TO_BOOL_NONE': 216,
|
||||
'TO_BOOL_STR': 217,
|
||||
'UNPACK_SEQUENCE_LIST': 218,
|
||||
'UNPACK_SEQUENCE_TUPLE': 219,
|
||||
'UNPACK_SEQUENCE_TWO_TUPLE': 220,
|
||||
'CALL_BOUND_METHOD_GENERAL': 164,
|
||||
'CALL_BUILTIN_CLASS': 165,
|
||||
'CALL_BUILTIN_FAST': 166,
|
||||
'CALL_BUILTIN_FAST_WITH_KEYWORDS': 167,
|
||||
'CALL_BUILTIN_O': 168,
|
||||
'CALL_ISINSTANCE': 169,
|
||||
'CALL_LEN': 170,
|
||||
'CALL_LIST_APPEND': 171,
|
||||
'CALL_METHOD_DESCRIPTOR_FAST': 172,
|
||||
'CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS': 173,
|
||||
'CALL_METHOD_DESCRIPTOR_NOARGS': 174,
|
||||
'CALL_METHOD_DESCRIPTOR_O': 175,
|
||||
'CALL_NON_PY_GENERAL': 176,
|
||||
'CALL_PY_EXACT_ARGS': 177,
|
||||
'CALL_PY_GENERAL': 178,
|
||||
'CALL_STR_1': 179,
|
||||
'CALL_TUPLE_1': 180,
|
||||
'CALL_TYPE_1': 181,
|
||||
'COMPARE_OP_FLOAT': 182,
|
||||
'COMPARE_OP_INT': 183,
|
||||
'COMPARE_OP_STR': 184,
|
||||
'CONTAINS_OP_DICT': 185,
|
||||
'CONTAINS_OP_SET': 186,
|
||||
'FOR_ITER_GEN': 187,
|
||||
'FOR_ITER_LIST': 188,
|
||||
'FOR_ITER_RANGE': 189,
|
||||
'FOR_ITER_TUPLE': 190,
|
||||
'LOAD_ATTR_CLASS': 191,
|
||||
'LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN': 192,
|
||||
'LOAD_ATTR_INSTANCE_VALUE': 193,
|
||||
'LOAD_ATTR_METHOD_LAZY_DICT': 194,
|
||||
'LOAD_ATTR_METHOD_NO_DICT': 195,
|
||||
'LOAD_ATTR_METHOD_WITH_VALUES': 196,
|
||||
'LOAD_ATTR_MODULE': 197,
|
||||
'LOAD_ATTR_NONDESCRIPTOR_NO_DICT': 198,
|
||||
'LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES': 199,
|
||||
'LOAD_ATTR_PROPERTY': 200,
|
||||
'LOAD_ATTR_SLOT': 201,
|
||||
'LOAD_ATTR_WITH_HINT': 202,
|
||||
'LOAD_GLOBAL_BUILTIN': 203,
|
||||
'LOAD_GLOBAL_MODULE': 204,
|
||||
'LOAD_SUPER_ATTR_ATTR': 205,
|
||||
'LOAD_SUPER_ATTR_METHOD': 206,
|
||||
'RESUME_CHECK': 207,
|
||||
'SEND_GEN': 208,
|
||||
'STORE_ATTR_INSTANCE_VALUE': 209,
|
||||
'STORE_ATTR_SLOT': 210,
|
||||
'STORE_ATTR_WITH_HINT': 211,
|
||||
'STORE_SUBSCR_DICT': 212,
|
||||
'STORE_SUBSCR_LIST_INT': 213,
|
||||
'TO_BOOL_ALWAYS_TRUE': 214,
|
||||
'TO_BOOL_BOOL': 215,
|
||||
'TO_BOOL_INT': 216,
|
||||
'TO_BOOL_LIST': 217,
|
||||
'TO_BOOL_NONE': 218,
|
||||
'TO_BOOL_STR': 219,
|
||||
'UNPACK_SEQUENCE_LIST': 220,
|
||||
'UNPACK_SEQUENCE_TUPLE': 221,
|
||||
'UNPACK_SEQUENCE_TWO_TUPLE': 222,
|
||||
}
|
||||
|
||||
opmap = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue