[issue45116] Performance regression 3.10b1 and later on Windows: Py_DECREF() not inlined in PGO build
STINNER Victor
report at bugs.python.org
Fri Sep 17 07:47:58 EDT 2021
STINNER Victor <vstinner at python.org> added the comment:
> the entire eval function is now too big for PGO on MSVC
I don't think that the issue is specific to MSVC. If a function becomes too big, it becomes less efficient for CPU caches.
One idea would be to move the least common opcodes into a slow-path, in a separated function, and make sure that this function is *not* inlined (use Py_NO_INLINE macro).
@Mark: What do you think?
Maybe we can keep current targets in the big switch, and call the function there. Something like:
TARGET(DUP_TOP):
TARGET(DUP_TOP_TWO):
(...)
ceval_slow_path();
break;
_PyEval_EvalFrameDefault() takes around 3500 lines of C code.
----------
_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue45116>
_______________________________________
More information about the Python-bugs-list
mailing list