]> granicus.if.org Git - python/commitdiff
bpo-29469: Remove unnecessary peephole optimizer (GH-4863)
authorINADA Naoki <methane@users.noreply.github.com>
Thu, 14 Dec 2017 13:18:26 +0000 (22:18 +0900)
committerGitHub <noreply@github.com>
Thu, 14 Dec 2017 13:18:26 +0000 (22:18 +0900)
Conversions like `not a is b -> a is not b` are implemented
in AST optimizer in previous commit (7ea143a).
So this commit removes them from peephole optimizer.

Python/peephole.c

index 3c5290fadc070908eba80a55a58d3c604b22d1bd..58171465633be3d73d25adac219d1a1fb2b5378b 100644 (file)
@@ -345,21 +345,6 @@ PyCode_Optimize(PyObject *code, PyObject* consts, PyObject *names,
         in_consts = 0;
 
         switch (opcode) {
-                /* not a is b -->  a is not b
-                   not a in b -->  a not in b
-                   not a is not b -->  a is b
-                   not a not in b -->  a in b
-                */
-            case COMPARE_OP:
-                j = get_arg(codestr, i);
-                if (j < 6 || j > 9 ||
-                    nextop != UNARY_NOT ||
-                    !ISBASICBLOCK(blocks, op_start, i + 1))
-                    break;
-                codestr[i] = PACKOPARG(opcode, j^1);
-                fill_nops(codestr, i + 1, nexti + 1);
-                break;
-
                 /* Skip over LOAD_CONST trueconst
                    POP_JUMP_IF_FALSE xx.  This improves
                    "while 1" performance.  */