mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
GH-120507: Lower the BEFORE_WITH
and BEFORE_ASYNC_WITH
instructions. (#120640)
* Remove BEFORE_WITH and BEFORE_ASYNC_WITH instructions. * Add LOAD_SPECIAL instruction * Reimplement `with` and `async with` statements using LOAD_SPECIAL
This commit is contained in:
parent
73dc1c678e
commit
9cefcc0ee7
22 changed files with 663 additions and 651 deletions
233
Lib/_opcode_metadata.py
generated
233
Lib/_opcode_metadata.py
generated
|
@ -191,122 +191,121 @@ opmap = {
|
|||
'RESERVED': 17,
|
||||
'RESUME': 149,
|
||||
'INSTRUMENTED_LINE': 254,
|
||||
'BEFORE_ASYNC_WITH': 1,
|
||||
'BEFORE_WITH': 2,
|
||||
'BINARY_SLICE': 4,
|
||||
'BINARY_SUBSCR': 5,
|
||||
'CHECK_EG_MATCH': 6,
|
||||
'CHECK_EXC_MATCH': 7,
|
||||
'CLEANUP_THROW': 8,
|
||||
'DELETE_SUBSCR': 9,
|
||||
'END_ASYNC_FOR': 10,
|
||||
'END_FOR': 11,
|
||||
'END_SEND': 12,
|
||||
'EXIT_INIT_CHECK': 13,
|
||||
'FORMAT_SIMPLE': 14,
|
||||
'FORMAT_WITH_SPEC': 15,
|
||||
'GET_AITER': 16,
|
||||
'GET_ANEXT': 18,
|
||||
'GET_ITER': 19,
|
||||
'GET_LEN': 20,
|
||||
'GET_YIELD_FROM_ITER': 21,
|
||||
'INTERPRETER_EXIT': 22,
|
||||
'LOAD_BUILD_CLASS': 23,
|
||||
'LOAD_LOCALS': 24,
|
||||
'MAKE_FUNCTION': 25,
|
||||
'MATCH_KEYS': 26,
|
||||
'MATCH_MAPPING': 27,
|
||||
'MATCH_SEQUENCE': 28,
|
||||
'NOP': 29,
|
||||
'POP_EXCEPT': 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_CONST_KEY_MAP': 45,
|
||||
'BUILD_LIST': 46,
|
||||
'BUILD_MAP': 47,
|
||||
'BUILD_SET': 48,
|
||||
'BUILD_SLICE': 49,
|
||||
'BUILD_STRING': 50,
|
||||
'BUILD_TUPLE': 51,
|
||||
'CALL': 52,
|
||||
'CALL_FUNCTION_EX': 53,
|
||||
'CALL_INTRINSIC_1': 54,
|
||||
'CALL_INTRINSIC_2': 55,
|
||||
'CALL_KW': 56,
|
||||
'COMPARE_OP': 57,
|
||||
'CONTAINS_OP': 58,
|
||||
'CONVERT_VALUE': 59,
|
||||
'COPY': 60,
|
||||
'COPY_FREE_VARS': 61,
|
||||
'DELETE_ATTR': 62,
|
||||
'DELETE_DEREF': 63,
|
||||
'DELETE_FAST': 64,
|
||||
'DELETE_GLOBAL': 65,
|
||||
'DELETE_NAME': 66,
|
||||
'DICT_MERGE': 67,
|
||||
'DICT_UPDATE': 68,
|
||||
'ENTER_EXECUTOR': 69,
|
||||
'EXTENDED_ARG': 70,
|
||||
'FOR_ITER': 71,
|
||||
'GET_AWAITABLE': 72,
|
||||
'IMPORT_FROM': 73,
|
||||
'IMPORT_NAME': 74,
|
||||
'IS_OP': 75,
|
||||
'JUMP_BACKWARD': 76,
|
||||
'JUMP_BACKWARD_NO_INTERRUPT': 77,
|
||||
'JUMP_FORWARD': 78,
|
||||
'LIST_APPEND': 79,
|
||||
'LIST_EXTEND': 80,
|
||||
'LOAD_ATTR': 81,
|
||||
'LOAD_COMMON_CONSTANT': 82,
|
||||
'LOAD_CONST': 83,
|
||||
'LOAD_DEREF': 84,
|
||||
'LOAD_FAST': 85,
|
||||
'LOAD_FAST_AND_CLEAR': 86,
|
||||
'LOAD_FAST_CHECK': 87,
|
||||
'LOAD_FAST_LOAD_FAST': 88,
|
||||
'LOAD_FROM_DICT_OR_DEREF': 89,
|
||||
'LOAD_FROM_DICT_OR_GLOBALS': 90,
|
||||
'LOAD_GLOBAL': 91,
|
||||
'LOAD_NAME': 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,
|
||||
'RETURN_CONST': 103,
|
||||
'SEND': 104,
|
||||
'SET_ADD': 105,
|
||||
'SET_FUNCTION_ATTRIBUTE': 106,
|
||||
'SET_UPDATE': 107,
|
||||
'STORE_ATTR': 108,
|
||||
'STORE_DEREF': 109,
|
||||
'STORE_FAST': 110,
|
||||
'STORE_FAST_LOAD_FAST': 111,
|
||||
'STORE_FAST_STORE_FAST': 112,
|
||||
'STORE_GLOBAL': 113,
|
||||
'STORE_NAME': 114,
|
||||
'SWAP': 115,
|
||||
'UNPACK_EX': 116,
|
||||
'UNPACK_SEQUENCE': 117,
|
||||
'YIELD_VALUE': 118,
|
||||
'BINARY_SLICE': 1,
|
||||
'BINARY_SUBSCR': 2,
|
||||
'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,
|
||||
'POP_EXCEPT': 28,
|
||||
'POP_TOP': 29,
|
||||
'PUSH_EXC_INFO': 30,
|
||||
'PUSH_NULL': 31,
|
||||
'RETURN_GENERATOR': 32,
|
||||
'RETURN_VALUE': 33,
|
||||
'SETUP_ANNOTATIONS': 34,
|
||||
'STORE_SLICE': 35,
|
||||
'STORE_SUBSCR': 36,
|
||||
'TO_BOOL': 37,
|
||||
'UNARY_INVERT': 38,
|
||||
'UNARY_NEGATIVE': 39,
|
||||
'UNARY_NOT': 40,
|
||||
'WITH_EXCEPT_START': 41,
|
||||
'BINARY_OP': 42,
|
||||
'BUILD_CONST_KEY_MAP': 43,
|
||||
'BUILD_LIST': 44,
|
||||
'BUILD_MAP': 45,
|
||||
'BUILD_SET': 46,
|
||||
'BUILD_SLICE': 47,
|
||||
'BUILD_STRING': 48,
|
||||
'BUILD_TUPLE': 49,
|
||||
'CALL': 50,
|
||||
'CALL_FUNCTION_EX': 51,
|
||||
'CALL_INTRINSIC_1': 52,
|
||||
'CALL_INTRINSIC_2': 53,
|
||||
'CALL_KW': 54,
|
||||
'COMPARE_OP': 55,
|
||||
'CONTAINS_OP': 56,
|
||||
'CONVERT_VALUE': 57,
|
||||
'COPY': 58,
|
||||
'COPY_FREE_VARS': 59,
|
||||
'DELETE_ATTR': 60,
|
||||
'DELETE_DEREF': 61,
|
||||
'DELETE_FAST': 62,
|
||||
'DELETE_GLOBAL': 63,
|
||||
'DELETE_NAME': 64,
|
||||
'DICT_MERGE': 65,
|
||||
'DICT_UPDATE': 66,
|
||||
'ENTER_EXECUTOR': 67,
|
||||
'EXTENDED_ARG': 68,
|
||||
'FOR_ITER': 69,
|
||||
'GET_AWAITABLE': 70,
|
||||
'IMPORT_FROM': 71,
|
||||
'IMPORT_NAME': 72,
|
||||
'IS_OP': 73,
|
||||
'JUMP_BACKWARD': 74,
|
||||
'JUMP_BACKWARD_NO_INTERRUPT': 75,
|
||||
'JUMP_FORWARD': 76,
|
||||
'LIST_APPEND': 77,
|
||||
'LIST_EXTEND': 78,
|
||||
'LOAD_ATTR': 79,
|
||||
'LOAD_COMMON_CONSTANT': 80,
|
||||
'LOAD_CONST': 81,
|
||||
'LOAD_DEREF': 82,
|
||||
'LOAD_FAST': 83,
|
||||
'LOAD_FAST_AND_CLEAR': 84,
|
||||
'LOAD_FAST_CHECK': 85,
|
||||
'LOAD_FAST_LOAD_FAST': 86,
|
||||
'LOAD_FROM_DICT_OR_DEREF': 87,
|
||||
'LOAD_FROM_DICT_OR_GLOBALS': 88,
|
||||
'LOAD_GLOBAL': 89,
|
||||
'LOAD_NAME': 90,
|
||||
'LOAD_SPECIAL': 91,
|
||||
'LOAD_SUPER_ATTR': 92,
|
||||
'MAKE_CELL': 93,
|
||||
'MAP_ADD': 94,
|
||||
'MATCH_CLASS': 95,
|
||||
'POP_JUMP_IF_FALSE': 96,
|
||||
'POP_JUMP_IF_NONE': 97,
|
||||
'POP_JUMP_IF_NOT_NONE': 98,
|
||||
'POP_JUMP_IF_TRUE': 99,
|
||||
'RAISE_VARARGS': 100,
|
||||
'RERAISE': 101,
|
||||
'RETURN_CONST': 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_RESUME': 236,
|
||||
'INSTRUMENTED_END_FOR': 237,
|
||||
'INSTRUMENTED_END_SEND': 238,
|
||||
|
@ -335,5 +334,5 @@ opmap = {
|
|||
'STORE_FAST_MAYBE_NULL': 263,
|
||||
}
|
||||
|
||||
HAVE_ARGUMENT = 43
|
||||
HAVE_ARGUMENT = 41
|
||||
MIN_INSTRUMENTED_OPCODE = 236
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue