mirror of
https://github.com/php/php-src.git
synced 2026-03-24 00:02:20 +01:00
Fixed SSA reconstruction
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user