From: Dmitry Stogov Date: Wed, 31 May 2017 06:53:10 +0000 (+0300) Subject: New optimization pattern X-Git-Tag: php-7.2.0alpha1~33 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a0cc6d426f709bf44741cd7254221bbc6e31c6a4;p=php New optimization pattern --- 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; }