Message402040
> 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. |
|
Date |
User |
Action |
Args |
2021-09-17 11:47:58 | vstinner | set | recipients:
+ vstinner, rhettinger, paul.moore, tim.golden, Mark.Shannon, zach.ware, steve.dower, malin, neonene, kj |
2021-09-17 11:47:58 | vstinner | set | messageid: <1631879278.37.0.290719881267.issue45116@roundup.psfhosted.org> |
2021-09-17 11:47:58 | vstinner | link | issue45116 messages |
2021-09-17 11:47:58 | vstinner | create | |
|