diff options
author | Mark Shannon <mark@hotpy.org> | 2022-01-28 12:42:30 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-28 12:42:30 (GMT) |
commit | 89fd7c34520aac493a8784a221366ed04452612b (patch) | |
tree | da2dd6dfe862b1351063e2c0ee2a3564c4773416 /Doc/whatsnew | |
parent | 5a9e423473bf2c4eb32a0982e8d73420875db1da (diff) | |
download | cpython-89fd7c34520aac493a8784a221366ed04452612b.zip cpython-89fd7c34520aac493a8784a221366ed04452612b.tar.gz cpython-89fd7c34520aac493a8784a221366ed04452612b.tar.bz2 |
bpo-46329: Split calls into precall and call instructions. (GH-30855)
* Add PRECALL_FUNCTION opcode.
* Move 'call shape' varaibles into struct.
* Replace CALL_NO_KW and CALL_KW with KW_NAMES and CALL instructions.
* Specialize for builtin methods taking using the METH_FASTCALL | METH_KEYWORDS protocol.
* Allow kwnames for specialized calls to builtin types.
* Specialize calls to tuple(arg) and str(arg).
Diffstat (limited to 'Doc/whatsnew')
-rw-r--r-- | Doc/whatsnew/3.11.rst | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/Doc/whatsnew/3.11.rst b/Doc/whatsnew/3.11.rst index daa0a2a..e054008 100644 --- a/Doc/whatsnew/3.11.rst +++ b/Doc/whatsnew/3.11.rst @@ -400,7 +400,8 @@ CPython bytecode changes * Replaced the three call instructions: :opcode:`CALL_FUNCTION`, :opcode:`CALL_FUNCTION_KW` and :opcode:`CALL_METHOD` with - :opcode:`CALL_NO_KW`, :opcode:`CALL_KW` and :opcode:`PRECALL_METHOD`. + :opcode:`PRECALL_FUNCTION`, :opcode:`PRECALL_METHOD`, :opcode:`CALL`, + and :opcode:`KW_NAMES`. This decouples the argument shifting for methods from the handling of keyword arguments and allows better specialization of calls. |