Mercurial > cpython-lru_cache-weakref
diff Include/opcode.h @ 51920:ef8fe9088696 legacy-trunk
Backport r69961 to trunk, replacing JUMP_IF_{TRUE,FALSE} with
POP_JUMP_IF_{TRUE,FALSE} and JUMP_IF_{TRUE,FALSE}_OR_POP. This avoids executing
a POP_TOP on each conditional and sometimes allows the peephole optimizer to
skip a JUMP_ABSOLUTE entirely. It speeds up list comprehensions significantly.
| author | Jeffrey Yasskin <jyasskin@gmail.com> |
|---|---|
| date | Sat, 28 Feb 2009 19:03:21 +0000 |
| parents | 94e79d78dff0 |
| children | 145376df3ad7 |
line wrap: on
line diff
--- a/Include/opcode.h Sat Feb 28 15:50:40 2009 +0000 +++ b/Include/opcode.h Sat Feb 28 19:03:21 2009 +0000 @@ -106,9 +106,12 @@ #define IMPORT_FROM 108 /* Index in name list */ #define JUMP_FORWARD 110 /* Number of bytes to skip */ -#define JUMP_IF_FALSE 111 /* "" */ -#define JUMP_IF_TRUE 112 /* "" */ -#define JUMP_ABSOLUTE 113 /* Target byte offset from beginning of code */ +#define JUMP_IF_FALSE_OR_POP 111 /* Target byte offset from beginning + of code */ +#define JUMP_IF_TRUE_OR_POP 112 /* "" */ +#define JUMP_ABSOLUTE 113 /* "" */ +#define POP_JUMP_IF_FALSE 114 /* "" */ +#define POP_JUMP_IF_TRUE 115 /* "" */ #define LOAD_GLOBAL 116 /* Index in name list */
