From 85a86e58b220eaf2012f652b97fbeb2d2f85646d Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 11 Jul 2017 02:36:14 +0300 Subject: [PATCH] Remove unusded phi --- ext/opcache/Optimizer/sccp.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ext/opcache/Optimizer/sccp.c b/ext/opcache/Optimizer/sccp.c index 62da6ff4aa6..fe3ff0f921a 100644 --- a/ext/opcache/Optimizer/sccp.c +++ b/ext/opcache/Optimizer/sccp.c @@ -1280,6 +1280,9 @@ static int replace_constant_operands(sccp_ctx *ctx) { zend_op *opline = &op_array->opcodes[use]; zend_ssa_op *ssa_op = &ssa->ops[use]; if (try_replace_op1(ctx, opline, ssa_op, i, value)) { + if (opline->opcode == ZEND_NOP) { + removed_ops++; + } ZEND_ASSERT(ssa_op->op1_def == -1); if (ssa_op->op1_use != ssa_op->op2_use) { zend_ssa_unlink_use_chain(ssa, use, ssa_op->op1_use); @@ -1392,11 +1395,12 @@ static int replace_constant_operands(sccp_ctx *ctx) { Z_TRY_ADDREF_P(value); } } - /*if (var->definition_phi + if (var->definition_phi + && value_known(&ctx->values[i]) && var->use_chain < 0 - && ssa->phi_use_chain == NULL) { + && var->phi_use_chain == NULL) { zend_ssa_remove_phi(ssa, var->definition_phi); - }*/ + } } return removed_ops;