Mercurial > cpython-lru_cache-weakref
diff Python/peephole.c @ 49747:ed0dac26b396
Issue 2260: Small peephole optimization -- eliminate unnecessary POP_TOP /JUMP_FORWARD 1 pairs.
| author | Raymond Hettinger <python@rcn.com> |
|---|---|
| date | Tue, 18 Nov 2008 00:07:10 +0000 |
| parents | 85b67fb5672b |
| children | 643d8d4fc8eb |
line wrap: on
line diff
--- a/Python/peephole.c Mon Nov 17 22:55:16 2008 +0000 +++ b/Python/peephole.c Tue Nov 18 00:07:10 2008 +0000 @@ -430,6 +430,16 @@ cumlc = 0; break; + /* Replace POP_TOP JUMP_FORWARD 1 POP_TOP + with NOP NOP NOP NOP POP_TOP. */ + case POP_TOP: + if (UNCONDITIONAL_JUMP(codestr[i+1]) && + GETJUMPTGT(codestr, i+1) == i+5 && + codestr[i+4] == POP_TOP && + ISBASICBLOCK(blocks,i,4)) + memset(codestr+i, NOP, 4); + break; + /* Try to fold tuples of constants (includes a case for lists which are only used for "in" and "not in" tests). Skip over BUILD_SEQN 1 UNPACK_SEQN 1.
