Lines Matching refs:ssa

24 static inline bool is_in_use_chain(zend_ssa *ssa, int var, int check) {  in is_in_use_chain()  argument
26 FOREACH_USE(&ssa->vars[var], use) { in is_in_use_chain()
34 static inline bool is_in_phi_use_chain(zend_ssa *ssa, int var, zend_ssa_phi *check) { in is_in_phi_use_chain() argument
36 FOREACH_PHI_USE(&ssa->vars[var], phi) { in is_in_phi_use_chain()
44 static inline bool is_used_by_op(zend_ssa *ssa, int op, int check) { in is_used_by_op() argument
45 zend_ssa_op *ssa_op = &ssa->ops[op]; in is_used_by_op()
51 static inline bool is_defined_by_op(zend_ssa *ssa, int op, int check) { in is_defined_by_op() argument
52 zend_ssa_op *ssa_op = &ssa->ops[op]; in is_defined_by_op()
58 static inline bool is_in_phi_sources(zend_ssa *ssa, zend_ssa_phi *phi, int check) { in is_in_phi_sources() argument
104 (i), (ssa->vars[i].var < op_array->last_var ? "CV $" : "TMP"), \
105 (ssa->vars[i].var < op_array->last_var ? ZSTR_VAL(op_array->vars[ssa->vars[i].var]) : "")
111 int ssa_verify_integrity(zend_op_array *op_array, zend_ssa *ssa, const char *extra) { in ssa_verify_integrity() argument
112 zend_cfg *cfg = &ssa->cfg; in ssa_verify_integrity()
117 for (i = 0; i < ssa->vars_count; i++) { in ssa_verify_integrity()
118 zend_ssa_var *var = &ssa->vars[i]; in ssa_verify_integrity()
120 uint32_t type = ssa->var_info[i].type; in ssa_verify_integrity()
134 if (!is_defined_by_op(ssa, var->definition, i)) { in ssa_verify_integrity()
151 if (!is_used_by_op(ssa, use, i)) { in ssa_verify_integrity()
162 if (!is_in_phi_sources(ssa, phi, i)) { in ssa_verify_integrity()
177 zend_ssa_op *ssa_op = &ssa->ops[i]; in ssa_verify_integrity()
208 if (ssa_op->op1_use >= ssa->vars_count) { in ssa_verify_integrity()
211 if (!is_in_use_chain(ssa, ssa_op->op1_use, i)) { in ssa_verify_integrity()
215 if (VAR_NUM(opline->op1.var) != ssa->vars[ssa_op->op1_use].var) { in ssa_verify_integrity()
221 if (ssa_op->op2_use >= ssa->vars_count) { in ssa_verify_integrity()
224 if (!is_in_use_chain(ssa, ssa_op->op2_use, i)) { in ssa_verify_integrity()
228 if (VAR_NUM(opline->op2.var) != ssa->vars[ssa_op->op2_use].var) { in ssa_verify_integrity()
234 if (ssa_op->result_use >= ssa->vars_count) { in ssa_verify_integrity()
237 if (!is_in_use_chain(ssa, ssa_op->result_use, i)) { in ssa_verify_integrity()
241 if (VAR_NUM(opline->result.var) != ssa->vars[ssa_op->result_use].var) { in ssa_verify_integrity()
247 if (ssa_op->op1_def >= ssa->vars_count) { in ssa_verify_integrity()
250 if (ssa->vars[ssa_op->op1_def].definition != i) { in ssa_verify_integrity()
254 if (VAR_NUM(opline->op1.var) != ssa->vars[ssa_op->op1_def].var) { in ssa_verify_integrity()
260 if (ssa_op->op2_def >= ssa->vars_count) { in ssa_verify_integrity()
263 if (ssa->vars[ssa_op->op2_def].definition != i) { in ssa_verify_integrity()
267 if (VAR_NUM(opline->op2.var) != ssa->vars[ssa_op->op2_def].var) { in ssa_verify_integrity()
273 if (ssa_op->result_def >= ssa->vars_count) { in ssa_verify_integrity()
276 if (ssa->vars[ssa_op->result_def].definition != i) { in ssa_verify_integrity()
280 if (VAR_NUM(opline->result.var) != ssa->vars[ssa_op->result_def].var) { in ssa_verify_integrity()
295 if (!is_in_phi_use_chain(ssa, source, phi)) { in ssa_verify_integrity()
298 if (ssa->vars[source].var != ssa->vars[phi->ssa_var].var) { in ssa_verify_integrity()
311 if (ssa->vars[phi->ssa_var].definition_phi != phi) { in ssa_verify_integrity()
338 if (ssa->blocks[i].phis) { in ssa_verify_integrity()