Lines Matching refs:ssa
76 static zend_result zend_build_equi_escape_sets(int *parent, zend_op_array *op_array, zend_ssa *ssa)… in zend_build_equi_escape_sets() argument
78 zend_ssa_var *ssa_vars = ssa->vars; in zend_build_equi_escape_sets()
79 int ssa_vars_count = ssa->vars_count; in zend_build_equi_escape_sets()
97 for (j = 0; j < ssa->cfg.blocks[p->block].predecessors_count; j++) { in zend_build_equi_escape_sets()
103 zend_ssa_op *op = ssa->ops + def; in zend_build_equi_escape_sets()
150 static bool is_allocation_def(zend_op_array *op_array, zend_ssa *ssa, int def, int var, const zend_… in is_allocation_def() argument
152 zend_ssa_op *ssa_op = ssa->ops + def; in is_allocation_def()
221 static bool is_local_def(zend_op_array *op_array, zend_ssa *ssa, int def, int var, const zend_scrip… in is_local_def() argument
223 zend_ssa_op *op = ssa->ops + def; in is_local_def()
271 static bool is_escape_use(zend_op_array *op_array, zend_ssa *ssa, int use, int var) /* {{{ */ in is_escape_use() argument
273 zend_ssa_op *ssa_op = ssa->ops + use; in is_escape_use()
334 || (ssa_op->op1_def >= 0 && ssa->vars[ssa_op->op1_def].alias)) { in is_escape_use()
350 || (ssa_op->op1_def >= 0 && ssa->vars[ssa_op->op1_def].alias)) { in is_escape_use()
382 …nd_ssa_escape_analysis(const zend_script *script, zend_op_array *op_array, zend_ssa *ssa) /* {{{ */ in zend_ssa_escape_analysis() argument
384 zend_ssa_var *ssa_vars = ssa->vars; in zend_ssa_escape_analysis()
385 int ssa_vars_count = ssa->vars_count; in zend_ssa_escape_analysis()
399 && (ssa->var_info[i].type & (MAY_BE_ARRAY|MAY_BE_OBJECT)) in zend_ssa_escape_analysis()
400 && is_allocation_def(op_array, ssa, ssa_vars[i].definition, i, script)) { in zend_ssa_escape_analysis()
416 if (zend_build_equi_escape_sets(ees, op_array, ssa) == FAILURE) { in zend_ssa_escape_analysis()
427 } else if (ssa_vars[i].alias && (ssa->var_info[i].type & MAY_BE_REF)) { in zend_ssa_escape_analysis()
433 && (ssa->var_info[i].type & (MAY_BE_ARRAY|MAY_BE_OBJECT))) { in zend_ssa_escape_analysis()
434 if (!is_local_def(op_array, ssa, ssa_vars[i].definition, i, script)) { in zend_ssa_escape_analysis()
440 && is_allocation_def(op_array, ssa, ssa_vars[i].definition, i, script)) { in zend_ssa_escape_analysis()
454 if (is_escape_use(op_array, ssa, use, i)) { in zend_ssa_escape_analysis()
479 zend_ssa_op *op = ssa->ops + use; in zend_ssa_escape_analysis()