com php-src: Add support for **= in opcache optimizer : ext/opcache/Optimizer/block_pass.c ext/opcache/Opti mizer/compact_literals.c
ext/opcache/Optimizer/pass2. c ext/opcache/Optimizer/zend_optimizer.c
| From: | Bob Weinand | Date: | Sun, 13 Sep 2015 10:35:35 +0000 |
| Subject: | com php-src: Add support for **= in opcache optimizer : ext/opcache/Optimizer/block_pass.c ext/opcache/Opti mizer/compact_literals.c ext/opcache/Optimizer/pass2. c ext/opcache/Optimizer/zend_optimizer.c |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-89010@lists.php.net to get a copy of this message | ||
Commit: fe08b933e4ab380d4b07275384226b688f82eeac
Author: Bob Weinand <bobwei9@hotmail.com> Sun, 13 Sep 2015 12:35:35 +0200
Parents: 969dcf7b61b1570a8dec1c41e9b967643bb19085
Branches: master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=fe08b933e4ab380d4b07275384226b688f82eeac
Log:
Add support for **= in opcache optimizer
Changed paths:
M ext/opcache/Optimizer/block_pass.c
M ext/opcache/Optimizer/compact_literals.c
M ext/opcache/Optimizer/pass2..c
M ext/opcache/Optimizer/zend_optimizer.c
Diff:
diff --git a/ext/opcache/Optimizer/block_pass.c b/ext/opcache/Optimizer/block_pass.c
index c723440..b7e1682 100644
--- a/ext/opcache/Optimizer/block_pass.c
+++ b/ext/opcache/Optimizer/block_pass.c
@@ -1866,6 +1866,7 @@ static void zend_t_usage(zend_code_block *block, zend_op_array *op_array,
zend_b
case ZEND_ASSIGN_SUB:
case ZEND_ASSIGN_MUL:
case ZEND_ASSIGN_DIV:
+ case ZEND_ASSIGN_POW:
case ZEND_ASSIGN_MOD:
case ZEND_ASSIGN_SL:
case ZEND_ASSIGN_SR:
diff --git a/ext/opcache/Optimizer/compact_literals.c b/ext/opcache/Optimizer/compact_literals..c
index 1b7e1d9..7650ae1 100644
--- a/ext/opcache/Optimizer/compact_literals.c
+++ b/ext/opcache/Optimizer/compact_literals.c
@@ -263,6 +263,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
case ZEND_ASSIGN_SUB:
case ZEND_ASSIGN_MUL:
case ZEND_ASSIGN_DIV:
+ case ZEND_ASSIGN_POW:
case ZEND_ASSIGN_MOD:
case ZEND_ASSIGN_SL:
case ZEND_ASSIGN_SR:
diff --git a/ext/opcache/Optimizer/pass2.c b/ext/opcache/Optimizer/pass2.c
index a9d85da..143167f 100644
--- a/ext/opcache/Optimizer/pass2.c
+++ b/ext/opcache/Optimizer/pass2..c
@@ -45,6 +45,7 @@ void zend_optimizer_pass2(zend_op_array *op_array)
case ZEND_SUB:
case ZEND_MUL:
case ZEND_DIV:
+ case ZEND_POW:
if (ZEND_OP1_TYPE(opline) == IS_CONST) {
if (Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_STRING) {
convert_scalar_to_number(&ZEND_OP1_LITERAL(opline));
@@ -55,6 +56,7 @@ void zend_optimizer_pass2(zend_op_array *op_array)
case ZEND_ASSIGN_SUB:
case ZEND_ASSIGN_MUL:
case ZEND_ASSIGN_DIV:
+ case ZEND_ASSIGN_POW:
if (opline->extended_value != 0) {
/* object tristate op - don't attempt to optimize it! */
break;
diff --git a/ext/opcache/Optimizer/zend_optimizer.c b/ext/opcache/Optimizer/zend_optimizer.c
index fe258ad..22bb806 100644
--- a/ext/opcache/Optimizer/zend_optimizer.c
+++ b/ext/opcache/Optimizer/zend_optimizer.c
@@ -234,6 +234,7 @@ void zend_optimizer_update_op2_const(zend_op_array *op_array,
case ZEND_ASSIGN_SUB:
case ZEND_ASSIGN_MUL:
case ZEND_ASSIGN_DIV:
+ case ZEND_ASSIGN_POW:
case ZEND_ASSIGN_MOD:
case ZEND_ASSIGN_SL:
case ZEND_ASSIGN_SR:
@@ -253,6 +254,7 @@ void zend_optimizer_update_op2_const(zend_op_array *op_array,
(opline-1)->opcode == ZEND_ASSIGN_SUB ||
(opline-1)->opcode == ZEND_ASSIGN_MUL ||
(opline-1)->opcode == ZEND_ASSIGN_DIV ||
+ (opline-1)->opcode == ZEND_ASSIGN_POW ||
(opline-1)->opcode == ZEND_ASSIGN_MOD ||
(opline-1)->opcode == ZEND_ASSIGN_SL ||
(opline-1)->opcode == ZEND_ASSIGN_SR ||