We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 960f922 commit 8cb1ae9Copy full SHA for 8cb1ae9
ext/opcache/Optimizer/scdf.c
@@ -193,9 +193,12 @@ static zend_bool kept_alive_by_loop_var_free(scdf_ctx *scdf, uint32_t block_idx)
193
zend_op *opline = &op_array->opcodes[i];
194
if (opline->opcode == ZEND_FE_FREE ||
195
(opline->opcode == ZEND_FREE && opline->extended_value == ZEND_FREE_SWITCH)) {
196
- zend_op *def_opline = zend_optimizer_get_loop_var_def(op_array, opline);
197
- if (def_opline) {
198
- uint32_t def_block = cfg->map[def_opline - op_array->opcodes];
+ int ssa_var = scdf->ssa->ops[i].op1_use;
+ if (ssa_var >= 0) {
+ int op_num = scdf->ssa->vars[ssa_var].definition;
199
+ uint32_t def_block;
200
+ ZEND_ASSERT(op_num >= 0);
201
+ def_block = cfg->map[op_num];
202
if (zend_bitset_in(scdf->executable_blocks, def_block)) {
203
return 1;
204
}
0 commit comments