Lines Matching refs:ssa

77 static int zend_build_equi_escape_sets(int *parent, zend_op_array *op_array, zend_ssa *ssa) /* {{{ …  in zend_build_equi_escape_sets()  argument
79 zend_ssa_var *ssa_vars = ssa->vars; in zend_build_equi_escape_sets()
80 int ssa_vars_count = ssa->vars_count; in zend_build_equi_escape_sets()
98 for (j = 0; j < ssa->cfg.blocks[p->block].predecessors_count; j++) { in zend_build_equi_escape_sets()
104 zend_ssa_op *op = ssa->ops + def; in zend_build_equi_escape_sets()
167 static int is_allocation_def(zend_op_array *op_array, zend_ssa *ssa, int def, int var, const zend_s… in is_allocation_def() argument
169 zend_ssa_op *op = ssa->ops + def; in is_allocation_def()
179 …_class_entry(script, Z_STR_P(CRT_CONSTANT_EX(op_array, opline, opline->op1, ssa->rt_constants)+1)); in is_allocation_def()
194 && Z_TYPE_P(CRT_CONSTANT_EX(op_array, opline, opline->op1, ssa->rt_constants)) == IS_ARRAY) { in is_allocation_def()
211 && Z_TYPE_P(CRT_CONSTANT_EX(op_array, opline, opline->op2, ssa->rt_constants)) == IS_ARRAY) { in is_allocation_def()
233 static int is_local_def(zend_op_array *op_array, zend_ssa *ssa, int def, int var, const zend_script… in is_local_def() argument
235 zend_ssa_op *op = ssa->ops + def; in is_local_def()
248 …_class_entry(script, Z_STR_P(CRT_CONSTANT_EX(op_array, opline, opline->op1, ssa->rt_constants)+1)); in is_local_def()
277 static int is_escape_use(zend_op_array *op_array, zend_ssa *ssa, int use, int var) /* {{{ */ in is_escape_use() argument
279 zend_ssa_op *op = ssa->ops + use; in is_escape_use()
340 || (op->op1_def >= 0 && ssa->vars[op->op1_def].alias)) { in is_escape_use()
356 || (op->op1_def >= 0 && ssa->vars[op->op1_def].alias)) { in is_escape_use()
388 int zend_ssa_escape_analysis(const zend_script *script, zend_op_array *op_array, zend_ssa *ssa) /* … in zend_ssa_escape_analysis() argument
390 zend_ssa_var *ssa_vars = ssa->vars; in zend_ssa_escape_analysis()
391 int ssa_vars_count = ssa->vars_count; in zend_ssa_escape_analysis()
405 && (ssa->var_info[i].type & (MAY_BE_ARRAY|MAY_BE_OBJECT)) in zend_ssa_escape_analysis()
406 && is_allocation_def(op_array, ssa, ssa_vars[i].definition, i, script)) { in zend_ssa_escape_analysis()
422 if (zend_build_equi_escape_sets(ees, op_array, ssa) != SUCCESS) { in zend_ssa_escape_analysis()
432 } else if (ssa_vars[i].alias && (ssa->var_info[i].type & MAY_BE_REF)) { in zend_ssa_escape_analysis()
438 && (ssa->var_info[i].type & (MAY_BE_ARRAY|MAY_BE_OBJECT))) { in zend_ssa_escape_analysis()
439 if (!is_local_def(op_array, ssa, ssa_vars[i].definition, i, script)) { in zend_ssa_escape_analysis()
445 && is_allocation_def(op_array, ssa, ssa_vars[i].definition, i, script)) { in zend_ssa_escape_analysis()
459 if (is_escape_use(op_array, ssa, use, i)) { in zend_ssa_escape_analysis()
484 zend_ssa_op *op = ssa->ops + use; in zend_ssa_escape_analysis()