diff options
author | Raymond Hettinger <python@rcn.com> | 2003-04-22 06:49:11 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2003-04-22 06:49:11 (GMT) |
commit | 060641d51160f6bf49a049bb677f8412b5a19de3 (patch) | |
tree | 1ad7d568e797a6387b7f0792f5286f901b8f4f32 /Misc | |
parent | 0c83348d5c110a6ca706219019e97d5cefe2fddb (diff) | |
download | cpython-060641d51160f6bf49a049bb677f8412b5a19de3.zip cpython-060641d51160f6bf49a049bb677f8412b5a19de3.tar.gz cpython-060641d51160f6bf49a049bb677f8412b5a19de3.tar.bz2 |
Improved the bytecode optimizer.
* Can now test for basic blocks.
* Optimize inverted comparisions.
* Optimize unary_not followed by a conditional jump.
* Added a new opcode, NOP, to keep code size constant.
* Applied NOP to previous transformations where appropriate.
Note, the NOP would not be necessary if other functions were
added to re-target jump addresses and update the co_lnotab mapping.
That would yield slightly faster and cleaner bytecode at the
expense of optimizer simplicity and of keeping it decoupled
from the line-numbering structure.
Diffstat (limited to 'Misc')
-rw-r--r-- | Misc/NEWS | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -294,6 +294,13 @@ Core and builtins value, but according to PEP 237 it really needs to be 1 now. This will be backported to Python 2.2.3 a well. (SF #660455) +- Added several bytecode optimizations. Provides speed-ups to + inverted in/is tests, inverted jumps, while 1 loops, and jumps to + unconditional jumps. + +- Added a new opcode, NOP, which is used in some of the bytecode + transformations. + - int(s, base) sometimes sign-folds hex and oct constants; it only does this when base is 0 and s.strip() starts with a '0'. When the sign is actually folded, as in int("0xffffffff", 0) on a 32-bit |