Alexandre Vassalotti <alexan...@peadrop.com> added the comment: > Removing the switch won't be possible unless we change the semantic > EXTENDED_ARG. In addition, I doubt the improvement, if any, would worth > the increased complexity.
Nevermind what I have said. I managed to remove switch pretty easily by moving opcode fetching in the FAST_DISPATCH macro and abstracting the control flow of the switch. There is no speed difference on pybench on x86; on x86-64, the code is slower due to the opcode fetching change. > I patched ceval.c to minimize f->last_i manipulations in the dispatch > code. On x86, I got an extra 9% speed up on pybench. However, the > patch is a bit clumsy and a few unit tests are failing. I will see > if I can improve it and open a new issue if worthwhile. Nevermind that too. I found out f->last_i can be accessed anytime via frame.getlineno(). So, you cannot really change how f->last_i is used like I did. _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue4753> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com