From: Dmitry Stogov Date: Wed, 19 Jul 2017 12:41:46 +0000 (+0300) Subject: Convert CONCAT into FAST_CONCAT for non-object operands X-Git-Tag: php-7.2.0beta2~100 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3185f8628f7d94c0b69671d7c58f92b5b94110b9;p=php Convert CONCAT into FAST_CONCAT for non-object operands --- diff --git a/ext/opcache/Optimizer/dfa_pass.c b/ext/opcache/Optimizer/dfa_pass.c index 532597713d..9dbd4d1fb3 100644 --- a/ext/opcache/Optimizer/dfa_pass.c +++ b/ext/opcache/Optimizer/dfa_pass.c @@ -649,6 +649,11 @@ void zend_dfa_optimize_op_array(zend_op_array *op_array, zend_optimizer_ctx *ctx ZVAL_DOUBLE(&tmp, zval_get_double(zv)); opline->op2.constant = zend_optimizer_add_literal(op_array, &tmp); } + } else if (opline->opcode == ZEND_CONCAT) { + if (!(OP1_INFO() & MAY_BE_OBJECT) + && !(OP2_INFO() & MAY_BE_OBJECT)) { + opline->opcode = ZEND_FAST_CONCAT; + } } }