[issue27213] Rework CALL_FUNCTION* opcodes

Demur Rumed report at bugs.python.org
Mon Jun 20 19:45:47 EDT 2016


Demur Rumed added the comment:

callfunc2 fixes test_dis, addresses code review, currently implements a copy of _PyEval_EvalCodeWithName as _PyEval_EvalCodeWithName2 which changes a few lines to work with new keyword stack layout so that we can use fast_function with kwargs

CALL_FUNCTION_EX is benchmarking much slower (4x slower when using **kw), but unpatched hits similar perf when using multiple **kw. So most slowdown is due to BUILD_MAP_UNPACK_WITH_CALL being slow. So some patch which speeds up intersection check (eg optimize to not allocate intersection when disjoint) should greatly diminish the perf loss on this simpler implementation. I'll open a separate issue for this

----------
Added file: http://bugs.python.org/file43493/callfunc2.patch

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue27213>
_______________________________________


More information about the Python-bugs-list mailing list