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 */