mirror of
https://github.com/python/cpython.git
synced 2026-06-05 17:31:21 +00:00
GH-143732: SEND specialization (GH-148963)
* SEND specialization. Adds 2 new specialized instructions: * SEND_VIRTUAL: for sends to virtual iterators e.g lists and tuples * SEND_ASYNC_GEN: for sends to async generators Tweak FOR_ITER_VIRTUAL so that SEND_VIRTUAL and FOR_ITER_VIRTUAL use equivalent guards
This commit is contained in:
parent
ffb543d32f
commit
70bd1c2dd2
29 changed files with 2662 additions and 1548 deletions
6
Python/record_functions.c.h
generated
6
Python/record_functions.c.h
generated
|
|
@ -137,6 +137,9 @@ const _PyOpcodeRecordEntry _PyOpcode_RecordEntries[256] = {
|
|||
[STORE_SUBSCR_DICT] = {1, {_RECORD_NOS_TYPE_INDEX}},
|
||||
[SEND] = {1, {_RECORD_3OS_GEN_FUNC_INDEX}},
|
||||
[SEND_GEN] = {1, {_RECORD_3OS_GEN_FUNC_INDEX}},
|
||||
[FOR_ITER] = {1, {_RECORD_NOS_INDEX}},
|
||||
[SEND_VIRTUAL] = {1, {_RECORD_3OS_GEN_FUNC_INDEX}},
|
||||
[SEND_ASYNC_GEN] = {1, {_RECORD_3OS_GEN_FUNC_INDEX}},
|
||||
[STORE_ATTR] = {1, {_RECORD_TOS_TYPE_INDEX}},
|
||||
[LOAD_SUPER_ATTR] = {1, {_RECORD_NOS_INDEX}},
|
||||
[LOAD_SUPER_ATTR_METHOD] = {1, {_RECORD_NOS_INDEX}},
|
||||
|
|
@ -155,7 +158,6 @@ const _PyOpcodeRecordEntry _PyOpcode_RecordEntries[256] = {
|
|||
[GET_ITER] = {1, {_RECORD_TOS_TYPE_INDEX}},
|
||||
[GET_ITER_SELF] = {1, {_RECORD_TOS_TYPE_INDEX}},
|
||||
[GET_ITER_VIRTUAL] = {1, {_RECORD_TOS_TYPE_INDEX}},
|
||||
[FOR_ITER] = {1, {_RECORD_NOS_INDEX}},
|
||||
[FOR_ITER_VIRTUAL] = {1, {_RECORD_NOS_INDEX}},
|
||||
[FOR_ITER_LIST] = {1, {_RECORD_NOS_INDEX}},
|
||||
[FOR_ITER_TUPLE] = {1, {_RECORD_NOS_INDEX}},
|
||||
|
|
@ -204,6 +206,7 @@ const _PyOpcodeRecordSlotMap _PyOpcode_RecordSlotMaps[256] = {
|
|||
[BINARY_OP_SUBSCR_GETITEM] = {1, 0, {0}},
|
||||
[STORE_SUBSCR_DICT] = {1, 0, {0}},
|
||||
[SEND_GEN] = {1, 0, {0}},
|
||||
[FOR_ITER] = {1, 1, {0}},
|
||||
[LOAD_SUPER_ATTR_METHOD] = {1, 0, {0}},
|
||||
[LOAD_ATTR_INSTANCE_VALUE] = {1, 1, {0}},
|
||||
[LOAD_ATTR_WITH_HINT] = {1, 1, {0}},
|
||||
|
|
@ -218,7 +221,6 @@ const _PyOpcodeRecordSlotMap _PyOpcode_RecordSlotMaps[256] = {
|
|||
[GET_ITER] = {1, 0, {0}},
|
||||
[GET_ITER_SELF] = {1, 0, {0}},
|
||||
[GET_ITER_VIRTUAL] = {1, 0, {0}},
|
||||
[FOR_ITER] = {1, 1, {0}},
|
||||
[FOR_ITER_GEN] = {1, 1, {0}},
|
||||
[LOAD_SPECIAL] = {1, 0, {0}},
|
||||
[LOAD_ATTR_METHOD_WITH_VALUES] = {1, 1, {0}},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue