Skip to content

Commit

Permalink
Fixed SSA reconstruction
Browse files Browse the repository at this point in the history
  • Loading branch information
dstogov committed Jul 5, 2017
1 parent 37ec4e0 commit 7084fad
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
6 changes: 5 additions & 1 deletion ext/opcache/Optimizer/sccp.c
Expand Up @@ -1203,7 +1203,11 @@ static void replace_constant_operands(sccp_ctx *ctx) {
zend_ssa_op *ssa_op = &ssa->ops[use];
if (try_replace_op1(ctx, opline, ssa_op, i, value)) {
ZEND_ASSERT(ssa_op->op1_def == -1);
zend_ssa_unlink_use_chain(ssa, use, ssa_op->op1_use);
if (ssa_op->op1_use != ssa_op->op2_use) {
zend_ssa_unlink_use_chain(ssa, use, ssa_op->op1_use);
} else {
ssa_op->op2_use_chain = ssa_op->op1_use_chain;
}
ssa_op->op1_use = -1;
ssa_op->op1_use_chain = -1;
}
Expand Down
6 changes: 5 additions & 1 deletion ext/opcache/Optimizer/zend_ssa.c
Expand Up @@ -1170,7 +1170,11 @@ void zend_ssa_remove_instr(zend_ssa *ssa, zend_op *opline, zend_ssa_op *ssa_op)
ssa_op->res_use_chain = -1;
}
if (ssa_op->op1_use >= 0) {
zend_ssa_unlink_use_chain(ssa, ssa_op - ssa->ops, ssa_op->op1_use);
if (ssa_op->op1_use != ssa_op->op2_use) {
zend_ssa_unlink_use_chain(ssa, ssa_op - ssa->ops, ssa_op->op1_use);
} else {
ssa_op->op2_use_chain = ssa_op->op1_use_chain;
}
ssa_op->op1_use = -1;
ssa_op->op1_use_chain = -1;
}
Expand Down

0 comments on commit 7084fad

Please sign in to comment.