Lines Matching refs:op_array

52 	zend_op_array *op_array;  member
76 zend_op_array *op_array, zend_ssa *ssa, in may_have_side_effects() argument
233 if (op_array->static_variables in may_have_side_effects()
236 (zval*)((char*)op_array->static_variables->arData + in may_have_side_effects()
312 return var_num >= ctx->op_array->last_var; in is_var_dead()
329 && var->use_chain == (opline - ctx->op_array->opcodes)) { in try_remove_var_def()
330 zend_op *def_opline = &ctx->op_array->opcodes[def]; in try_remove_var_def()
405 zend_bitset_excl(ctx->instr_dead, opline - ctx->op_array->opcodes); in dce_instr()
464 static inline zend_bool may_break_varargs(const zend_op_array *op_array, const zend_ssa *ssa, const… in may_break_varargs() argument
466 && ssa->vars[ssa_op->op1_def].var < op_array->num_args) { in may_break_varargs()
470 && ssa->vars[ssa_op->op2_def].var < op_array->num_args) { in may_break_varargs()
474 && ssa->vars[ssa_op->result_def].var < op_array->num_args) { in may_break_varargs()
480 int dce_optimize_op_array(zend_op_array *op_array, zend_ssa *ssa, zend_bool reorder_dtor_effects) { in dce_optimize_op_array() argument
490 ctx.op_array = op_array; in dce_optimize_op_array()
494 ctx.instr_worklist_len = zend_bitset_len(op_array->last); in dce_optimize_op_array()
513 if (phi->var >= op_array->last_var in dce_optimize_op_array()
534 if (op_array->opcodes[i].opcode == ZEND_OP_DATA) { in dce_optimize_op_array()
541 add_operands_to_worklists(&ctx, &op_array->opcodes[i], &ssa->ops[i], ssa, 0); in dce_optimize_op_array()
543 add_operands_to_worklists(&ctx, &op_array->opcodes[op_data], &ssa->ops[op_data], ssa, 0); in dce_optimize_op_array()
545 …} else if (may_have_side_effects(op_array, ssa, &op_array->opcodes[i], &ssa->ops[i], ctx.reorder_d… in dce_optimize_op_array()
546 || zend_may_throw(&op_array->opcodes[i], op_array, ssa) in dce_optimize_op_array()
547 || (has_varargs && may_break_varargs(op_array, ssa, &ssa->ops[i]))) { in dce_optimize_op_array()
548 if (op_array->opcodes[i].opcode == ZEND_NEW in dce_optimize_op_array()
549 && op_array->opcodes[i+1].opcode == ZEND_DO_FCALL in dce_optimize_op_array()
555 add_operands_to_worklists(&ctx, &op_array->opcodes[i], &ssa->ops[i], ssa, 0); in dce_optimize_op_array()
557 add_operands_to_worklists(&ctx, &op_array->opcodes[op_data], &ssa->ops[op_data], ssa, 0); in dce_optimize_op_array()
575 add_operands_to_worklists(&ctx, &op_array->opcodes[i], &ssa->ops[i], ssa, 1); in dce_optimize_op_array()
576 if (i < op_array->last && op_array->opcodes[i+1].opcode == ZEND_OP_DATA) { in dce_optimize_op_array()
578 add_operands_to_worklists(&ctx, &op_array->opcodes[i+1], &ssa->ops[i+1], ssa, 1); in dce_optimize_op_array()
590 removed_ops += dce_instr(&ctx, &op_array->opcodes[i], &ssa->ops[i]); in dce_optimize_op_array()