From af9b127feda07171bb1bf0b53360efb3ae9cadc0 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Fri, 13 Sep 2019 12:38:57 +0300 Subject: [PATCH] Make constant and copy propagation only for IS_TMP_VAR operands --- ext/opcache/Optimizer/block_pass.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ext/opcache/Optimizer/block_pass.c b/ext/opcache/Optimizer/block_pass.c index e699d03d62..3327ec86df 100644 --- a/ext/opcache/Optimizer/block_pass.c +++ b/ext/opcache/Optimizer/block_pass.c @@ -181,7 +181,7 @@ static void zend_optimize_block(zend_basic_block *block, zend_op_array *op_array end = opline + block->len; while (opline < end) { /* Constant Propagation: strip X = QM_ASSIGN(const) */ - if ((opline->op1_type & (IS_TMP_VAR|IS_VAR)) && + if (opline->op1_type == IS_TMP_VAR && opline->opcode != ZEND_FREE) { src = VAR_SOURCE(opline->op1); if (src && @@ -257,7 +257,7 @@ static void zend_optimize_block(zend_basic_block *block, zend_op_array *op_array } /* Constant Propagation: strip X = QM_ASSIGN(const) */ - if (opline->op2_type & (IS_TMP_VAR|IS_VAR)) { + if (opline->op2_type == IS_TMP_VAR) { src = VAR_SOURCE(opline->op2); if (src && src->opcode == ZEND_QM_ASSIGN && @@ -860,7 +860,7 @@ optimize_const_unary_op: case ZEND_RETURN: case ZEND_EXIT: - if (opline->op1_type & (IS_TMP_VAR|IS_VAR)) { + if (opline->op1_type == IS_TMP_VAR) { src = VAR_SOURCE(opline->op1); if (src && src->opcode == ZEND_QM_ASSIGN) { zend_op *op = src + 1; -- 2.40.0