Lines Matching refs:ssa_op

154 void zend_ssa_remove_defs_of_instr(zend_ssa *ssa, zend_ssa_op *ssa_op);
155 void zend_ssa_remove_instr(zend_ssa *ssa, zend_op *opline, zend_ssa_op *ssa_op);
170 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
172 zend_ssa_var *var = &ssa->vars[ssa_op->result_def]; in zend_ssa_remove_result_def()
174 ssa_op->result_def = -1; in zend_ssa_remove_result_def()
177 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
179 zend_ssa_var *var = &ssa->vars[ssa_op->op1_def]; in zend_ssa_remove_op1_def()
181 ssa_op->op1_def = -1; in zend_ssa_remove_op1_def()
184 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
186 zend_ssa_var *var = &ssa->vars[ssa_op->op2_def]; in zend_ssa_remove_op2_def()
188 ssa_op->op2_def = -1; in zend_ssa_remove_op2_def()
193 static zend_always_inline int zend_ssa_next_use(const zend_ssa_op *ssa_op, int var, int use) in END_EXTERN_C()
195 ssa_op += use; in END_EXTERN_C()
196 if (ssa_op->op1_use == var) { in END_EXTERN_C()
197 return ssa_op->op1_use_chain; in END_EXTERN_C()
198 } else if (ssa_op->op2_use == var) { in END_EXTERN_C()
199 return ssa_op->op2_use_chain; in END_EXTERN_C()
201 return ssa_op->res_use_chain; in END_EXTERN_C()
220 …lways_inline 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
226 return ssa_op->op1_use == var && ssa_op->op2_use != var; in zend_ssa_is_no_val_use()
229 return ssa_op->op2_use == var && ssa_op->op1_use != var; in zend_ssa_is_no_val_use()
231 if (ssa_op->result_use == var in zend_ssa_is_no_val_use()
234 return ssa_op->op1_use != var && ssa_op->op2_use != var; in zend_ssa_is_no_val_use()
239 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
241 if (ssa_op->op1_def >= 0) { in zend_ssa_rename_defs_of_instr()
242 if (ssa_op->op1_use >= 0) { in zend_ssa_rename_defs_of_instr()
243 zend_ssa_rename_var_uses(ssa, ssa_op->op1_def, ssa_op->op1_use, 1); in zend_ssa_rename_defs_of_instr()
245 ssa->vars[ssa_op->op1_def].definition = -1; in zend_ssa_rename_defs_of_instr()
246 ssa_op->op1_def = -1; in zend_ssa_rename_defs_of_instr()
248 if (ssa_op->op2_def >= 0) { in zend_ssa_rename_defs_of_instr()
249 if (ssa_op->op2_use >= 0) { in zend_ssa_rename_defs_of_instr()
250 zend_ssa_rename_var_uses(ssa, ssa_op->op2_def, ssa_op->op2_use, 1); in zend_ssa_rename_defs_of_instr()
252 ssa->vars[ssa_op->op2_def].definition = -1; in zend_ssa_rename_defs_of_instr()
253 ssa_op->op2_def = -1; in zend_ssa_rename_defs_of_instr()
255 if (ssa_op->result_def >= 0) { in zend_ssa_rename_defs_of_instr()
256 if (ssa_op->result_use >= 0) { in zend_ssa_rename_defs_of_instr()
257 zend_ssa_rename_var_uses(ssa, ssa_op->result_def, ssa_op->result_use, 1); in zend_ssa_rename_defs_of_instr()
259 ssa->vars[ssa_op->result_def].definition = -1; in zend_ssa_rename_defs_of_instr()
260 ssa_op->result_def = -1; in zend_ssa_rename_defs_of_instr()