Revert "GH-128914: Remove conditional stack effects from bytecodes.c and the code generators (GH-128918)" (GH-129202)

The commit introduced a ~2.5-3% regression in the free threading build.

This reverts commit ab61d3f430.
This commit is contained in:
Sam Gross 2025-01-23 04:26:25 -05:00 committed by GitHub
parent d7d066c3ab
commit a10f99375e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
44 changed files with 1679 additions and 1460 deletions

207
Lib/_opcode_metadata.py generated
View file

@ -59,9 +59,7 @@ _specializations = {
],
"LOAD_SUPER_ATTR": [
"LOAD_SUPER_ATTR_ATTR",
],
"LOAD_SUPER_METHOD": [
"LOAD_SUPER_METHOD_METHOD",
"LOAD_SUPER_ATTR_METHOD",
],
"LOAD_ATTR": [
"LOAD_ATTR_INSTANCE_VALUE",
@ -72,14 +70,12 @@ _specializations = {
"LOAD_ATTR_CLASS_WITH_METACLASS_CHECK",
"LOAD_ATTR_PROPERTY",
"LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN",
"LOAD_ATTR_METHOD_WITH_VALUES",
"LOAD_ATTR_METHOD_NO_DICT",
"LOAD_ATTR_METHOD_LAZY_DICT",
"LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES",
"LOAD_ATTR_NONDESCRIPTOR_NO_DICT",
],
"LOAD_METHOD": [
"LOAD_METHOD_WITH_VALUES",
"LOAD_METHOD_NO_DICT",
"LOAD_METHOD_LAZY_DICT",
],
"COMPARE_OP": [
"COMPARE_OP_FLOAT",
"COMPARE_OP_INT",
@ -175,21 +171,21 @@ _specialized_opmap = {
'LOAD_ATTR_CLASS_WITH_METACLASS_CHECK': 196,
'LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN': 197,
'LOAD_ATTR_INSTANCE_VALUE': 198,
'LOAD_ATTR_MODULE': 199,
'LOAD_ATTR_NONDESCRIPTOR_NO_DICT': 200,
'LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES': 201,
'LOAD_ATTR_PROPERTY': 202,
'LOAD_ATTR_SLOT': 203,
'LOAD_ATTR_WITH_HINT': 204,
'LOAD_CONST_IMMORTAL': 205,
'LOAD_CONST_MORTAL': 206,
'LOAD_GLOBAL_BUILTIN': 207,
'LOAD_GLOBAL_MODULE': 208,
'LOAD_METHOD_LAZY_DICT': 209,
'LOAD_METHOD_NO_DICT': 210,
'LOAD_METHOD_WITH_VALUES': 211,
'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_METHOD_METHOD': 213,
'LOAD_SUPER_ATTR_METHOD': 213,
'RESUME_CHECK': 214,
'SEND_GEN': 215,
'STORE_ATTR_INSTANCE_VALUE': 216,
@ -216,54 +212,54 @@ opmap = {
'ENTER_EXECUTOR': 255,
'BINARY_SLICE': 1,
'BINARY_SUBSCR': 2,
'CALL_FUNCTION_EX': 4,
'CHECK_EG_MATCH': 5,
'CHECK_EXC_MATCH': 6,
'CLEANUP_THROW': 7,
'DELETE_SUBSCR': 8,
'END_ASYNC_FOR': 9,
'END_FOR': 10,
'END_SEND': 11,
'EXIT_INIT_CHECK': 12,
'FORMAT_SIMPLE': 13,
'FORMAT_WITH_SPEC': 14,
'GET_AITER': 15,
'GET_ANEXT': 16,
'GET_ITER': 18,
'GET_LEN': 19,
'GET_YIELD_FROM_ITER': 20,
'INTERPRETER_EXIT': 21,
'LOAD_BUILD_CLASS': 22,
'LOAD_LOCALS': 23,
'MAKE_FUNCTION': 24,
'MATCH_KEYS': 25,
'MATCH_MAPPING': 26,
'MATCH_SEQUENCE': 27,
'NOP': 28,
'NOT_TAKEN': 29,
'POP_EXCEPT': 30,
'POP_ITER': 31,
'POP_TOP': 32,
'PUSH_EXC_INFO': 33,
'PUSH_NULL': 34,
'RETURN_GENERATOR': 35,
'RETURN_VALUE': 36,
'SETUP_ANNOTATIONS': 37,
'STORE_SLICE': 38,
'STORE_SUBSCR': 39,
'TO_BOOL': 40,
'UNARY_INVERT': 41,
'UNARY_NEGATIVE': 42,
'UNARY_NOT': 43,
'WITH_EXCEPT_START': 44,
'BINARY_OP': 45,
'BUILD_LIST': 46,
'BUILD_MAP': 47,
'BUILD_SET': 48,
'BUILD_SLICE': 49,
'BUILD_STRING': 50,
'BUILD_TUPLE': 51,
'CALL': 52,
'CHECK_EG_MATCH': 4,
'CHECK_EXC_MATCH': 5,
'CLEANUP_THROW': 6,
'DELETE_SUBSCR': 7,
'END_ASYNC_FOR': 8,
'END_FOR': 9,
'END_SEND': 10,
'EXIT_INIT_CHECK': 11,
'FORMAT_SIMPLE': 12,
'FORMAT_WITH_SPEC': 13,
'GET_AITER': 14,
'GET_ANEXT': 15,
'GET_ITER': 16,
'GET_LEN': 18,
'GET_YIELD_FROM_ITER': 19,
'INTERPRETER_EXIT': 20,
'LOAD_BUILD_CLASS': 21,
'LOAD_LOCALS': 22,
'MAKE_FUNCTION': 23,
'MATCH_KEYS': 24,
'MATCH_MAPPING': 25,
'MATCH_SEQUENCE': 26,
'NOP': 27,
'NOT_TAKEN': 28,
'POP_EXCEPT': 29,
'POP_ITER': 30,
'POP_TOP': 31,
'PUSH_EXC_INFO': 32,
'PUSH_NULL': 33,
'RETURN_GENERATOR': 34,
'RETURN_VALUE': 35,
'SETUP_ANNOTATIONS': 36,
'STORE_SLICE': 37,
'STORE_SUBSCR': 38,
'TO_BOOL': 39,
'UNARY_INVERT': 40,
'UNARY_NEGATIVE': 41,
'UNARY_NOT': 42,
'WITH_EXCEPT_START': 43,
'BINARY_OP': 44,
'BUILD_LIST': 45,
'BUILD_MAP': 46,
'BUILD_SET': 47,
'BUILD_SLICE': 48,
'BUILD_STRING': 49,
'BUILD_TUPLE': 50,
'CALL': 51,
'CALL_FUNCTION_EX': 52,
'CALL_INTRINSIC_1': 53,
'CALL_INTRINSIC_2': 54,
'CALL_KW': 55,
@ -301,41 +297,38 @@ opmap = {
'LOAD_FROM_DICT_OR_DEREF': 87,
'LOAD_FROM_DICT_OR_GLOBALS': 88,
'LOAD_GLOBAL': 89,
'LOAD_METHOD': 90,
'LOAD_NAME': 91,
'LOAD_SMALL_INT': 92,
'LOAD_SPECIAL': 93,
'LOAD_SUPER_ATTR': 94,
'LOAD_SUPER_METHOD': 95,
'MAKE_CELL': 96,
'MAP_ADD': 97,
'MATCH_CLASS': 98,
'POP_JUMP_IF_FALSE': 99,
'POP_JUMP_IF_NONE': 100,
'POP_JUMP_IF_NOT_NONE': 101,
'POP_JUMP_IF_TRUE': 102,
'RAISE_VARARGS': 103,
'RERAISE': 104,
'SEND': 105,
'SET_ADD': 106,
'SET_FUNCTION_ATTRIBUTE': 107,
'SET_UPDATE': 108,
'STORE_ATTR': 109,
'STORE_DEREF': 110,
'STORE_FAST': 111,
'STORE_FAST_LOAD_FAST': 112,
'STORE_FAST_STORE_FAST': 113,
'STORE_GLOBAL': 114,
'STORE_NAME': 115,
'SWAP': 116,
'UNPACK_EX': 117,
'UNPACK_SEQUENCE': 118,
'YIELD_VALUE': 119,
'INSTRUMENTED_END_FOR': 234,
'INSTRUMENTED_POP_ITER': 235,
'INSTRUMENTED_END_SEND': 236,
'INSTRUMENTED_LOAD_SUPER_ATTR': 237,
'INSTRUMENTED_LOAD_SUPER_METHOD': 238,
'LOAD_NAME': 90,
'LOAD_SMALL_INT': 91,
'LOAD_SPECIAL': 92,
'LOAD_SUPER_ATTR': 93,
'MAKE_CELL': 94,
'MAP_ADD': 95,
'MATCH_CLASS': 96,
'POP_JUMP_IF_FALSE': 97,
'POP_JUMP_IF_NONE': 98,
'POP_JUMP_IF_NOT_NONE': 99,
'POP_JUMP_IF_TRUE': 100,
'RAISE_VARARGS': 101,
'RERAISE': 102,
'SEND': 103,
'SET_ADD': 104,
'SET_FUNCTION_ATTRIBUTE': 105,
'SET_UPDATE': 106,
'STORE_ATTR': 107,
'STORE_DEREF': 108,
'STORE_FAST': 109,
'STORE_FAST_LOAD_FAST': 110,
'STORE_FAST_STORE_FAST': 111,
'STORE_GLOBAL': 112,
'STORE_NAME': 113,
'SWAP': 114,
'UNPACK_EX': 115,
'UNPACK_SEQUENCE': 116,
'YIELD_VALUE': 117,
'INSTRUMENTED_END_FOR': 235,
'INSTRUMENTED_POP_ITER': 236,
'INSTRUMENTED_END_SEND': 237,
'INSTRUMENTED_LOAD_SUPER_ATTR': 238,
'INSTRUMENTED_FOR_ITER': 239,
'INSTRUMENTED_CALL_KW': 240,
'INSTRUMENTED_CALL_FUNCTION_EX': 241,
@ -363,5 +356,5 @@ opmap = {
'STORE_FAST_MAYBE_NULL': 265,
}
HAVE_ARGUMENT = 44
MIN_INSTRUMENTED_OPCODE = 234
HAVE_ARGUMENT = 43
MIN_INSTRUMENTED_OPCODE = 235