From a0cc6d426f709bf44741cd7254221bbc6e31c6a4 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Wed, 31 May 2017 09:53:10 +0300 Subject: [PATCH] New optimization pattern --- ext/opcache/Optimizer/pass3.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/ext/opcache/Optimizer/pass3.c b/ext/opcache/Optimizer/pass3.c index e5d032cd29..dfb3e0dbcd 100644 --- a/ext/opcache/Optimizer/pass3.c +++ b/ext/opcache/Optimizer/pass3.c @@ -299,6 +299,13 @@ void zend_optimizer_pass3(zend_op_array *op_array) JMPZ_EX(X,L1+1) */ ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target + 1); break; + } else if (target->opcode == ZEND_BOOL && + SAME_VAR(opline->result, target->op1)) { + /* convert Y = JMPZ_EX(X,L1), L1: Z = BOOL(Y) to + Z = JMPZ_EX(X,L1+1) */ + opline->result.var = target->result.var; + ZEND_SET_OP_JMP_ADDR(opline, opline->op2, target + 1); + break; } else { break; } -- 2.50.1