Skip to content

Commit fe08b93

Browse files
committed
Add support for **= in opcache optimizer
1 parent 969dcf7 commit fe08b93

File tree

4 files changed

+6
-0
lines changed

4 files changed

+6
-0
lines changed

ext/opcache/Optimizer/block_pass.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1866,6 +1866,7 @@ static void zend_t_usage(zend_code_block *block, zend_op_array *op_array, zend_b
18661866
case ZEND_ASSIGN_SUB:
18671867
case ZEND_ASSIGN_MUL:
18681868
case ZEND_ASSIGN_DIV:
1869+
case ZEND_ASSIGN_POW:
18691870
case ZEND_ASSIGN_MOD:
18701871
case ZEND_ASSIGN_SL:
18711872
case ZEND_ASSIGN_SR:

ext/opcache/Optimizer/compact_literals.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
263263
case ZEND_ASSIGN_SUB:
264264
case ZEND_ASSIGN_MUL:
265265
case ZEND_ASSIGN_DIV:
266+
case ZEND_ASSIGN_POW:
266267
case ZEND_ASSIGN_MOD:
267268
case ZEND_ASSIGN_SL:
268269
case ZEND_ASSIGN_SR:

ext/opcache/Optimizer/pass2.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ void zend_optimizer_pass2(zend_op_array *op_array)
4545
case ZEND_SUB:
4646
case ZEND_MUL:
4747
case ZEND_DIV:
48+
case ZEND_POW:
4849
if (ZEND_OP1_TYPE(opline) == IS_CONST) {
4950
if (Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_STRING) {
5051
convert_scalar_to_number(&ZEND_OP1_LITERAL(opline));
@@ -55,6 +56,7 @@ void zend_optimizer_pass2(zend_op_array *op_array)
5556
case ZEND_ASSIGN_SUB:
5657
case ZEND_ASSIGN_MUL:
5758
case ZEND_ASSIGN_DIV:
59+
case ZEND_ASSIGN_POW:
5860
if (opline->extended_value != 0) {
5961
/* object tristate op - don't attempt to optimize it! */
6062
break;

ext/opcache/Optimizer/zend_optimizer.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ void zend_optimizer_update_op2_const(zend_op_array *op_array,
234234
case ZEND_ASSIGN_SUB:
235235
case ZEND_ASSIGN_MUL:
236236
case ZEND_ASSIGN_DIV:
237+
case ZEND_ASSIGN_POW:
237238
case ZEND_ASSIGN_MOD:
238239
case ZEND_ASSIGN_SL:
239240
case ZEND_ASSIGN_SR:
@@ -253,6 +254,7 @@ void zend_optimizer_update_op2_const(zend_op_array *op_array,
253254
(opline-1)->opcode == ZEND_ASSIGN_SUB ||
254255
(opline-1)->opcode == ZEND_ASSIGN_MUL ||
255256
(opline-1)->opcode == ZEND_ASSIGN_DIV ||
257+
(opline-1)->opcode == ZEND_ASSIGN_POW ||
256258
(opline-1)->opcode == ZEND_ASSIGN_MOD ||
257259
(opline-1)->opcode == ZEND_ASSIGN_SL ||
258260
(opline-1)->opcode == ZEND_ASSIGN_SR ||

0 commit comments

Comments
 (0)