Lines Matching refs:ssa_op

143 void zend_ssa_remove_instr(zend_ssa *ssa, zend_op *opline, zend_ssa_op *ssa_op);
157 static zend_always_inline void zend_ssa_remove_result_def(zend_ssa *ssa, zend_ssa_op *ssa_op) in zend_ssa_remove_result_def() argument
159 zend_ssa_var *var = &ssa->vars[ssa_op->result_def]; in zend_ssa_remove_result_def()
161 ssa_op->result_def = -1; in zend_ssa_remove_result_def()
164 static zend_always_inline void zend_ssa_remove_op1_def(zend_ssa *ssa, zend_ssa_op *ssa_op) in zend_ssa_remove_op1_def() argument
166 zend_ssa_var *var = &ssa->vars[ssa_op->op1_def]; in zend_ssa_remove_op1_def()
168 ssa_op->op1_def = -1; in zend_ssa_remove_op1_def()
171 static zend_always_inline void zend_ssa_remove_op2_def(zend_ssa *ssa, zend_ssa_op *ssa_op) in zend_ssa_remove_op2_def() argument
173 zend_ssa_var *var = &ssa->vars[ssa_op->op2_def]; in zend_ssa_remove_op2_def()
175 ssa_op->op2_def = -1; in zend_ssa_remove_op2_def()
180 static zend_always_inline int zend_ssa_next_use(const zend_ssa_op *ssa_op, int var, int use) in END_EXTERN_C()
182 ssa_op += use; in END_EXTERN_C()
183 if (ssa_op->op1_use == var) { in END_EXTERN_C()
184 return ssa_op->op1_use_chain; in END_EXTERN_C()
185 } else if (ssa_op->op2_use == var) { in END_EXTERN_C()
186 return ssa_op->op2_use_chain; in END_EXTERN_C()
188 return ssa_op->res_use_chain; in END_EXTERN_C()
207 …_inline zend_bool zend_ssa_is_no_val_use(const zend_op *opline, const zend_ssa_op *ssa_op, int var) in zend_ssa_is_no_val_use() argument
210 return ssa_op->op1_use == var && ssa_op->op2_use != var; in zend_ssa_is_no_val_use()
213 return ssa_op->op2_use == var && ssa_op->op1_use != var; in zend_ssa_is_no_val_use()
215 if (ssa_op->result_use == var && opline->opcode != ZEND_ADD_ARRAY_ELEMENT) { in zend_ssa_is_no_val_use()
216 return ssa_op->op1_use != var && ssa_op->op2_use != var; in zend_ssa_is_no_val_use()
221 static zend_always_inline void zend_ssa_rename_defs_of_instr(zend_ssa *ssa, zend_ssa_op *ssa_op) { in zend_ssa_rename_defs_of_instr() argument
223 if (ssa_op->op1_def >= 0) { in zend_ssa_rename_defs_of_instr()
224 if (ssa_op->op1_use >= 0) { in zend_ssa_rename_defs_of_instr()
225 zend_ssa_rename_var_uses(ssa, ssa_op->op1_def, ssa_op->op1_use, 1); in zend_ssa_rename_defs_of_instr()
227 ssa->vars[ssa_op->op1_def].definition = -1; in zend_ssa_rename_defs_of_instr()
228 ssa_op->op1_def = -1; in zend_ssa_rename_defs_of_instr()
230 if (ssa_op->op2_def >= 0) { in zend_ssa_rename_defs_of_instr()
231 if (ssa_op->op2_use >= 0) { in zend_ssa_rename_defs_of_instr()
232 zend_ssa_rename_var_uses(ssa, ssa_op->op2_def, ssa_op->op2_use, 1); in zend_ssa_rename_defs_of_instr()
234 ssa->vars[ssa_op->op2_def].definition = -1; in zend_ssa_rename_defs_of_instr()
235 ssa_op->op2_def = -1; in zend_ssa_rename_defs_of_instr()
237 if (ssa_op->result_def >= 0) { in zend_ssa_rename_defs_of_instr()
238 if (ssa_op->result_use >= 0) { in zend_ssa_rename_defs_of_instr()
239 zend_ssa_rename_var_uses(ssa, ssa_op->result_def, ssa_op->result_use, 1); in zend_ssa_rename_defs_of_instr()
241 ssa->vars[ssa_op->result_def].definition = -1; in zend_ssa_rename_defs_of_instr()
242 ssa_op->result_def = -1; in zend_ssa_rename_defs_of_instr()