mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
gh-100239: specialize long tail of binary operations (#128722)
This commit is contained in:
parent
e81fe940c9
commit
3893a92d95
21 changed files with 796 additions and 492 deletions
154
Lib/_opcode_metadata.py
generated
154
Lib/_opcode_metadata.py
generated
|
@ -26,6 +26,7 @@ _specializations = {
|
|||
"BINARY_OP_ADD_FLOAT",
|
||||
"BINARY_OP_SUBTRACT_FLOAT",
|
||||
"BINARY_OP_ADD_UNICODE",
|
||||
"BINARY_OP_EXTEND",
|
||||
"BINARY_OP_INPLACE_ADD_UNICODE",
|
||||
],
|
||||
"BINARY_SUBSCR": [
|
||||
|
@ -123,83 +124,84 @@ _specialized_opmap = {
|
|||
'BINARY_OP_ADD_FLOAT': 150,
|
||||
'BINARY_OP_ADD_INT': 151,
|
||||
'BINARY_OP_ADD_UNICODE': 152,
|
||||
'BINARY_OP_EXTEND': 153,
|
||||
'BINARY_OP_INPLACE_ADD_UNICODE': 3,
|
||||
'BINARY_OP_MULTIPLY_FLOAT': 153,
|
||||
'BINARY_OP_MULTIPLY_INT': 154,
|
||||
'BINARY_OP_SUBTRACT_FLOAT': 155,
|
||||
'BINARY_OP_SUBTRACT_INT': 156,
|
||||
'BINARY_SUBSCR_DICT': 157,
|
||||
'BINARY_SUBSCR_GETITEM': 158,
|
||||
'BINARY_SUBSCR_LIST_INT': 159,
|
||||
'BINARY_SUBSCR_STR_INT': 160,
|
||||
'BINARY_SUBSCR_TUPLE_INT': 161,
|
||||
'CALL_ALLOC_AND_ENTER_INIT': 162,
|
||||
'CALL_BOUND_METHOD_EXACT_ARGS': 163,
|
||||
'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_KW_BOUND_METHOD': 170,
|
||||
'CALL_KW_NON_PY': 171,
|
||||
'CALL_KW_PY': 172,
|
||||
'CALL_LEN': 173,
|
||||
'CALL_LIST_APPEND': 174,
|
||||
'CALL_METHOD_DESCRIPTOR_FAST': 175,
|
||||
'CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS': 176,
|
||||
'CALL_METHOD_DESCRIPTOR_NOARGS': 177,
|
||||
'CALL_METHOD_DESCRIPTOR_O': 178,
|
||||
'CALL_NON_PY_GENERAL': 179,
|
||||
'CALL_PY_EXACT_ARGS': 180,
|
||||
'CALL_PY_GENERAL': 181,
|
||||
'CALL_STR_1': 182,
|
||||
'CALL_TUPLE_1': 183,
|
||||
'CALL_TYPE_1': 184,
|
||||
'COMPARE_OP_FLOAT': 185,
|
||||
'COMPARE_OP_INT': 186,
|
||||
'COMPARE_OP_STR': 187,
|
||||
'CONTAINS_OP_DICT': 188,
|
||||
'CONTAINS_OP_SET': 189,
|
||||
'FOR_ITER_GEN': 190,
|
||||
'FOR_ITER_LIST': 191,
|
||||
'FOR_ITER_RANGE': 192,
|
||||
'FOR_ITER_TUPLE': 193,
|
||||
'LOAD_ATTR_CLASS': 194,
|
||||
'LOAD_ATTR_CLASS_WITH_METACLASS_CHECK': 195,
|
||||
'LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN': 196,
|
||||
'LOAD_ATTR_INSTANCE_VALUE': 197,
|
||||
'LOAD_ATTR_METHOD_LAZY_DICT': 198,
|
||||
'LOAD_ATTR_METHOD_NO_DICT': 199,
|
||||
'LOAD_ATTR_METHOD_WITH_VALUES': 200,
|
||||
'LOAD_ATTR_MODULE': 201,
|
||||
'LOAD_ATTR_NONDESCRIPTOR_NO_DICT': 202,
|
||||
'LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES': 203,
|
||||
'LOAD_ATTR_PROPERTY': 204,
|
||||
'LOAD_ATTR_SLOT': 205,
|
||||
'LOAD_ATTR_WITH_HINT': 206,
|
||||
'LOAD_CONST_IMMORTAL': 207,
|
||||
'LOAD_CONST_MORTAL': 208,
|
||||
'LOAD_GLOBAL_BUILTIN': 209,
|
||||
'LOAD_GLOBAL_MODULE': 210,
|
||||
'LOAD_SUPER_ATTR_ATTR': 211,
|
||||
'LOAD_SUPER_ATTR_METHOD': 212,
|
||||
'RESUME_CHECK': 213,
|
||||
'SEND_GEN': 214,
|
||||
'STORE_ATTR_INSTANCE_VALUE': 215,
|
||||
'STORE_ATTR_SLOT': 216,
|
||||
'STORE_ATTR_WITH_HINT': 217,
|
||||
'STORE_SUBSCR_DICT': 218,
|
||||
'STORE_SUBSCR_LIST_INT': 219,
|
||||
'TO_BOOL_ALWAYS_TRUE': 220,
|
||||
'TO_BOOL_BOOL': 221,
|
||||
'TO_BOOL_INT': 222,
|
||||
'TO_BOOL_LIST': 223,
|
||||
'TO_BOOL_NONE': 224,
|
||||
'TO_BOOL_STR': 225,
|
||||
'UNPACK_SEQUENCE_LIST': 226,
|
||||
'UNPACK_SEQUENCE_TUPLE': 227,
|
||||
'UNPACK_SEQUENCE_TWO_TUPLE': 228,
|
||||
'BINARY_OP_MULTIPLY_FLOAT': 154,
|
||||
'BINARY_OP_MULTIPLY_INT': 155,
|
||||
'BINARY_OP_SUBTRACT_FLOAT': 156,
|
||||
'BINARY_OP_SUBTRACT_INT': 157,
|
||||
'BINARY_SUBSCR_DICT': 158,
|
||||
'BINARY_SUBSCR_GETITEM': 159,
|
||||
'BINARY_SUBSCR_LIST_INT': 160,
|
||||
'BINARY_SUBSCR_STR_INT': 161,
|
||||
'BINARY_SUBSCR_TUPLE_INT': 162,
|
||||
'CALL_ALLOC_AND_ENTER_INIT': 163,
|
||||
'CALL_BOUND_METHOD_EXACT_ARGS': 164,
|
||||
'CALL_BOUND_METHOD_GENERAL': 165,
|
||||
'CALL_BUILTIN_CLASS': 166,
|
||||
'CALL_BUILTIN_FAST': 167,
|
||||
'CALL_BUILTIN_FAST_WITH_KEYWORDS': 168,
|
||||
'CALL_BUILTIN_O': 169,
|
||||
'CALL_ISINSTANCE': 170,
|
||||
'CALL_KW_BOUND_METHOD': 171,
|
||||
'CALL_KW_NON_PY': 172,
|
||||
'CALL_KW_PY': 173,
|
||||
'CALL_LEN': 174,
|
||||
'CALL_LIST_APPEND': 175,
|
||||
'CALL_METHOD_DESCRIPTOR_FAST': 176,
|
||||
'CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS': 177,
|
||||
'CALL_METHOD_DESCRIPTOR_NOARGS': 178,
|
||||
'CALL_METHOD_DESCRIPTOR_O': 179,
|
||||
'CALL_NON_PY_GENERAL': 180,
|
||||
'CALL_PY_EXACT_ARGS': 181,
|
||||
'CALL_PY_GENERAL': 182,
|
||||
'CALL_STR_1': 183,
|
||||
'CALL_TUPLE_1': 184,
|
||||
'CALL_TYPE_1': 185,
|
||||
'COMPARE_OP_FLOAT': 186,
|
||||
'COMPARE_OP_INT': 187,
|
||||
'COMPARE_OP_STR': 188,
|
||||
'CONTAINS_OP_DICT': 189,
|
||||
'CONTAINS_OP_SET': 190,
|
||||
'FOR_ITER_GEN': 191,
|
||||
'FOR_ITER_LIST': 192,
|
||||
'FOR_ITER_RANGE': 193,
|
||||
'FOR_ITER_TUPLE': 194,
|
||||
'LOAD_ATTR_CLASS': 195,
|
||||
'LOAD_ATTR_CLASS_WITH_METACLASS_CHECK': 196,
|
||||
'LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN': 197,
|
||||
'LOAD_ATTR_INSTANCE_VALUE': 198,
|
||||
'LOAD_ATTR_METHOD_LAZY_DICT': 199,
|
||||
'LOAD_ATTR_METHOD_NO_DICT': 200,
|
||||
'LOAD_ATTR_METHOD_WITH_VALUES': 201,
|
||||
'LOAD_ATTR_MODULE': 202,
|
||||
'LOAD_ATTR_NONDESCRIPTOR_NO_DICT': 203,
|
||||
'LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES': 204,
|
||||
'LOAD_ATTR_PROPERTY': 205,
|
||||
'LOAD_ATTR_SLOT': 206,
|
||||
'LOAD_ATTR_WITH_HINT': 207,
|
||||
'LOAD_CONST_IMMORTAL': 208,
|
||||
'LOAD_CONST_MORTAL': 209,
|
||||
'LOAD_GLOBAL_BUILTIN': 210,
|
||||
'LOAD_GLOBAL_MODULE': 211,
|
||||
'LOAD_SUPER_ATTR_ATTR': 212,
|
||||
'LOAD_SUPER_ATTR_METHOD': 213,
|
||||
'RESUME_CHECK': 214,
|
||||
'SEND_GEN': 215,
|
||||
'STORE_ATTR_INSTANCE_VALUE': 216,
|
||||
'STORE_ATTR_SLOT': 217,
|
||||
'STORE_ATTR_WITH_HINT': 218,
|
||||
'STORE_SUBSCR_DICT': 219,
|
||||
'STORE_SUBSCR_LIST_INT': 220,
|
||||
'TO_BOOL_ALWAYS_TRUE': 221,
|
||||
'TO_BOOL_BOOL': 222,
|
||||
'TO_BOOL_INT': 223,
|
||||
'TO_BOOL_LIST': 224,
|
||||
'TO_BOOL_NONE': 225,
|
||||
'TO_BOOL_STR': 226,
|
||||
'UNPACK_SEQUENCE_LIST': 227,
|
||||
'UNPACK_SEQUENCE_TUPLE': 228,
|
||||
'UNPACK_SEQUENCE_TWO_TUPLE': 229,
|
||||
}
|
||||
|
||||
opmap = {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue