Lines Matching refs:ssa_op

74 		const zend_op *opline, const zend_ssa_op *ssa_op,  in may_have_side_effects()  argument
165 if (is_bad_mod(ssa, ssa_op->op1_use, ssa_op->op1_def)) { in may_have_side_effects()
194 return is_bad_mod(ssa, ssa_op->op1_use, ssa_op->op1_def); in may_have_side_effects()
211 return is_bad_mod(ssa, ssa_op->op1_use, ssa_op->op1_def); in may_have_side_effects()
238 …ine void add_operands_to_worklists(context *ctx, zend_op *opline, zend_ssa_op *ssa_op, int check) { in add_operands_to_worklists() argument
239 if (ssa_op->result_use >= 0) { in add_operands_to_worklists()
240 add_to_worklists(ctx, ssa_op->result_use, check); in add_operands_to_worklists()
242 if (ssa_op->op1_use >= 0) { in add_operands_to_worklists()
243 if (!zend_ssa_is_no_val_use(opline, ssa_op, ssa_op->op1_use)) { in add_operands_to_worklists()
244 add_to_worklists(ctx, ssa_op->op1_use, check); in add_operands_to_worklists()
246 add_to_phi_worklist_no_val(ctx, ssa_op->op1_use); in add_operands_to_worklists()
249 if (ssa_op->op2_use >= 0) { in add_operands_to_worklists()
250 if (!zend_ssa_is_no_val_use(opline, ssa_op, ssa_op->op2_use)) { in add_operands_to_worklists()
251 add_to_worklists(ctx, ssa_op->op2_use, check); in add_operands_to_worklists()
253 add_to_phi_worklist_no_val(ctx, ssa_op->op2_use); in add_operands_to_worklists()
341 static zend_bool dce_instr(context *ctx, zend_op *opline, zend_ssa_op *ssa_op) { in dce_instr() argument
352 …&& (ssa->var_info[ssa_op->op1_use].type & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURC… in dce_instr()
353 && !is_var_dead(ctx, ssa_op->op1_use)) { in dce_instr()
357 if ((opline->op1_type & (IS_VAR|IS_TMP_VAR))&& !is_var_dead(ctx, ssa_op->op1_use)) { in dce_instr()
358 if (!try_remove_var_def(ctx, ssa_op->op1_use, ssa_op->op1_use_chain, opline)) { in dce_instr()
359 …if (ssa->var_info[ssa_op->op1_use].type & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURC… in dce_instr()
361 free_var = ssa_op->op1_use; in dce_instr()
366 if ((opline->op2_type & (IS_VAR|IS_TMP_VAR)) && !is_var_dead(ctx, ssa_op->op2_use)) { in dce_instr()
367 if (!try_remove_var_def(ctx, ssa_op->op2_use, ssa_op->op2_use_chain, opline)) { in dce_instr()
368 …if (ssa->var_info[ssa_op->op2_use].type & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURC… in dce_instr()
374 free_var = ssa_op->op2_use; in dce_instr()
380 zend_ssa_rename_defs_of_instr(ctx->ssa, ssa_op); in dce_instr()
381 zend_ssa_remove_instr(ctx->ssa, opline, ssa_op); in dce_instr()
388 ssa_op->op1_use = free_var; in dce_instr()
389 ssa_op->op1_use_chain = ssa->vars[free_var].use_chain; in dce_instr()
390 ssa->vars[free_var].use_chain = ssa_op - ssa->ops; in dce_instr()
403 zend_ssa_op *ssa_op = &ssa->ops[block->start + block->len - 1]; in simplify_jumps() local
413 ZEND_ASSERT(ssa_op->result_def >= 0); in simplify_jumps()
414 if (ssa->vars[ssa_op->result_def].use_chain < 0 in simplify_jumps()
415 && ssa->vars[ssa_op->result_def].phi_use_chain == NULL) { in simplify_jumps()
418 zend_ssa_remove_result_def(ssa, ssa_op); in simplify_jumps()
423 ZEND_ASSERT(ssa_op->result_def >= 0); in simplify_jumps()
424 if (ssa->vars[ssa_op->result_def].use_chain < 0 in simplify_jumps()
425 && ssa->vars[ssa_op->result_def].phi_use_chain == NULL) { in simplify_jumps()
428 zend_ssa_remove_result_def(ssa, ssa_op); in simplify_jumps()
479 ZEND_ASSERT(ssa_op->result_def >= 0); in simplify_jumps()
480 if (ssa->vars[ssa_op->result_def].use_chain >= 0 in simplify_jumps()
481 || ssa->vars[ssa_op->result_def].phi_use_chain != NULL) { in simplify_jumps()
485 zend_ssa_remove_result_def(ssa, ssa_op); in simplify_jumps()
536 … may_break_varargs(const zend_op_array *op_array, const zend_ssa *ssa, const zend_ssa_op *ssa_op) { in may_break_varargs() argument
537 if (ssa_op->op1_def >= 0 in may_break_varargs()
538 && ssa->vars[ssa_op->op1_def].var < op_array->num_args) { in may_break_varargs()
541 if (ssa_op->op2_def >= 0 in may_break_varargs()
542 && ssa->vars[ssa_op->op2_def].var < op_array->num_args) { in may_break_varargs()
545 if (ssa_op->result_def >= 0 in may_break_varargs()
546 && ssa->vars[ssa_op->result_def].var < op_array->num_args) { in may_break_varargs()