gh-109256: allocate opcode IDs for internal opcodes in their own range (#109269)

This commit is contained in:
Irit Katriel 2023-09-12 11:36:17 +01:00 committed by GitHub
parent 247ee1bf84
commit 8b55adfa8f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 778 additions and 763 deletions

View file

@ -1664,21 +1664,9 @@ const char *const _PyOpcode_OpName[268] = {
[RESUME] = "RESUME",
[BEFORE_ASYNC_WITH] = "BEFORE_ASYNC_WITH",
[BEFORE_WITH] = "BEFORE_WITH",
[BINARY_OP_ADD_FLOAT] = "BINARY_OP_ADD_FLOAT",
[BINARY_OP_ADD_INT] = "BINARY_OP_ADD_INT",
[BINARY_OP_ADD_UNICODE] = "BINARY_OP_ADD_UNICODE",
[BINARY_OP_INPLACE_ADD_UNICODE] = "BINARY_OP_INPLACE_ADD_UNICODE",
[BINARY_OP_MULTIPLY_FLOAT] = "BINARY_OP_MULTIPLY_FLOAT",
[BINARY_OP_MULTIPLY_INT] = "BINARY_OP_MULTIPLY_INT",
[BINARY_OP_SUBTRACT_FLOAT] = "BINARY_OP_SUBTRACT_FLOAT",
[BINARY_OP_SUBTRACT_INT] = "BINARY_OP_SUBTRACT_INT",
[BINARY_SLICE] = "BINARY_SLICE",
[BINARY_SUBSCR] = "BINARY_SUBSCR",
[BINARY_SUBSCR_DICT] = "BINARY_SUBSCR_DICT",
[BINARY_SUBSCR_GETITEM] = "BINARY_SUBSCR_GETITEM",
[BINARY_SUBSCR_LIST_INT] = "BINARY_SUBSCR_LIST_INT",
[BINARY_SUBSCR_STR_INT] = "BINARY_SUBSCR_STR_INT",
[BINARY_SUBSCR_TUPLE_INT] = "BINARY_SUBSCR_TUPLE_INT",
[CHECK_EG_MATCH] = "CHECK_EG_MATCH",
[CHECK_EXC_MATCH] = "CHECK_EXC_MATCH",
[CLEANUP_THROW] = "CLEANUP_THROW",
@ -1707,23 +1695,12 @@ const char *const _PyOpcode_OpName[268] = {
[POP_TOP] = "POP_TOP",
[PUSH_EXC_INFO] = "PUSH_EXC_INFO",
[PUSH_NULL] = "PUSH_NULL",
[RESUME_CHECK] = "RESUME_CHECK",
[RETURN_GENERATOR] = "RETURN_GENERATOR",
[RETURN_VALUE] = "RETURN_VALUE",
[SETUP_ANNOTATIONS] = "SETUP_ANNOTATIONS",
[STORE_ATTR_INSTANCE_VALUE] = "STORE_ATTR_INSTANCE_VALUE",
[STORE_ATTR_SLOT] = "STORE_ATTR_SLOT",
[STORE_SLICE] = "STORE_SLICE",
[STORE_SUBSCR] = "STORE_SUBSCR",
[STORE_SUBSCR_DICT] = "STORE_SUBSCR_DICT",
[STORE_SUBSCR_LIST_INT] = "STORE_SUBSCR_LIST_INT",
[TO_BOOL] = "TO_BOOL",
[TO_BOOL_ALWAYS_TRUE] = "TO_BOOL_ALWAYS_TRUE",
[TO_BOOL_BOOL] = "TO_BOOL_BOOL",
[TO_BOOL_INT] = "TO_BOOL_INT",
[TO_BOOL_LIST] = "TO_BOOL_LIST",
[TO_BOOL_NONE] = "TO_BOOL_NONE",
[TO_BOOL_STR] = "TO_BOOL_STR",
[UNARY_INVERT] = "UNARY_INVERT",
[UNARY_NEGATIVE] = "UNARY_NEGATIVE",
[UNARY_NOT] = "UNARY_NOT",
@ -1737,12 +1714,86 @@ const char *const _PyOpcode_OpName[268] = {
[BUILD_STRING] = "BUILD_STRING",
[BUILD_TUPLE] = "BUILD_TUPLE",
[CALL] = "CALL",
[CALL_BOUND_METHOD_EXACT_ARGS] = "CALL_BOUND_METHOD_EXACT_ARGS",
[CALL_BUILTIN_CLASS] = "CALL_BUILTIN_CLASS",
[CALL_BUILTIN_FAST_WITH_KEYWORDS] = "CALL_BUILTIN_FAST_WITH_KEYWORDS",
[CALL_FUNCTION_EX] = "CALL_FUNCTION_EX",
[CALL_INTRINSIC_1] = "CALL_INTRINSIC_1",
[CALL_INTRINSIC_2] = "CALL_INTRINSIC_2",
[COMPARE_OP] = "COMPARE_OP",
[CONTAINS_OP] = "CONTAINS_OP",
[CONVERT_VALUE] = "CONVERT_VALUE",
[COPY] = "COPY",
[COPY_FREE_VARS] = "COPY_FREE_VARS",
[DELETE_ATTR] = "DELETE_ATTR",
[DELETE_DEREF] = "DELETE_DEREF",
[DELETE_FAST] = "DELETE_FAST",
[DELETE_GLOBAL] = "DELETE_GLOBAL",
[DELETE_NAME] = "DELETE_NAME",
[DICT_MERGE] = "DICT_MERGE",
[DICT_UPDATE] = "DICT_UPDATE",
[ENTER_EXECUTOR] = "ENTER_EXECUTOR",
[EXTENDED_ARG] = "EXTENDED_ARG",
[FOR_ITER] = "FOR_ITER",
[GET_AWAITABLE] = "GET_AWAITABLE",
[IMPORT_FROM] = "IMPORT_FROM",
[IMPORT_NAME] = "IMPORT_NAME",
[IS_OP] = "IS_OP",
[JUMP_BACKWARD] = "JUMP_BACKWARD",
[JUMP_BACKWARD_NO_INTERRUPT] = "JUMP_BACKWARD_NO_INTERRUPT",
[JUMP_FORWARD] = "JUMP_FORWARD",
[KW_NAMES] = "KW_NAMES",
[LIST_APPEND] = "LIST_APPEND",
[LIST_EXTEND] = "LIST_EXTEND",
[LOAD_ATTR] = "LOAD_ATTR",
[LOAD_CONST] = "LOAD_CONST",
[LOAD_DEREF] = "LOAD_DEREF",
[LOAD_FAST] = "LOAD_FAST",
[LOAD_FAST_AND_CLEAR] = "LOAD_FAST_AND_CLEAR",
[LOAD_FAST_CHECK] = "LOAD_FAST_CHECK",
[LOAD_FAST_LOAD_FAST] = "LOAD_FAST_LOAD_FAST",
[LOAD_FROM_DICT_OR_DEREF] = "LOAD_FROM_DICT_OR_DEREF",
[LOAD_FROM_DICT_OR_GLOBALS] = "LOAD_FROM_DICT_OR_GLOBALS",
[LOAD_GLOBAL] = "LOAD_GLOBAL",
[LOAD_NAME] = "LOAD_NAME",
[LOAD_SUPER_ATTR] = "LOAD_SUPER_ATTR",
[MAKE_CELL] = "MAKE_CELL",
[MAP_ADD] = "MAP_ADD",
[MATCH_CLASS] = "MATCH_CLASS",
[POP_JUMP_IF_FALSE] = "POP_JUMP_IF_FALSE",
[POP_JUMP_IF_NONE] = "POP_JUMP_IF_NONE",
[POP_JUMP_IF_NOT_NONE] = "POP_JUMP_IF_NOT_NONE",
[POP_JUMP_IF_TRUE] = "POP_JUMP_IF_TRUE",
[RAISE_VARARGS] = "RAISE_VARARGS",
[RERAISE] = "RERAISE",
[RETURN_CONST] = "RETURN_CONST",
[SEND] = "SEND",
[SET_ADD] = "SET_ADD",
[SET_FUNCTION_ATTRIBUTE] = "SET_FUNCTION_ATTRIBUTE",
[SET_UPDATE] = "SET_UPDATE",
[STORE_ATTR] = "STORE_ATTR",
[STORE_DEREF] = "STORE_DEREF",
[STORE_FAST] = "STORE_FAST",
[STORE_FAST_LOAD_FAST] = "STORE_FAST_LOAD_FAST",
[STORE_FAST_STORE_FAST] = "STORE_FAST_STORE_FAST",
[STORE_GLOBAL] = "STORE_GLOBAL",
[STORE_NAME] = "STORE_NAME",
[SWAP] = "SWAP",
[UNPACK_EX] = "UNPACK_EX",
[UNPACK_SEQUENCE] = "UNPACK_SEQUENCE",
[YIELD_VALUE] = "YIELD_VALUE",
[BINARY_OP_ADD_FLOAT] = "BINARY_OP_ADD_FLOAT",
[BINARY_OP_ADD_INT] = "BINARY_OP_ADD_INT",
[BINARY_OP_ADD_UNICODE] = "BINARY_OP_ADD_UNICODE",
[BINARY_OP_MULTIPLY_FLOAT] = "BINARY_OP_MULTIPLY_FLOAT",
[BINARY_OP_MULTIPLY_INT] = "BINARY_OP_MULTIPLY_INT",
[BINARY_OP_SUBTRACT_FLOAT] = "BINARY_OP_SUBTRACT_FLOAT",
[BINARY_OP_SUBTRACT_INT] = "BINARY_OP_SUBTRACT_INT",
[BINARY_SUBSCR_DICT] = "BINARY_SUBSCR_DICT",
[BINARY_SUBSCR_GETITEM] = "BINARY_SUBSCR_GETITEM",
[BINARY_SUBSCR_LIST_INT] = "BINARY_SUBSCR_LIST_INT",
[BINARY_SUBSCR_STR_INT] = "BINARY_SUBSCR_STR_INT",
[BINARY_SUBSCR_TUPLE_INT] = "BINARY_SUBSCR_TUPLE_INT",
[CALL_BOUND_METHOD_EXACT_ARGS] = "CALL_BOUND_METHOD_EXACT_ARGS",
[CALL_BUILTIN_CLASS] = "CALL_BUILTIN_CLASS",
[CALL_BUILTIN_FAST_WITH_KEYWORDS] = "CALL_BUILTIN_FAST_WITH_KEYWORDS",
[CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS] = "CALL_METHOD_DESCRIPTOR_FAST_WITH_KEYWORDS",
[CALL_NO_KW_ALLOC_AND_ENTER_INIT] = "CALL_NO_KW_ALLOC_AND_ENTER_INIT",
[CALL_NO_KW_BUILTIN_FAST] = "CALL_NO_KW_BUILTIN_FAST",
@ -1758,39 +1809,13 @@ const char *const _PyOpcode_OpName[268] = {
[CALL_NO_KW_TYPE_1] = "CALL_NO_KW_TYPE_1",
[CALL_PY_EXACT_ARGS] = "CALL_PY_EXACT_ARGS",
[CALL_PY_WITH_DEFAULTS] = "CALL_PY_WITH_DEFAULTS",
[COMPARE_OP] = "COMPARE_OP",
[COMPARE_OP_FLOAT] = "COMPARE_OP_FLOAT",
[COMPARE_OP_INT] = "COMPARE_OP_INT",
[COMPARE_OP_STR] = "COMPARE_OP_STR",
[CONTAINS_OP] = "CONTAINS_OP",
[CONVERT_VALUE] = "CONVERT_VALUE",
[COPY] = "COPY",
[COPY_FREE_VARS] = "COPY_FREE_VARS",
[DELETE_ATTR] = "DELETE_ATTR",
[DELETE_DEREF] = "DELETE_DEREF",
[DELETE_FAST] = "DELETE_FAST",
[DELETE_GLOBAL] = "DELETE_GLOBAL",
[DELETE_NAME] = "DELETE_NAME",
[DICT_MERGE] = "DICT_MERGE",
[DICT_UPDATE] = "DICT_UPDATE",
[ENTER_EXECUTOR] = "ENTER_EXECUTOR",
[EXTENDED_ARG] = "EXTENDED_ARG",
[FOR_ITER] = "FOR_ITER",
[FOR_ITER_GEN] = "FOR_ITER_GEN",
[FOR_ITER_LIST] = "FOR_ITER_LIST",
[FOR_ITER_RANGE] = "FOR_ITER_RANGE",
[FOR_ITER_TUPLE] = "FOR_ITER_TUPLE",
[GET_AWAITABLE] = "GET_AWAITABLE",
[IMPORT_FROM] = "IMPORT_FROM",
[IMPORT_NAME] = "IMPORT_NAME",
[IS_OP] = "IS_OP",
[JUMP_BACKWARD] = "JUMP_BACKWARD",
[JUMP_BACKWARD_NO_INTERRUPT] = "JUMP_BACKWARD_NO_INTERRUPT",
[JUMP_FORWARD] = "JUMP_FORWARD",
[KW_NAMES] = "KW_NAMES",
[LIST_APPEND] = "LIST_APPEND",
[LIST_EXTEND] = "LIST_EXTEND",
[LOAD_ATTR] = "LOAD_ATTR",
[LOAD_ATTR_CLASS] = "LOAD_ATTR_CLASS",
[LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = "LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN",
[LOAD_ATTR_INSTANCE_VALUE] = "LOAD_ATTR_INSTANCE_VALUE",
@ -1803,51 +1828,26 @@ const char *const _PyOpcode_OpName[268] = {
[LOAD_ATTR_PROPERTY] = "LOAD_ATTR_PROPERTY",
[LOAD_ATTR_SLOT] = "LOAD_ATTR_SLOT",
[LOAD_ATTR_WITH_HINT] = "LOAD_ATTR_WITH_HINT",
[LOAD_CONST] = "LOAD_CONST",
[LOAD_DEREF] = "LOAD_DEREF",
[LOAD_FAST] = "LOAD_FAST",
[LOAD_FAST_AND_CLEAR] = "LOAD_FAST_AND_CLEAR",
[LOAD_FAST_CHECK] = "LOAD_FAST_CHECK",
[LOAD_FAST_LOAD_FAST] = "LOAD_FAST_LOAD_FAST",
[LOAD_FROM_DICT_OR_DEREF] = "LOAD_FROM_DICT_OR_DEREF",
[LOAD_FROM_DICT_OR_GLOBALS] = "LOAD_FROM_DICT_OR_GLOBALS",
[LOAD_GLOBAL] = "LOAD_GLOBAL",
[LOAD_GLOBAL_BUILTIN] = "LOAD_GLOBAL_BUILTIN",
[LOAD_GLOBAL_MODULE] = "LOAD_GLOBAL_MODULE",
[LOAD_NAME] = "LOAD_NAME",
[LOAD_SUPER_ATTR] = "LOAD_SUPER_ATTR",
[LOAD_SUPER_ATTR_ATTR] = "LOAD_SUPER_ATTR_ATTR",
[LOAD_SUPER_ATTR_METHOD] = "LOAD_SUPER_ATTR_METHOD",
[MAKE_CELL] = "MAKE_CELL",
[MAP_ADD] = "MAP_ADD",
[MATCH_CLASS] = "MATCH_CLASS",
[POP_JUMP_IF_FALSE] = "POP_JUMP_IF_FALSE",
[POP_JUMP_IF_NONE] = "POP_JUMP_IF_NONE",
[POP_JUMP_IF_NOT_NONE] = "POP_JUMP_IF_NOT_NONE",
[POP_JUMP_IF_TRUE] = "POP_JUMP_IF_TRUE",
[RAISE_VARARGS] = "RAISE_VARARGS",
[RERAISE] = "RERAISE",
[RETURN_CONST] = "RETURN_CONST",
[SEND] = "SEND",
[RESUME_CHECK] = "RESUME_CHECK",
[SEND_GEN] = "SEND_GEN",
[SET_ADD] = "SET_ADD",
[SET_FUNCTION_ATTRIBUTE] = "SET_FUNCTION_ATTRIBUTE",
[SET_UPDATE] = "SET_UPDATE",
[STORE_ATTR] = "STORE_ATTR",
[STORE_ATTR_INSTANCE_VALUE] = "STORE_ATTR_INSTANCE_VALUE",
[STORE_ATTR_SLOT] = "STORE_ATTR_SLOT",
[STORE_ATTR_WITH_HINT] = "STORE_ATTR_WITH_HINT",
[STORE_DEREF] = "STORE_DEREF",
[STORE_FAST] = "STORE_FAST",
[STORE_FAST_LOAD_FAST] = "STORE_FAST_LOAD_FAST",
[STORE_FAST_STORE_FAST] = "STORE_FAST_STORE_FAST",
[STORE_GLOBAL] = "STORE_GLOBAL",
[STORE_NAME] = "STORE_NAME",
[SWAP] = "SWAP",
[UNPACK_EX] = "UNPACK_EX",
[UNPACK_SEQUENCE] = "UNPACK_SEQUENCE",
[STORE_SUBSCR_DICT] = "STORE_SUBSCR_DICT",
[STORE_SUBSCR_LIST_INT] = "STORE_SUBSCR_LIST_INT",
[TO_BOOL_ALWAYS_TRUE] = "TO_BOOL_ALWAYS_TRUE",
[TO_BOOL_BOOL] = "TO_BOOL_BOOL",
[TO_BOOL_INT] = "TO_BOOL_INT",
[TO_BOOL_LIST] = "TO_BOOL_LIST",
[TO_BOOL_NONE] = "TO_BOOL_NONE",
[TO_BOOL_STR] = "TO_BOOL_STR",
[UNPACK_SEQUENCE_LIST] = "UNPACK_SEQUENCE_LIST",
[UNPACK_SEQUENCE_TUPLE] = "UNPACK_SEQUENCE_TUPLE",
[UNPACK_SEQUENCE_TWO_TUPLE] = "UNPACK_SEQUENCE_TWO_TUPLE",
[YIELD_VALUE] = "YIELD_VALUE",
[INSTRUMENTED_RESUME] = "INSTRUMENTED_RESUME",
[INSTRUMENTED_END_FOR] = "INSTRUMENTED_END_FOR",
[INSTRUMENTED_END_SEND] = "INSTRUMENTED_END_SEND",
@ -2119,36 +2119,36 @@ const uint8_t _PyOpcode_Deopt[256] = {
#endif // NEED_OPCODE_METADATA
#define EXTRA_CASES \
case 189: \
case 190: \
case 191: \
case 192: \
case 193: \
case 194: \
case 195: \
case 196: \
case 197: \
case 198: \
case 199: \
case 200: \
case 201: \
case 202: \
case 203: \
case 204: \
case 205: \
case 206: \
case 207: \
case 208: \
case 209: \
case 210: \
case 211: \
case 212: \
case 213: \
case 214: \
case 215: \
case 216: \
case 217: \
case 218: \
case 119: \
case 120: \
case 121: \
case 122: \
case 123: \
case 124: \
case 125: \
case 126: \
case 127: \
case 128: \
case 129: \
case 130: \
case 131: \
case 132: \
case 133: \
case 134: \
case 135: \
case 136: \
case 137: \
case 138: \
case 139: \
case 140: \
case 141: \
case 142: \
case 143: \
case 144: \
case 145: \
case 146: \
case 147: \
case 148: \
case 219: \
case 220: \
case 221: \