[issue4753] Faster opcode dispatch on gcc
report at bugs.python.org
Wed Dec 31 22:21:02 CET 2008
Alexandre Vassalotti <alexandre at peadrop.com> added the comment:
You may want to check out issue1408710 in which a similar patch was
provided, but failed to deliver the desired results.
I didn't get the advertised ~15% speed-up, but only 4% on my Intel Core2
laptop and 8% on my AMD Athlon64 X2 desktop. I attached the benchmark
The patch looks pretty clean. Here is a few things that caught my
attention while reading your patch.
First, you should rename opcode_targets.c to opcode_targets.h. This will
make it explicit that the file is not compiled, but just included.
Also, the macro USE_THREADED_CODE should be renamed to something else;
the word "thread" is too tightly associated with multi-threading.
Furthermore, threaded code simply refers to code consisting only of
function calls. Maybe, USE_COMPUTED_GOTO or USE_DIRECT_DISPATCH would be
Finally, why do you disable your patch when DYNAMIC_EXECUTION_PROFILE or
LLTRACE is enabled? I tested your patch with both enabled and I didn't
see any test failures.
By the way, SUNCC also supports GCC's syntax for labels as values
Added file: http://bugs.python.org/file12512/amd-athlon64-x2-pybench.txt
Python tracker <report at bugs.python.org>
More information about the Python-bugs-list