[issue4715] optimize bytecode for conditional branches
Jeffrey Yasskin
report at bugs.python.org
Wed Jan 14 06:50:19 CET 2009
Jeffrey Yasskin <jyasskin at gmail.com> added the comment:
In peephole.c:
_optimize isn't a great label name, but I don't have a great
replacement. Maybe reoptimize_current_index?
Your change to the "LOAD_CONST trueconst JUMP_IF_FALSE xx POP_TOP"
optimization doesn't preserve the optimization to:
def f():
return 1 and a
I suspect we don't care since "0 or a" wasn't optimized.
I wonder what the "POP_TOP JUMP_FORWARD 1 POP_TOP" was ever for. Why did
compiler_comprehension_generator() emit it in the first place?
After "if (JUMP_SIGN(j) == JUMP_SIGN(opcode)) {", it might be nice to
have a comment like, "/* The second jump will always be taken if the
first was. */" and similarly for the else branch with an explanation why
the POP should become unconditional.
Otherwise looks good.
_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue4715>
_______________________________________
More information about the Python-bugs-list
mailing list